Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3232 commits
Select commit Hold shift + click to select a range
87481f2
fix: gpt-5.5+ in combination with azure fails with reasoningEffort (#…
frederiknsgo Aug 3, 2026
7becbbf
feat(app): refine diff viewer (#40285)
arvsrn Aug 3, 2026
b0b1149
test(opencode): cover Azure completion reasoning (#40340)
opencode-agent[bot] Aug 3, 2026
def14d9
Revert "fix slow queries"
fwang Aug 4, 2026
7fe9938
sync release versions for v1.18.12
Aug 4, 2026
7e94dda
fix(github): include pull request identity in context (#40363)
opencode-agent[bot] Aug 4, 2026
0efa33c
feat(desktop): expand and audit locale translations (#40362)
opencode-agent[bot] Aug 4, 2026
b005a15
chore: generate
opencode-agent[bot] Aug 4, 2026
638788f
fix(app): move markdown parsing to worker (#40356)
Hona Aug 4, 2026
26aefa6
chore: update nix node_modules hashes
opencode-agent[bot] Aug 4, 2026
0c380f3
feat(app): support locale plural rules (#40370)
opencode-agent[bot] Aug 4, 2026
60e23fe
chore: generate
opencode-agent[bot] Aug 4, 2026
6c32991
feat(app): add minimal RTL support (#40372)
opencode-agent[bot] Aug 4, 2026
e857350
feat(i18n): localize hardcoded application copy (#40377)
opencode-agent[bot] Aug 4, 2026
edc8d1d
chore: generate
opencode-agent[bot] Aug 4, 2026
c75e3b5
fix(app): supply fallback session titles (#40385)
Brendonovich Aug 4, 2026
8721a27
fix(app): complete shared RTL primitives (#40388)
opencode-agent[bot] Aug 4, 2026
c387fe1
feat(app): add debug layout direction toggle (#40393)
Hona Aug 4, 2026
6c97a46
fix(stats): hide zero-usage countries (#40400)
opencode-agent[bot] Aug 4, 2026
de1bd36
fix(app): correct RTL layout interactions (#40410)
Hona Aug 4, 2026
dc67b7a
docs: add Poolside provider setup (#39187)
amyduquette Aug 4, 2026
44614c7
fix(acp): drain updates before end turn (#40422)
nexxeln Aug 4, 2026
aefaf14
sync release versions for v1.18.13
Aug 4, 2026
703d09f
fix(server): don't forward host directory to remote workspace (#40136)
jamesmurdza Aug 4, 2026
f0afb67
fix(server): log upstream 5xx bodies from proxied workspace requests …
jamesmurdza Aug 4, 2026
98dd65c
fix(app): collapse deletion-only edit parts (#40536)
opencode-agent[bot] Aug 5, 2026
66fdd51
docs: add RTL development skill (#40543)
Hona Aug 5, 2026
cb88db6
tweak(opencode): make xAI OAuth device-only to reduce confusion w/ he…
rekram1-node Aug 5, 2026
5b4fb1f
chore: generate
opencode-agent[bot] Aug 5, 2026
9f38562
fix(opencode): include cache writes in ACP usage (#40450)
opencode-agent[bot] Aug 5, 2026
82a5796
test(app): harden flaky e2e synchronization (#40556)
Hona Aug 5, 2026
b8ea3ea
chore: generate
opencode-agent[bot] Aug 5, 2026
2f17fc9
docs(zen): add LongCat free model (#40585)
MrMushrooooom Aug 5, 2026
4a57013
fix(app): show pending tool details (#40603)
opencode-agent[bot] Aug 5, 2026
f929f8f
refactor(opencode): simplify retry error matching (#40694)
rekram1-node Aug 5, 2026
61aefc0
fix(opencode): expand retryable error patterns (#40707)
rekram1-node Aug 5, 2026
057b5a9
chore: generate
opencode-agent[bot] Aug 5, 2026
b84c63d
fix(stats): reduce html payloads
adamdotdevin Aug 5, 2026
3355b78
chore: generate
opencode-agent[bot] Aug 5, 2026
709c195
fix(opencode): preserve compatible stream errors (#40718)
rekram1-node Aug 5, 2026
082fe93
chore: generate
opencode-agent[bot] Aug 5, 2026
b1f8cc0
chore: update nix node_modules hashes
opencode-agent[bot] Aug 5, 2026
146720e
fix(stats): improve page speed
adamdotdevin Aug 5, 2026
04513d9
chore: generate
opencode-agent[bot] Aug 5, 2026
ebf6fc0
sync release versions for v1.18.14
Aug 5, 2026
23bbc5c
fix(server): allow blob attachments in web UI (#40692)
rexdotsh Aug 5, 2026
24470e5
fix(desktop): embed version in server sidecar (#40764)
Hona Aug 5, 2026
f1adabc
feat(app): export session as json from ui (#40781)
Hona Aug 6, 2026
b8bd889
chore: generate
opencode-agent[bot] Aug 6, 2026
847771f
fix log processor
fwang Aug 6, 2026
f6c5afe
fix(desktop): disable packaged console logging (#40794)
opencode-agent[bot] Aug 6, 2026
def7220
fix(tui): support copying over ssh with `set-clipboard on` tmux confi…
ayubun Aug 6, 2026
b379d71
fix(stats): update github stars
adamdotdevin Aug 6, 2026
03bff65
fix(app): update homepage stats
adamdotdevin Aug 6, 2026
dc898ca
sync
fwang Aug 6, 2026
69f2cba
chore: generate
opencode-agent[bot] Aug 6, 2026
b7f9363
fix(opencode): serialize orphaned compaction history (#40800)
opencode-agent[bot] Aug 7, 2026
8d65dbd
fix(app): complete translation coverage (#40981)
opencode-agent[bot] Aug 7, 2026
31c5c4e
fix(app): keep locale names native (#40985)
opencode-agent[bot] Aug 7, 2026
d468201
fix(opencode): use file times for truncation cleanup (#40987)
opencode-agent[bot] Aug 7, 2026
a54a693
fix(opencode): use chronological message boundaries (#40991)
opencode-agent[bot] Aug 7, 2026
db581e4
fix(opencode): order legacy message loop by time (#40990)
opencode-agent[bot] Aug 7, 2026
20750c3
fix(web): order shared messages by creation time (#40995)
opencode-agent[bot] Aug 7, 2026
8bf5062
feat(tui): add cursor style configuration (#32295)
dangooddd Aug 7, 2026
28bcc0e
fix(app): sort sessions by persisted time (#41000)
opencode-agent[bot] Aug 7, 2026
23cc677
fix(tui): order messages by creation time (#40994)
opencode-agent[bot] Aug 7, 2026
9113255
fix(app): order stored messages by creation time (#41001)
opencode-agent[bot] Aug 7, 2026
5aa5cb3
fix(app): use chronological message boundaries (#41006)
opencode-agent[bot] Aug 7, 2026
4abddbb
feat(go): promote DeepSeek V4 Flash usage (#40988)
MrMushrooooom Aug 7, 2026
741244b
feat(app): add global locale coverage (#40992)
opencode-agent[bot] Aug 7, 2026
3255297
sync
fwang Aug 7, 2026
265472e
fix(ui): use tokens for button loading state (#40884)
arvsrn Aug 7, 2026
1ec6bdc
sync release versions for v1.18.15
Aug 7, 2026
b467518
fix(desktop): preserve macOS app on window close (#40974)
opencode-agent[bot] Aug 7, 2026
5347b5e
fix(app): register new home projects (#41018)
Brendonovich Aug 7, 2026
be25c90
docs(zen): replace Ling Flash with Tiny (#41027)
MrMushrooooom Aug 7, 2026
b05a0d1
fix(i18n): use 词元 instead of 令牌 for token in zh locale (#40977)
Speechlessmanbilibili Aug 7, 2026
284214c
feat(app): open project menu on right-click (#41013)
arvsrn Aug 7, 2026
2ea728f
fix(app): populate project picker from home (#41158)
Brendonovich Aug 8, 2026
fe82a1b
chore: generate
opencode-agent[bot] Aug 8, 2026
38e10eb
fix(opencode): ignore unknown config fields (#41312)
opencode-agent[bot] Aug 8, 2026
0bff28d
fix(stats): fall back after full sync failure (#41411)
opencode-agent[bot] Aug 9, 2026
d90532a
sync release versions for v1.18.16
Aug 10, 2026
941e71d
fix(app): use current default model (#38603)
Brendonovich Aug 10, 2026
550d1ff
fix(i18n): use widely recognized developer terminology (#41532)
opencode-agent[bot] Aug 10, 2026
b9f3b38
fix(session): route all Muse family models to the Meta system prompt …
mreso Aug 10, 2026
3a90639
fix(ui): correct OC-2 weak icon color (#41504)
OpeOginni Aug 10, 2026
5d95348
fix(provider): scope DeepSeek V4 Flash sampling defaults (#41620)
opencode-agent[bot] Aug 11, 2026
d62e500
chore: build beta from v2 (#41627)
Hona Aug 11, 2026
d041eee
chore: use DeepSeek for beta conflicts (#41669)
opencode-agent[bot] Aug 11, 2026
9fdd482
docs(zen): add Nemotron 3.5 Lightning (#41750)
MrMushrooooom Aug 11, 2026
0d927ba
chore: generate
opencode-agent[bot] Aug 11, 2026
6afef2f
fix(console): update blocked account message (#41819)
opencode-agent[bot] Aug 11, 2026
36b2053
docs(zen): add Hy3 Free (#41814)
MrMushrooooom Aug 11, 2026
2b8a596
feat(console): add go usage endpoint (#16513)
peculiarnewbie Aug 11, 2026
561afb4
fix(opencode): detect Copilot PDF input support (#41522)
stevenao Aug 11, 2026
d470434
refactor(console): simplify go usage response
vimtor Aug 11, 2026
c789868
fix(opencode): cap session retries with jitter (#41939)
rekram1-node Aug 12, 2026
1f94d8a
docs(zen): remove expired free models (#41943)
MrMushrooooom Aug 12, 2026
46a14e6
feat(stats): query r2 data catalog
adamdotdevin Aug 12, 2026
d92d1e6
docs(zen): add Grok 4.6
fwang Aug 12, 2026
8571a92
fix(provider): add Merge Gateway reasoning variants (#41867)
MatthewFeroz Aug 12, 2026
ca3df21
docs: fix broken DigitalOcean and Daytona links (#42048)
skyzhao1223 Aug 12, 2026
959c8bd
docs: fix provider display name and PAT typos (#42034)
skyzhao1223 Aug 12, 2026
7e0353c
fix(stats): correct r2 daily totals
adamdotdevin Aug 12, 2026
284187a
fix(ci): authenticate pulumi downloads
adamdotdevin Aug 12, 2026
6d3ae4d
chore: generate
opencode-agent[bot] Aug 12, 2026
df09c3e
update ds v4 pro
fwang Aug 12, 2026
069165e
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Aug 12, 2026
521906f
docs(go): clarify DeepSeek ZDR coverage (#42085)
opencode-agent[bot] Aug 12, 2026
999be62
chore: generate
opencode-agent[bot] Aug 12, 2026
39fb919
chore: add neriousy to team members (#42107)
opencode-agent[bot] Aug 12, 2026
dab2637
fix(compaction): adjust instructions and structure to be more clear t…
rekram1-node Aug 12, 2026
37fe5c8
sync release versions for v1.18.17
Aug 12, 2026
502310f
fix(xai): pass through reasoning effort (#42160)
opencode-agent[bot] Aug 12, 2026
beeabe2
fix(mistral): pass through reasoning effort (#42164)
opencode-agent[bot] Aug 12, 2026
6fea419
fix(groq): pass through reasoning effort (#42166)
opencode-agent[bot] Aug 12, 2026
91df883
fix(opencode): select Kimi prompt by provider (#42161)
opencode-agent[bot] Aug 12, 2026
14b37df
chore: update nix node_modules hashes
opencode-agent[bot] Aug 12, 2026
cc4b456
sync release versions for v1.18.18
Aug 13, 2026
864889a
docs: remove Ling 3.0 Tiny free model (#42314)
MrMushrooooom Aug 13, 2026
62387f3
fix(skills): Update global config path in documentation (#42337)
TechyAditya Aug 13, 2026
ab7cbc8
chore: generate
opencode-agent[bot] Aug 13, 2026
6c035e1
fix(core): preserve unicode in grep previews (#42356)
kitlangton Aug 13, 2026
c7af47f
update grok endpoint
fwang Aug 13, 2026
d0c2b41
docs(go): use responses API for Grok 4.5 (#42373)
MrMushrooooom Aug 13, 2026
f06e949
feat(go): add Gemini 3.7 Flash (#42390)
MrMushrooooom Aug 13, 2026
3e25e80
chore: generate
opencode-agent[bot] Aug 13, 2026
2449581
fix(go): remove Gemini 3.7 Flash (#42393)
MrMushrooooom Aug 13, 2026
8a55ba7
chore: generate
opencode-agent[bot] Aug 13, 2026
d8bf792
fix(opencode): preserve v1 database compatibility (#42444)
thdxr Aug 14, 2026
0e34745
docs: sort Gemini 3.7 before 3.6 (#42473)
opencode-agent[bot] Aug 14, 2026
6d63500
chore(deps): update ai-gateway-provider to 3.2.0 (#42488)
rekram1-node Aug 14, 2026
722e717
chore: update nix node_modules hashes
opencode-agent[bot] Aug 14, 2026
886fd98
docs(zen): add Muse Spark 1.2 (#42508)
MrMushrooooom Aug 14, 2026
92d29ba
chore: generate
opencode-agent[bot] Aug 14, 2026
e23586a
feat(go): add GLM 5.3 (#42518)
MrMushrooooom Aug 14, 2026
4643e65
fix(opencode): enable web search for Go (#42630)
opencode-agent[bot] Aug 14, 2026
976c185
docs(go): remove DeepSeek Flash promotion (#42858)
MrMushrooooom Aug 16, 2026
3fd77ae
zen: peak pricing
fwang Aug 16, 2026
fb8344f
chore: remove scheduled beta sync
thdxr Aug 16, 2026
a0f8dcc
docs: update DeepSeek V4 pricing (#42881)
MrMushrooooom Aug 16, 2026
1c96545
fix(stats): correct YouTube footer link (#42941)
opencode-agent[bot] Aug 16, 2026
cba6b5f
feat(opencode): native OpenAI and Anthropic passthroughs for Cloudfla…
rekram1-node Aug 17, 2026
5a0e07e
chore: generate
opencode-agent[bot] Aug 17, 2026
4d68d30
tweak: match codex limits for openai models exactly when using chatgp…
GameOn223 Aug 17, 2026
2cba7e2
fix(cli): update default console URL (#43043)
opencode-agent[bot] Aug 17, 2026
a97fec8
fix: codex data residency (#42432)
neriousy Aug 17, 2026
7af274a
fix(core): fall back on oversized websocket requests (#43099)
neriousy Aug 17, 2026
e14acea
update ds flash limit
fwang Aug 17, 2026
57075d8
fix(provider): update Google Vertex SDK (#43108)
opencode-agent[bot] Aug 17, 2026
65c3597
chore: update nix node_modules hashes
opencode-agent[bot] Aug 17, 2026
040b856
fix(cli): stop legacy preview publishing
thdxr Aug 18, 2026
3232040
fix(app): keep server details editable (#43169)
opencode-agent[bot] Aug 18, 2026
4e81a0b
fix(console): preserve inference sessions (#43124)
adamdotdevin Aug 18, 2026
9b0dd36
fix(session): ignore malformed model costs (#43248)
nexxeln Aug 18, 2026
ad905f8
fix(opencode): properly show authed providers on /connect command (#3…
OpeOginni Aug 18, 2026
0033bb3
fix(core): restore session request headers (#43188)
neriousy Aug 18, 2026
8b65fa2
fix(opencode): remove Qwen sampling defaults (#43310)
opencode-agent[bot] Aug 18, 2026
7774461
docs: add SCX.ai to the providers list (#42520)
bhuvan2134686 Aug 19, 2026
64b4f7d
sync
fwang Aug 19, 2026
72824fe
sync
fwang Aug 19, 2026
e2a2bc3
sync
fwang Aug 19, 2026
da3ba63
sync
fwang Aug 19, 2026
fbcd4fa
sync
fwang Aug 19, 2026
4e29e04
sync
fwang Aug 19, 2026
fb772e8
sync
fwang Aug 19, 2026
3477d28
Merge branch 'muse-spark' of github.com:anomalyco/opencode into muse-…
fwang Aug 19, 2026
0a63972
Merge branch 'muse-spark' into dev
fwang Aug 19, 2026
1b18a50
chore: generate
opencode-agent[bot] Aug 19, 2026
20ad497
docs(console): end Luna usage promotion (#43351)
MrMushrooooom Aug 19, 2026
101ff6d
chore: generate
opencode-agent[bot] Aug 19, 2026
18fc3ee
update zen model name
fwang Aug 19, 2026
da4730e
chore: generate
opencode-agent[bot] Aug 19, 2026
d545d8f
feat(go): promote Hy3 usage (#43429)
MrMushrooooom Aug 19, 2026
16af134
update go models
fwang Aug 19, 2026
6386e67
chore: generate
opencode-agent[bot] Aug 19, 2026
a466a35
Revert "chore: generate"
fwang Aug 19, 2026
e2505d4
Revert "update go models"
fwang Aug 19, 2026
4c5960d
feat(stats): include free tier usage
adamdotdevin Aug 20, 2026
1b77242
country check for muse spark in free
fwang Aug 20, 2026
3d26b12
zen: muse spark contributor
fwang Aug 20, 2026
fc80874
chore: generate
opencode-agent[bot] Aug 20, 2026
be469f3
sync
fwang Aug 20, 2026
5ccb1e8
fix(stats): normalize routed model ids (#43582)
opencode-agent[bot] Aug 20, 2026
e0e9bd7
fix(tui): show encrypted reasoning status (#43578)
opencode-agent[bot] Aug 20, 2026
f715478
doc muse regions
fwang Aug 20, 2026
f4a8968
fix(tui): remove encrypted label from thought header (#43588)
rekram1-node Aug 20, 2026
03d65f3
sync
fwang Aug 20, 2026
ccccd75
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Aug 20, 2026
d06bf48
sync
fwang Aug 20, 2026
b155b15
sync release versions for v1.18.19
Aug 20, 2026
71d08e9
fix(opencode): retry xAI capacity stream errors (#43640)
opencode-agent[bot] Aug 20, 2026
ad192a5
fix(stats): clarify market share providers (#43647)
adamdotdevin Aug 20, 2026
82dee24
docs(zen): add Ox Alpha free model (#43690)
MrMushrooooom Aug 20, 2026
11e8110
fix(docs): align Ox Alpha free model ID (#43695)
MrMushrooooom Aug 20, 2026
5cc5b62
update muse country list
fwang Aug 20, 2026
5e75e5e
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Aug 20, 2026
08faeb3
fix(opencode): answer subagent permissions in run (#43675)
opencode-agent[bot] Aug 21, 2026
e49772a
fix(opencode): preserve Cerebras completion limit (#43736)
opencode-agent[bot] Aug 21, 2026
c313504
fix(opencode): surface resumable subagent errors (#43657)
opencode-agent[bot] Aug 21, 2026
2859603
chore: generate
opencode-agent[bot] Aug 21, 2026
7b11ef5
docs(go): add Ox Alpha Free (#43798)
MrMushrooooom Aug 21, 2026
e11dbd0
chore: generate
opencode-agent[bot] Aug 21, 2026
40282c1
fix(opencode): retry network error variants (#43806)
opencode-agent[bot] Aug 21, 2026
c9dc1a1
feat(go): add Ox Alpha to usage graph (#43809)
MrMushrooooom Aug 21, 2026
1e4c153
chore: generate
opencode-agent[bot] Aug 21, 2026
e0b9e68
fix(opencode): retry raw network finish errors (#43813)
opencode-agent[bot] Aug 21, 2026
62cb3f7
test(opencode): remove flaky subagent test (#43819)
opencode-agent[bot] Aug 21, 2026
35fe5b7
fix(opencode): surface subagent tool errors (#43821)
rekram1-node Aug 21, 2026
a9cac91
sync release versions for v1.18.20
Aug 21, 2026
f357e70
fix(app): register archive session command in both layouts (#41741)
NathanTCode Aug 21, 2026
b6a1f95
fix(app): preserve file search results while loading (#43836)
Brendonovich Aug 21, 2026
ba72a6f
fix(go): align Ox Alpha model ID (#43837)
MrMushrooooom Aug 21, 2026
813e6f3
docs(go): add DeepSeek vision model (#43866)
MrMushrooooom Aug 21, 2026
fa8f170
chore: generate
opencode-agent[bot] Aug 21, 2026
361a71f
fix(opencode): route Vertex multi-regions through REP (#42648)
opencode-agent[bot] Aug 21, 2026
8ecd4c2
chore: generate
opencode-agent[bot] Aug 21, 2026
0af9dd6
fix(stats): merge renamed model data (#43883)
adamdotdevin Aug 21, 2026
57fa34f
fix(opencode): continue unknown finish responses (#43892)
opencode-agent[bot] Aug 21, 2026
487d584
docs(zen): reflect GPT 5.6 Sol discount (#43874)
opencode-agent[bot] Aug 21, 2026
ad0bb6d
sync release versions for v1.18.21
Aug 21, 2026
1b937c8
test(opencode): align unknown finish coverage (#43895)
opencode-agent[bot] Aug 21, 2026
9cb6fb6
fix(console): cache desktop downloads
thdxr Aug 21, 2026
bcf1103
docs(zen): update GPT 5.6 Sol pricing (#43986)
opencode-agent[bot] Aug 21, 2026
e2ec62d
fix: bump Amazon Bedrock provider (#43909)
opencode-agent[bot] Aug 21, 2026
ff3ef6e
chore: update nix node_modules hashes
opencode-agent[bot] Aug 21, 2026
34a83b2
fix(stats): improve chart tooltip truncation
adamdotdevin Aug 21, 2026
3a4c253
fix(provider): guard textVerbosity injection for @ai-sdk/openai-compa…
joelstucki-taulia Aug 21, 2026
e00890c
fix: resolve console device URLs (#44029)
kitlangton Aug 22, 2026
3a31c4e
fix(app): keep model provider headers visible (#44115)
Brendonovich Aug 22, 2026
dc13c6b
fix(console): reduce zen request memory (#44403)
thdxr Aug 23, 2026
e3bd6e0
chore: generate
opencode-agent[bot] Aug 23, 2026
9d466cd
fix(stats): normalize model casing
thdxr Aug 23, 2026
32c3637
fix(console): stream zen request bodies (#44429)
thdxr Aug 23, 2026
bb72277
chore: generate
opencode-agent[bot] Aug 23, 2026
3d31e4b
fix(console): revert streamed zen request bodies (#44444)
thdxr Aug 23, 2026
17b4730
feat(console): add unblock workspace action
fwang Aug 23, 2026
fa11755
fix(console): scan zen model before streaming (#44463)
thdxr Aug 23, 2026
c11c41b
chore: generate
opencode-agent[bot] Aug 23, 2026
dd3f915
fix(console): release streamed zen prefixes (#44465)
thdxr Aug 23, 2026
ca10088
chore: generate
opencode-agent[bot] Aug 23, 2026
b3bad6b
fix(console): revert scanned zen request streaming (#44470)
thdxr Aug 23, 2026
63a883a
refactor(console): stream zen bodies without modifiers (#44472)
thdxr Aug 23, 2026
03bba46
chore: generate
opencode-agent[bot] Aug 23, 2026
b1ce938
fix(console): support DeepSeek weekend pricing (#44305)
opencode-agent[bot] Aug 24, 2026
f2a1d54
fix(console): set duplex for streamed zen requests
fwang Aug 24, 2026
7bbfe42
always allow ox alpha in go
fwang Aug 24, 2026
4161695
Merge branch 'dev' of github.com:anomalyco/opencode into dev
fwang Aug 24, 2026
d681f36
WIP(sync): upstream v1.18.21 — manual conflict resolution required
github-actions[bot] Aug 24, 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 number Diff line number Diff 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 number Diff line number Diff line change
@@ -0,0 +1,2 @@
packages/core/migration/**/snapshot.json linguist-generated
packages/core/src/database/migration.gen.ts linguist-generated
6 changes: 2 additions & 4 deletions .github/CODEOWNERS
Original file line number Diff line number Diff 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 number Diff line number Diff 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 number Diff line number Diff 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.

6 changes: 6 additions & 0 deletions .github/TEAM_MEMBERS
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
adamdotdevin
arvsrn
Brendonovich
fwang
Hona
Expand All @@ -7,10 +8,15 @@ jayair
jlongster
kitlangton
kommander
ludvigrask
MrMushrooooom
neriousy
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 number Diff line number Diff 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 number Diff line number Diff 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
4 changes: 2 additions & 2 deletions .github/workflows/close-issues.yml
Original file line number Diff line number Diff 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 number Diff line number Diff 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 number Diff line number Diff 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 number Diff line number Diff 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
28 changes: 17 additions & 11 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,42 @@ 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:
GITHUB_TOKEN: ${{ github.token }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
PLANETSCALE_SERVICE_TOKEN_NAME: ${{ secrets.PLANETSCALE_SERVICE_TOKEN_NAME }}
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 number Diff line number Diff 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 number Diff line number Diff 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