Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2978 commits
Select commit Hold shift + click to select a range
86978e7
feat(ui): updates to design system (#37471)
arvsrn Jul 17, 2026
ba6cf38
feat(desktop): add focus debug toggle (#37465)
Brendonovich Jul 17, 2026
4bffbb6
chore: update nix node_modules hashes
opencode-agent[bot] Jul 17, 2026
efb6cc2
fix(session-ui): preserve prompt editing behavior (#37483)
Brendonovich Jul 17, 2026
be08207
docs(go): update DeepSeek and MiMo pricing (#37509)
MrMushrooooom Jul 17, 2026
518b0bf
chore: generate
opencode-agent[bot] Jul 17, 2026
69a8066
fix(stats): polish comparison chart
adamdotdevin Jul 17, 2026
38989c5
chore(tui): upgrade opentui to 0.4.5 (#37522)
kommander Jul 17, 2026
0df2f62
chore: update nix node_modules hashes
opencode-agent[bot] Jul 17, 2026
49d2dd8
fix(provider): honor reasoning option semantics (#37519)
rekram1-node Jul 17, 2026
41405c9
chore: generate
opencode-agent[bot] Jul 17, 2026
a46374e
go: kimi k3 promotion
fwang Jul 17, 2026
45cd8d7
update zen models
fwang Jul 17, 2026
86e04d4
revert(tui): downgrade opentui to 0.4.3 (#37582)
opencode-agent[bot] Jul 18, 2026
3476e6b
chore: update nix node_modules hashes
opencode-agent[bot] Jul 18, 2026
901c9e7
fix(app): disable unavailable file navigation (#37595)
opencode-agent[bot] Jul 18, 2026
fab2133
chore: configure trust center domain (#36910)
opencode-agent[bot] Jul 18, 2026
9da9ed9
fix(nix): relax Bun version check for desktop build (#36767)
jerome-benoit Jul 18, 2026
b95fe7b
fix(nix): restore desktop integration (#37197)
jerome-benoit Jul 18, 2026
ba3f966
build: bump opentui to 0.4.5 (#37616)
simonklee Jul 18, 2026
b8142c7
chore: update nix node_modules hashes
opencode-agent[bot] Jul 18, 2026
cc34084
feat(desktop): prevent overlapping composer borders (#37490)
usrnk1 Jul 19, 2026
6bea0f4
zen: grok 4.5 adjusted price
fwang Jul 19, 2026
1221bbb
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Jul 19, 2026
573ac85
feat(desktop): align new session project picker (#37461)
usrnk1 Jul 19, 2026
6a28842
go: support openai route
fwang Jul 19, 2026
5a5117b
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Jul 19, 2026
4817228
docs(go): update Kimi K3 request estimates (#37725)
opencode-agent[bot] Jul 19, 2026
f557328
chore: generate
opencode-agent[bot] Jul 19, 2026
78587c1
fix(app): restore question pager segments (#37575)
opencode-agent[bot] Jul 19, 2026
67caf89
fix(opencode): increase OpenAI header timeout (#37770)
opencode-agent[bot] Jul 19, 2026
7985c20
fix(app): show keybind tooltips on prompt input controls (#37824)
ProdigyRahul Jul 20, 2026
ba4b8e2
feat(app): toggle debug tools from dev badge (#36689)
iamdavidhill Jul 20, 2026
2a097f3
fix(llm): expand context overflow patterns (#37840)
opencode-agent[bot] Jul 20, 2026
61653a2
sync
fwang Jul 20, 2026
cfa134f
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Jul 20, 2026
cd46f22
sync
fwang Jul 20, 2026
20a3a21
feat(opencode): use adaptive thinking effort for kimi family on anthr…
chouqin Jul 20, 2026
3b719ab
chore: generate
opencode-agent[bot] Jul 20, 2026
5586f96
fix(app): restore model variant accessibility (#37857)
opencode-agent[bot] Jul 20, 2026
3fc5af6
feat(app): update settings description line height (#37759)
arvsrn Jul 20, 2026
3ba3954
feat(app): review panel improvements (#36716)
arvsrn Jul 20, 2026
9105f35
chore: generate
opencode-agent[bot] Jul 20, 2026
a19b52e
fix(app): omit empty prompt text parts (#37577)
opencode-agent[bot] Jul 20, 2026
4a81e83
fix(app): gate notification server selection (#37890)
opencode-agent[bot] Jul 20, 2026
8bec40a
fix(app): align Windows upgrade drawer (#37895)
Hona Jul 20, 2026
5542415
fix(app): shrink Windows drawer close button (#37909)
Hona Jul 20, 2026
cc3615b
fix(app): tolerate missing message parents (#37918)
opencode-agent[bot] Jul 20, 2026
e2531df
chore(app): bump ghostty-web (#37923)
Hona Jul 20, 2026
b67fda1
chore: update nix node_modules hashes
opencode-agent[bot] Jul 20, 2026
43e472b
feat(app): sync embedded terminal theme (#37931)
Hona Jul 20, 2026
70535a1
chore: update nix node_modules hashes
opencode-agent[bot] Jul 20, 2026
da312b0
fix(app): preserve command menu drafts (#37942)
opencode-agent[bot] Jul 20, 2026
47fc6f2
fix(app): preserve mentions during paste (#37940)
opencode-agent[bot] Jul 20, 2026
4872c48
fix(app): complete mentions at cursor (#37941)
opencode-agent[bot] Jul 20, 2026
96ff82a
fix(console): remove desktop promo overlay
opencode-agent[bot] Jul 20, 2026
d36a2d8
sync release versions for v1.18.4
Jul 20, 2026
4cc0224
fix(opencode): display proper session import errors (#36258)
OpeOginni Jul 20, 2026
5a8ee27
fix(provider): update muse-spark reasoning default and system prompt …
mreso Jul 20, 2026
3033afb
fix(provider): normalize Mistral family tool call IDs (#37982)
rekram1-node Jul 20, 2026
849c259
docs: generalize session title model description (#37986)
rekram1-node Jul 20, 2026
2d2339d
feat(app): draggable project rows (#38055)
arvsrn Jul 21, 2026
cb562b2
chore: generate
opencode-agent[bot] Jul 21, 2026
abc4b83
Zen: gemini 3.6 flash and 3.5 flash lite
fwang Jul 21, 2026
21c4c93
fix(ui): improve progress circle contrast (#38101)
dbpolito Jul 21, 2026
b513faf
fix(app): support nested slash command autocomplete (#38097)
dbpolito Jul 21, 2026
5f241f1
chore: generate
opencode-agent[bot] Jul 21, 2026
0317531
zen: add laguna-2-2.1
fwang Jul 21, 2026
c40e3e7
zen: add security check
fwang Jul 21, 2026
76ced54
chore: generate
opencode-agent[bot] Jul 21, 2026
4438f69
zen: add security check
fwang Jul 21, 2026
130038e
fix(app): defer unavailable notification state (#38186)
opencode-agent[bot] Jul 22, 2026
c9db6e9
fix(app): show running shell command (#38080)
opencode-agent[bot] Jul 22, 2026
0a601cf
fix(docs): correct Kimi K2.7 Code request limits (#38248)
MrMushrooooom Jul 22, 2026
50eee1f
fix(provider): correct MiniMax M3 thinking variants (#38330)
rekram1-node Jul 22, 2026
411eff7
feat(go): add Hy3 to Go model lineup (#38349)
MrMushrooooom Jul 22, 2026
542ba88
fix(provider): select prompt cache keys by SDK (#38424)
rekram1-node Jul 23, 2026
fada1a5
fix(provider): serialize Mistral prompt cache keys (#38448)
rekram1-node Jul 23, 2026
92cede0
chore: update nix node_modules hashes
opencode-agent[bot] Jul 23, 2026
e45210c
chore(app): vendor v2 promise client (#38467)
Brendonovich Jul 23, 2026
84c79c1
chore: update nix node_modules hashes
opencode-agent[bot] Jul 23, 2026
d03e0c5
feat(app): add dual-server compatibility (#38462)
Brendonovich Jul 23, 2026
347510a
chore: generate
opencode-agent[bot] Jul 23, 2026
e59ba24
feat(app): support current event transport (#38464)
Brendonovich Jul 23, 2026
62e4641
chore: generate
opencode-agent[bot] Jul 23, 2026
20589d6
fix(provider): preserve Mistral reasoning history (#38453)
rekram1-node Jul 23, 2026
743f641
chore: update nix node_modules hashes
opencode-agent[bot] Jul 23, 2026
204f48d
docs(zen): add Ling 3.0 Flash free model (#38503)
MrMushrooooom Jul 24, 2026
37c263e
feat(app): project current server state (#38459)
Brendonovich Jul 24, 2026
adba484
chore: generate
opencode-agent[bot] Jul 24, 2026
db88c42
fix(app): hydrate v1 session progress (#38606)
Brendonovich Jul 24, 2026
ce9a875
feat(app): render current session timeline (#38466)
Brendonovich Jul 24, 2026
090a26a
chore: generate
opencode-agent[bot] Jul 24, 2026
29af2e3
feat(app): migrate session interactions (#38461)
Brendonovich Jul 24, 2026
386afb7
chore: generate
opencode-agent[bot] Jul 24, 2026
589ef16
refactor(app): split home view controllers (#38607)
Brendonovich Jul 24, 2026
5ce89dc
chore: generate
opencode-agent[bot] Jul 24, 2026
d07323e
feat(app): migrate discovery workflows (#38465)
Brendonovich Jul 24, 2026
2ea4bb7
chore: generate
opencode-agent[bot] Jul 24, 2026
a48912c
fix(app): restore directory-scoped session status for v1 servers (#38…
Brendonovich Jul 24, 2026
55f4a26
fix(app): preserve paginated timeline order (#38641)
Brendonovich Jul 24, 2026
3819848
feat(app): support current review data (#38460)
Brendonovich Jul 24, 2026
bce2992
chore: generate
opencode-agent[bot] Jul 24, 2026
ce7f54d
fix(app): make prompt input agent toggle reactive (#38653)
Brendonovich Jul 24, 2026
57ddfeb
fix(app): classify existing web profiles for layout transition (#38117)
dleopold Jul 24, 2026
c4545ab
chore: generate
opencode-agent[bot] Jul 24, 2026
91ed256
refactor(app): resolve server protocol state (#38648)
Brendonovich Jul 24, 2026
80a4fe8
fix(app): remove diff rendering from file-specific tabs (#38662)
Brendonovich Jul 24, 2026
3337495
chore: generate
opencode-agent[bot] Jul 24, 2026
aaa42fe
fix(app): isolate v2 servers from legacy layout (#38649)
Brendonovich Jul 24, 2026
67a0478
fix(app): gate config permission auto-accept (#38650)
Brendonovich Jul 24, 2026
ad78ef5
feat(app): support current pty transport (#38463)
Brendonovich Jul 24, 2026
ae4be98
chore: generate
opencode-agent[bot] Jul 24, 2026
b628066
fix(app): preserve inline file mentions (#38663)
Brendonovich Jul 24, 2026
9ba82a1
fix(app): gate legacy server features (#38651)
Brendonovich Jul 24, 2026
66495a2
chore: generate
opencode-agent[bot] Jul 24, 2026
909db63
fix(app): restore optimistic timeline state (#38693)
Brendonovich Jul 24, 2026
e639969
fix(opencode): preserve grep symlink paths (#38581)
remixz Jul 24, 2026
f516651
fix(opencode): preserve grep symlink paths (#38581)
remixz Jul 24, 2026
e62b09e
zen: opus 5
fwang Jul 24, 2026
553b42f
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Jul 24, 2026
4b19ea2
fix(llm): preserve response message phases (#38452)
rekram1-node Jul 24, 2026
53669ca
chore: generate
opencode-agent[bot] Jul 24, 2026
7840562
fix(llm): revert response message phases (#38761)
rekram1-node Jul 24, 2026
2b2aacc
fix(provider): generalize Claude adaptive thinking (#38757)
rekram1-node Jul 24, 2026
a85d8d2
sync release versions for v1.18.5
Jul 24, 2026
065dc27
fix(core): branch-keyed repository cache with gated reference readine…
kitlangton Jul 25, 2026
5e2a625
chore: generate
opencode-agent[bot] Jul 25, 2026
9e8b217
fix(app): refresh V1 providers after auth (#38786)
opencode-agent[bot] Jul 25, 2026
2b2b69d
fix(app): refresh V1 MCP state (#38816)
Brendonovich Jul 25, 2026
0a6637e
chore(app): vendor v2 client snapshot (#38818)
Brendonovich Jul 25, 2026
7534d23
chore: update nix node_modules hashes
opencode-agent[bot] Jul 25, 2026
7d8195e
fix(ui): keep mutable selects open (#39027)
ProdigyRahul Jul 27, 2026
1ad63cf
sync release versions for v1.18.6
Jul 27, 2026
759f6af
fix(app): add scroll to project selector dropdown (#39016)
david1gp Jul 27, 2026
7ffc22c
chore: generate
opencode-agent[bot] Jul 27, 2026
9ca2b44
Connect provider e2e test (#39039)
Brendonovich Jul 27, 2026
de78da8
chore: generate
opencode-agent[bot] Jul 27, 2026
09afffe
fix(app): preserve shadowed command owners (#39044)
Brendonovich Jul 27, 2026
a9afed0
fix(desktop): remove titlebar inset in fullscreen (#38793)
Hona Jul 27, 2026
35075bb
fix(desktop): install Electron before development (#39052)
Hona Jul 27, 2026
bc2d3df
sync release versions for v1.18.7
Jul 27, 2026
b06768a
feat(app): add project selector shortcut (#39074)
Brendonovich Jul 27, 2026
4469cec
refactor(app): move prompt effects into controller (#39073)
Brendonovich Jul 27, 2026
0b4edfc
chore: generate
opencode-agent[bot] Jul 27, 2026
e1c4194
refactor(app): extract tab rename adapter (#39079)
Brendonovich Jul 27, 2026
4f62295
fix(app): contain right panel suspense (#39080)
Brendonovich Jul 27, 2026
55b0211
feat(desktop): use bg layer 4 for v2 switch (#39085)
usrnk1 Jul 27, 2026
78f5764
fix(console): stabilize brand download icons in Safari (#39151)
opencode-agent[bot] Jul 27, 2026
a9bebd3
docs(zen): add Kimi K3 (#39152)
MrMushrooooom Jul 27, 2026
8e8d38c
fix(app): prevent freeze when closing projects (#39158)
Brendonovich Jul 27, 2026
8dc539b
fix(core): correct MCP environment field in built-in skill (#39175)
OpeOginni Jul 27, 2026
40e4d73
fix(console): avoid Safari brand icon repaint (#39154)
opencode-agent[bot] Jul 27, 2026
7ae1be5
fix(desktop): use channel database in local runs (#39209)
Hona Jul 28, 2026
1274408
fix(desktop): install AppStream metainfo in Linux packages (#36872)
develop7 Jul 28, 2026
91508f6
chore: generate
opencode-agent[bot] Jul 28, 2026
c39ad38
fix(app): refresh global provider state (#39220)
Brendonovich Jul 28, 2026
970c382
chore: generate
opencode-agent[bot] Jul 28, 2026
284e970
fix(app): use blue for server status attention (#39217)
Brendonovich Jul 28, 2026
029f5aa
chore: bump gitlab-ai-provider to 6.12.0 (#39096)
vglafirov Jul 28, 2026
b72d7b6
refactor(app): separate model selector controller and view (#39084)
Brendonovich Jul 28, 2026
3cc7016
chore: generate
opencode-agent[bot] Jul 28, 2026
3f9dad3
chore: update nix node_modules hashes
opencode-agent[bot] Jul 28, 2026
237e694
fix(app): expand Windows file tree folders (#39249)
opencode-agent[bot] Jul 28, 2026
87db7a7
fix(app): follow visual tab order (#39241)
Brendonovich Jul 28, 2026
9c8060d
refactor(app): extract keybind settings controller (#39226)
Brendonovich Jul 28, 2026
921b1c6
feat(mcp): upgrade client SDK to v2 (#39247)
rekram1-node Jul 28, 2026
d50b9e8
chore: generate
opencode-agent[bot] Jul 28, 2026
5e39051
fix(provider): omit deprecated Gemini sampling defaults (#38924)
opencode-agent[bot] Jul 28, 2026
172d08c
chore: update nix node_modules hashes
opencode-agent[bot] Jul 28, 2026
c3be6c4
fix(mcp): honor callback port in debug (#39259)
rekram1-node Jul 28, 2026
484f00e
fix(mcp): recover expired SDK sessions (#39265)
rekram1-node Jul 28, 2026
c8487ba
chore: update nix node_modules hashes
opencode-agent[bot] Jul 28, 2026
8021dbd
sync release versions for v1.18.8
Jul 28, 2026
d46be56
refactor(app): thin new session composition (#39227)
Brendonovich Jul 28, 2026
7dae9a1
chore: generate
opencode-agent[bot] Jul 28, 2026
95636bd
feat(desktop): collapse model provider sections (#39283)
usrnk1 Jul 28, 2026
8c81f9a
refactor(app): extract v2 settings controllers (#39228)
Brendonovich Jul 28, 2026
1ead8d8
fix(app): localize home session suspense (#39285)
Brendonovich Jul 28, 2026
9e432a6
feat(desktop): add opt-in v2 sidecar (#39286)
Brendonovich Jul 28, 2026
7c89824
fix(desktop): patch @dnd-kit/solid to preserve core scroll plugins (#…
roborew Jul 28, 2026
be93cec
fix(app): guard reentrant Solid cleanup (#39261)
opencode-agent[bot] Jul 28, 2026
e158758
chore: generate
opencode-agent[bot] Jul 28, 2026
7336cc5
chore: update nix node_modules hashes
opencode-agent[bot] Jul 28, 2026
017a597
feat(desktop): remove v2 vertical menu borders (#39317)
usrnk1 Jul 28, 2026
7edefb3
chore(mcp): upgrade client to 2.0.0 (#39369)
opencode-agent[bot] Jul 28, 2026
982a904
fix(mcp): restore legacy SDK compatibility (#39373)
rekram1-node Jul 28, 2026
d8a9d8a
chore: generate
opencode-agent[bot] Jul 28, 2026
f28d72d
chore: update nix node_modules hashes
opencode-agent[bot] Jul 28, 2026
a45c2b9
sync release versions for v1.18.9
Jul 28, 2026
f256a4c
fix(app): preserve agent picker for existing users (#39300)
Brendonovich Jul 29, 2026
8cbea4f
chore: generate
opencode-agent[bot] Jul 29, 2026
e8b0992
fix(app): defer model variant selector (#39445)
Brendonovich Jul 29, 2026
035a5a1
feat(desktop): refine tab states (#39472)
usrnk1 Jul 29, 2026
7565e03
chore: generate
opencode-agent[bot] Jul 29, 2026
02f50a6
chore: bump gitlab-ai-provider to 6.12.1 (#39490)
vglafirov Jul 29, 2026
a6f7fe7
docs(ecosystem): add opencode-tavily plugin (#38709)
lakshyaag-tavily Jul 29, 2026
1e17856
chore: update nix node_modules hashes
opencode-agent[bot] Jul 29, 2026
341c64c
feat: discover Modal models (#39066)
devennavani Jul 30, 2026
f720490
fix(console): add public fetch compatibility flag
fwang Jul 30, 2026
73009f0
feat(app): update arrow buttons in review tab top bar (#39469)
arvsrn Jul 30, 2026
a9eda2e
feat(app): migrate to solid-sonner (#39519)
arvsrn Jul 30, 2026
5b11635
feat(app): always show new session button (#39520)
arvsrn Jul 30, 2026
eca5e68
feat(app): disallow duplicate attachments (#39464)
arvsrn Jul 30, 2026
005bf08
feat(app): fix file tree button bg (#38629)
arvsrn Jul 30, 2026
a277557
chore: generate
opencode-agent[bot] Jul 30, 2026
3dbce3d
feat(app): adds fades to file tree (#38549)
arvsrn Jul 30, 2026
c5cf416
feat(app): fix composer attachment fades (#38547)
arvsrn Jul 30, 2026
c08350b
chore: update nix node_modules hashes
opencode-agent[bot] Jul 30, 2026
ac53806
fix(app): repair malformed persisted tabs (#39645)
OpeOginni Jul 30, 2026
ff0382e
chore: generate
opencode-agent[bot] Jul 30, 2026
a4f25a9
fix: use OpenCode model catalog URL (#39672)
opencode-agent[bot] Jul 30, 2026
8c38d26
sync release versions for v1.18.10
Jul 30, 2026
a1ab489
fix(provider): widen interleaved reasoning fields (#39556)
opencode-agent[bot] Jul 30, 2026
c1ee3c6
fix(opencode): stop MCP SSE error reconnect loops (#39697)
rekram1-node Jul 30, 2026
3f239b3
chore: update nix node_modules hashes
opencode-agent[bot] Jul 30, 2026
ceb4890
docs: add Modal provider setup (#39710)
devennavani Jul 30, 2026
e024e2e
fix(app): align debug gutter text (#39782)
Hona Jul 31, 2026
7ea343c
fix(app): prevent file tree tab clipping (#39770)
OpeOginni Jul 31, 2026
d3f30df
fix(app): open legacy picker at home (#39804)
opencode-agent[bot] Jul 31, 2026
db4dbaa
fix(app): prevent stale session tab reads (#39767)
OpeOginni Jul 31, 2026
da59457
feat(go): add GPT 5.6 Luna content (#39812)
MrMushrooooom Jul 31, 2026
2039c90
fix(desktop): open external links in system browser (#39820)
Hona Jul 31, 2026
d4ad650
chore: generate
opencode-agent[bot] Jul 31, 2026
ad82616
chore: update nix node_modules hashes
opencode-agent[bot] Jul 31, 2026
2df47ee
deepseek v4 flash
fwang Jul 31, 2026
14f0bf6
chore: generate
opencode-agent[bot] Jul 31, 2026
4087cf1
fix(go): restore limits graph axis (#39870)
MrMushrooooom Jul 31, 2026
e4bd975
chore: generate
opencode-agent[bot] Jul 31, 2026
d80e86b
go: document data policy per model
fwang Jul 31, 2026
d0a7ca6
go: document data policy per model
fwang Jul 31, 2026
19231fc
chore: generate
opencode-agent[bot] Jul 31, 2026
f67e80c
fix(app): prevent stale prompt control reads (#39842)
OpeOginni Aug 1, 2026
0eac096
sync release versions for v1.18.11
Aug 1, 2026
bb6bec9
zen: update doc
fwang Aug 1, 2026
32f278b
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Aug 1, 2026
0891ecd
docs(go): update DeepSeek privacy policy (#40120)
MrMushrooooom Aug 2, 2026
01624c8
chore: generate
opencode-agent[bot] Aug 2, 2026
1882c33
fix gemini reasoning tokens not counted
fwang Aug 2, 2026
d4b85f8
fix(app): skip legacy config reads for v2 (#40211)
resetsix Aug 3, 2026
c88facb
chore: generate
opencode-agent[bot] Aug 3, 2026
9f9fbf8
fix(app): clear stale timeline errors (#39465)
Brendonovich Aug 3, 2026
e9e7472
docs(go): add Qwen3.8 Max (#40228)
MrMushrooooom Aug 3, 2026
3016830
fix(app): search every known project in the open project dialog (#40202)
NumerousJLs Aug 3, 2026
ef7f712
fix slow queries
fwang Aug 3, 2026
28d0637
chore: generate
opencode-agent[bot] Aug 3, 2026
8de7a3c
fix slow queries
fwang Aug 3, 2026
3307f99
fix(ci): reuse imported macOS keychain (#40221)
opencode-agent[bot] Aug 3, 2026
6ff0ade
perf(app): fix composer lag via buffered blob draft storage (#40207)
Hona Aug 3, 2026
061aaa7
WIP(sync): upstream v1.18.11 — manual conflict resolution required
github-actions[bot] Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
12 changes: 12 additions & 0 deletions .dockerignore
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
.git
.opencode
.sst
.turbo
.wrangler
node_modules
**/node_modules
**/.output
**/dist
**/.turbo
**/.vite
**/coverage
2 changes: 2 additions & 0 deletions .gitattributes
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
packages/core/migration/**/snapshot.jsonlinguist-generated
packages/core/src/database/migration.gen.tslinguist-generated
6 changes: 2 additions & 4 deletions .github/CODEOWNERS
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
# web + desktop packages
packages/app/ @adamdotdevin
packages/tauri/ @adamdotdevin
packages/desktop/src-tauri/ @brendonovich
packages/desktop/ @adamdotdevin
packages/app/ @Hona@Brendonovich
packages/desktop/ @Hona@Brendonovich
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug-report.yml
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
name: Bug report
description: Report an issue that should be fixed
description: Report an issue that should be fixed (avoid pasting giant AI generated summaries or your issue may be closed/ignored)
body:
- type: textarea
id: description
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,4 +2,4 @@ blank_issues_enabled: false
contact_links:
- name: 💬 Discord Community
url: https://discord.gg/opencode
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
about: For support, troubleshooting, how-to questions, and real-time discussion.
10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/question.yml

This file was deleted.

5 changes: 5 additions & 0 deletions .github/TEAM_MEMBERS
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
adamdotdevin
arvsrn
Brendonovich
fwang
Hona
Expand All@@ -7,10 +8,14 @@ jayair
jlongster
kitlangton
kommander
ludvigrask
MrMushrooooom
nexxeln
R44VC0RP
rekram1-node
thdxr
simonklee
Slickstef11
usrnk1
vimtor
StarpTech
21 changes: 18 additions & 3 deletions .github/actions/setup-bun/action.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,13 @@ inputs:
runs:
using: "composite"
steps:
# node-gyp@latest (invoked via bunx for native install scripts) requires Node >=22;
# some runner images ship an older system Node on PATH
- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: "24"

- name: Get baseline download URL
id: bun-url
shell: bash
Expand All@@ -23,7 +30,7 @@ runs:
fi

- name: Setup Bun
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: ${{ !steps.bun-url.outputs.url && 'package.json' || '' }}
bun-download-url: ${{ steps.bun-url.outputs.url }}
Expand All@@ -33,8 +40,9 @@ runs:
shell: bash
run: echo "dir=$(bun pm cache)" >> "$GITHUB_OUTPUT"

- name: Cache Bun dependencies
uses: actions/cache@v4
- name: Restore Bun dependencies
id: bun-cache
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.cache.outputs.dir }}
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
Expand All@@ -56,3 +64,10 @@ runs:
bun install ${{ inputs.install-flags }}
fi
shell: bash

- name: Save Bun dependencies
if: steps.bun-cache.outputs.cache-hit != 'true' && github.event_name != 'pull_request' && github.event_name != 'pull_request_target'
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.cache.outputs.dir }}
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
2 changes: 1 addition & 1 deletion .github/actions/setup-git-committer/action.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,7 +19,7 @@ runs:
steps:
- name: Create app token
id: apptoken
uses: actions/create-github-app-token@v2
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2.2.2
with:
app-id: ${{ inputs.opencode-app-id }}
private-key: ${{ inputs.opencode-app-secret }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/beta.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,7 +14,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 0

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/close-issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,9 +13,9 @@ jobs:
contents: read
issues: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- uses: oven-sh/setup-bun@v2
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: latest

Expand Down
50 changes: 50 additions & 0 deletions .github/workflows/close-prs.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
name: close-prs

on:
schedule:
- cron: "0 22 * * *" # Daily at 10:00 PM UTC
workflow_dispatch:
inputs:
dry-run:
description: "Log matching PRs without closing them"
type: boolean
default: true
max-close:
description: "Maximum matching PRs to close"
type: string
required: false
default: "50"

jobs:
close:
runs-on: ubuntu-latest
timeout-minutes: 240
permissions:
contents: read
issues: write
pull-requests: write
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: latest

- name: Close old PRs without enough positive reactions
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
max_close="${{ inputs['max-close'] }}"
if [ -z "$max_close" ]; then
max_close="50"
fi

args=("--threshold" "2" "--age-months" "1" "--sleep-ms" "20000" "--max-close" "$max_close")

if [ "${{ github.event_name }}" = "schedule" ]; then
args+=("--execute")
elif [ "${{ inputs['dry-run'] }}" = "false" ]; then
args+=("--execute")
fi

bun script/github/close-prs.ts "${args[@]}"
40 changes: 39 additions & 1 deletion .github/workflows/compliance-close.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,7 +17,7 @@ jobs:
if: github.repository == 'anomalyco/opencode'
steps:
- name: Close non-compliant issues and PRs after 2 hours
uses: actions/github-script@v7
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
with:
script: |
const { data: items } = await github.rest.issues.listForRepo({
Expand All@@ -35,10 +35,48 @@ jobs:

const now = Date.now();
const twoHours = 2 * 60 * 60 * 1000;
const orgMemberAssociations = new Set(['OWNER', 'MEMBER']);
const agentLogin = 'opencode-agent[bot]';
const { data: file } = await github.rest.repos.getContent({
owner: context.repo.owner,
repo: context.repo.repo,
path: '.github/TEAM_MEMBERS',
ref: 'dev',
});
const teamMembers = new Set(
Buffer.from(file.content, 'base64')
.toString()
.split('\n')
.map((line) => line.trim().toLowerCase())
.filter(Boolean)
);

function isExempt(item) {
const login = item.user?.login?.toLowerCase();
return (
login === agentLogin ||
orgMemberAssociations.has(item.author_association) ||
(login && teamMembers.has(login))
);
}

for (const item of items) {
const isPR = !!item.pull_request;
const kind = isPR ? 'PR' : 'issue';
const login = item.user?.login;

if (isExempt(item)) {
core.info(`Skipping ${kind} #${item.number}; author ${login || 'unknown'} is exempt`);
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: item.number,
name: 'needs:compliance',
});
} catch (e) {}
continue;
}

const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/containers.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,18 +21,18 @@ jobs:
REGISTRY: ghcr.io/${{ github.repository_owner }}
TAG: "24.04"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- uses: ./.github/actions/setup-bun

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0

- name: Login to GHCR
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand Down
27 changes: 16 additions & 11 deletions .github/workflows/deploy.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -9,27 +9,33 @@ on:

concurrency: ${{ github.workflow }}-${{ github.ref }}

permissions:
contents: read
id-token: write

jobs:
deploy:
if: github.repository == 'anomalyco/opencode' && (github.ref_name == 'dev' || github.ref_name == 'production')
runs-on: ubuntu-latest
<<<<<<< HEAD
if: github.repository == 'anomalyco/opencode'
=======
environment: ${{ github.ref_name }}
>>>>>>> upstream/dev
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0

- uses: ./.github/actions/setup-bun

- uses: actions/setup-node@v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: "24"

# Workaround for Pulumi version conflict:
# GitHub runners have Pulumi 3.212.0+ pre-installed, which removed the -root flag
# from pulumi-language-nodejs (see https://github.com/pulumi/pulumi/pull/21065).
# SST 3.17.x uses Pulumi SDK 3.210.0 which still passes -root, causing a conflict.
# Removing the system language plugin forces SST to use its bundled compatible version.
# TODO: Remove when sst supports Pulumi >3.210.0
- name: Fix Pulumi version conflict
run: sudo rm -f /usr/local/bin/pulumi-language-nodejs
- uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
with:
role-to-assume: ${{ vars.AWS_DEPLOY_ROLE_ARN }}
role-session-name: opencode-${{ github.run_id }}
aws-region: us-east-1

- run: bun sst deploy --stage=${{ github.ref_name }}
env:
Expand All@@ -38,7 +44,6 @@ jobs:
PLANETSCALE_SERVICE_TOKEN: ${{ secrets.PLANETSCALE_SERVICE_TOKEN }}
STRIPE_SECRET_KEY: ${{ github.ref_name == 'production' && secrets.STRIPE_SECRET_KEY_PROD || secrets.STRIPE_SECRET_KEY_DEV }}
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
INCIDENT_API_KEY: ${{ secrets.INCIDENT_API_KEY }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ vars.SENTRY_ORG }}
SENTRY_PROJECT: ${{ vars.WEB_SENTRY_PROJECT }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs-locale-sync.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ jobs:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
fetch-depth: 0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs-update.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,7 +18,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 0 # Fetch full history to access commits

Expand All@@ -43,7 +43,7 @@ jobs:

- name: Run opencode
if: steps.commits.outputs.has_commits == 'true'
uses: sst/opencode/github@latest
uses: sst/opencode/github@2c14fc5586fe0b88e5c04732d2e846769cc35671 # latest
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
with:
Expand Down
Loading