Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3286 commits
Select commit Hold shift + click to select a range
fe506f2
docs: explain supporting v1 and v2 plugins
thdxr Sep 6, 2026
2a895b9
fix(core): interrupt sessions before inactivity eviction (#47629)
kitlangton Sep 6, 2026
58f949d
fix(core): log MCP OAuth and credential lifecycle (#47636)
thdxr Sep 6, 2026
33f48f3
docs(www): add Console documentation (#47638)
thdxr Sep 6, 2026
e3c8965
feat(core): keep web search providers sticky per session (#47334)
nexxeln Sep 6, 2026
beca5e8
feat(project): allow updating canonical directory (#47642)
thdxr Sep 6, 2026
a02415a
fix(ai): restrict Bedrock cache checkpoints to Claude (#47660)
rekram1-node Sep 6, 2026
0d70595
fix(desktop): export tail of oversized logs in debug bundle (#47672)
Hona Sep 6, 2026
13286e8
fix(ai): raise typed errors for failed finishes (#47688)
rekram1-node Sep 6, 2026
873d437
fix(desktop): emit preload as .cjs so it loads under --no-sandbox (#4…
Hona Sep 6, 2026
f334377
fix(util): bound opencode.log by trimming its head in place (#47676)
Hona Sep 6, 2026
a5ebf5b
fix(www): regenerate OpenAPI documents (#47693)
opencode-agent[bot] Sep 6, 2026
ecb3c88
fix(app): give worktree creation a setup-length request deadline (#47…
Hona Sep 6, 2026
69b30ac
chore: stop trusting tree-sitter install scripts (#47696)
Hona Sep 7, 2026
5e3100a
fix(desktop): persist renderer state in SQLite instead of electron-st…
Hona Sep 7, 2026
d0d3504
chore: update nix node_modules hashes
opencode-agent[bot] Sep 7, 2026
f16acb1
feat(desktop): improve worktree ui (#47310)
usrnk1 Sep 7, 2026
dc46ecf
perf(app): cache storage namespaces and batch writes in the renderer …
Hona Sep 7, 2026
44513bd
perf(app): serialize persisted stores on a schedule instead of per se…
Hona Sep 7, 2026
5ff8a3f
fix(ui): align unread avatar badges with the corner (#47718)
opencode-agent[bot] Sep 7, 2026
0ff9ccb
docs(go): document client session compatibility
thdxr Sep 7, 2026
733f138
fix(app): remove bottom safe area while keyboard is open (#47712)
opencode-agent[bot] Sep 7, 2026
7ef9cb6
Revert "docs(go): document client session compatibility"
thdxr Sep 7, 2026
5d971e5
perf(app): externalize large draft text into content-addressed chunks…
Hona Sep 7, 2026
243e810
feat(app): refine timeline detail settings (#47226)
iamdavidhill Sep 7, 2026
42bccc3
refactor(ai): give named providers dedicated modules (#47726)
rekram1-node Sep 7, 2026
3cf197a
fix(core): remove compatible-provider remapping (#47732)
rekram1-node Sep 7, 2026
d86c304
fix(app): keep new session open while the worktree list loads (#47734)
Hona Sep 7, 2026
5b83c15
fix(core): route MCP skill authentication through the UI (#47738)
opencode-agent[bot] Sep 7, 2026
17f362e
fix(desktop): brand macOS dev app as OpenCode Dev (#47744)
Brendonovich Sep 7, 2026
3ebc4b0
feat(browser): add a public-API browser plugin (#46531)
Hona Sep 7, 2026
00067d2
chore: update nix node_modules hashes
opencode-agent[bot] Sep 7, 2026
1a2b985
refactor(core): remove legacy Console variant normalization (#47760)
vimtor Sep 7, 2026
8a1a6b8
feat(desktop): add browser tabs and Chromium diagnostics (#44838)
Hona Sep 7, 2026
b51fdb3
fix: delete sessions with missing directories and report api errors (…
nexxeln Sep 7, 2026
fc4f319
chore: update nix node_modules hashes
opencode-agent[bot] Sep 7, 2026
89f1943
fix(app): restore the review panel landmark label (#47781)
Hona Sep 7, 2026
f094a10
fix(plugin): expose dialog option footer (#47780)
opencode-agent[bot] Sep 7, 2026
2bf6a98
fix(tui): honor falsy dialog current values (#47782)
opencode-agent[bot] Sep 7, 2026
0732cdd
feat(core): persist provider compaction context (#47322)
nexxeln Sep 7, 2026
1382ceb
feat(core): support explicit provider compaction (#47323)
nexxeln Sep 7, 2026
5c3f2dd
refactor(core): unify filesystem access policy (#47630)
kitlangton Sep 7, 2026
898692a
feat(core): schedule provider compaction automatically (#47324)
nexxeln Sep 7, 2026
1827832
fix(core): retry transient provider compaction failures (#47806)
nexxeln Sep 7, 2026
596dca4
feat(cli): add session list and delete commands (#47812)
neriousy Sep 7, 2026
1d39190
feat(core): identify to MCP authorization servers with a client metad…
rekram1-node Sep 7, 2026
9c65a69
fix(core): support granular webfetch permissions (#46611)
OpeOginni Sep 7, 2026
582a210
fix(tui): finish reasoning rows on end event (#47813)
opencode-agent[bot] Sep 7, 2026
fcddc84
fix(codemode): render empty tools as () and accept zero args (#47833)
rekram1-node Sep 7, 2026
5c50edb
feat(core): expose session rename tool (#47837)
neriousy Sep 7, 2026
6af8515
feat(ai): add MiniMax provider (#47827)
rekram1-node Sep 7, 2026
b32d8c3
chore(app): update GitHub star count (#47844)
opencode-agent[bot] Sep 7, 2026
72433f2
feat(ai): add Meta provider (#47826)
rekram1-node Sep 7, 2026
e15fb42
fix(browser): publish plugin under opencode scope
thdxr Sep 7, 2026
ef34ada
feat(core): add DigitalOcean OAuth and router discovery (#47137)
rekram1-node Sep 7, 2026
c05d07c
feat(updates): gate releases on minimum client versions
thdxr Sep 7, 2026
a3bbcd5
fix(updates): respect the default CLI user agent
thdxr Sep 7, 2026
4aba093
fix(updates): scope minimum checks to the caller channel
thdxr Sep 7, 2026
16aca14
chore: update nix node_modules hashes
opencode-agent[bot] Sep 7, 2026
a5312e1
refactor(packages): migrate to the opencode npm scope (#47852)
thdxr Sep 7, 2026
ad31bff
docs: remove internal scope migration checklist
thdxr Sep 7, 2026
cc8c2f8
chore: update nix node_modules hashes
opencode-agent[bot] Sep 7, 2026
a68d6f9
feat(cli): publish beta releases to AUR (#47855)
thdxr Sep 7, 2026
74ca560
feat(cli): publish stable releases to opencode-bin on AUR (#47856)
thdxr Sep 7, 2026
6263a35
fix(cli): install only opencode for stable AUR releases (#47857)
thdxr Sep 7, 2026
567f8b9
feat(updates): serve updates under opencode.ai/update (#47858)
thdxr Sep 7, 2026
be41bc4
fix(app): keep tab progress visible on hover (#47835)
opencode-agent[bot] Sep 7, 2026
a55dc8c
feat(services): organize hosted services and add public files
thdxr Sep 7, 2026
0ab661a
chore: update nix node_modules hashes
opencode-agent[bot] Sep 7, 2026
d1d1c6f
feat(release): publish package binaries through Cloudflare
thdxr Sep 7, 2026
c1c6ab5
chore: update nix node_modules hashes
opencode-agent[bot] Sep 7, 2026
2ac698d
feat(ai): add Moonshot provider (#47851)
rekram1-node Sep 8, 2026
a912a6e
fix(core): clarify shell background parameter guidance (#47865)
rekram1-node Sep 8, 2026
1f77408
feat(tui): navigate projects and worktrees
kitlangton Sep 8, 2026
b3f36c0
feat(ai): add Z.AI language models (#47866)
rekram1-node Sep 8, 2026
e817723
feat(core): support native Snowflake Cortex authentication (#47156)
rekram1-node Sep 8, 2026
50e17b7
fix(desktop): use OpenCode-hosted update releases
thdxr Sep 8, 2026
4d74854
trim redundant opencode instruction (#47878)
rekram1-node Sep 8, 2026
5165d60
fix(ai): default newer Claude models to drop invalid thinking (#47884)
rekram1-node Sep 8, 2026
cab8e39
fix(app): use HTTP-safe attachment and mutation IDs (#47887)
thdxr Sep 8, 2026
64684b1
fix(app): focus auto-created terminals (#47890)
opencode-agent[bot] Sep 8, 2026
90dd682
feat(app): configure initial servers and add QR pairing (#47799)
Brendonovich Sep 8, 2026
2bf9bec
chore: update nix node_modules hashes
opencode-agent[bot] Sep 8, 2026
c3f1bda
fix(app): cap worktree picker height (#47899)
opencode-agent[bot] Sep 8, 2026
22a534a
fix(desktop): skip differential updates when the cache is stale (#47925)
Hona Sep 8, 2026
09c3180
fix(app): bound terminal snapshot serialization on teardown (#47924)
Hona Sep 8, 2026
ea2c018
fix(app): release attachment blobs when no draft references them (#47…
Hona Sep 8, 2026
a3d5923
fix(session-ui): stop refetching missing shell output (#47926)
Hona Sep 8, 2026
50c552f
tui: add tool filtering option to Markdown exports (#47929)
simonklee Sep 8, 2026
4fef8ed
mini: add clear-screen command (#47928)
simonklee Sep 8, 2026
2eea36e
mini: add more minimal output presets. (#47931)
simonklee Sep 8, 2026
7487999
tabs: add compact session tab rail (#47938)
simonklee Sep 8, 2026
f9bc223
fix(app): align desktop agent and model switching (#47286)
opencode-agent[bot] Sep 8, 2026
ded9c7e
feat(cli): add Vite-powered TUI development entrypoint (#47950)
jlongster Sep 8, 2026
c2a1649
chore: update nix node_modules hashes
opencode-agent[bot] Sep 8, 2026
9e42e5c
feat(core): refresh console provider config periodically (#47980)
thdxr Sep 8, 2026
be58ca8
fix(cli): recover dev hot reloads and preserve routes (#47979)
jlongster Sep 8, 2026
8a57093
fix(worktree): resolve configured paths relative to project (#47990)
jlongster Sep 8, 2026
cc6bff3
feat(tui): manage worktrees and explicitly move sessions (#47984)
jlongster Sep 8, 2026
375bf49
feat(updates): configure per-channel gradual rollouts
thdxr Sep 8, 2026
4432956
fix(worktree): accept the strategy's returned directory (#47997)
jlongster Sep 8, 2026
ccbc018
fix(tui): honor configured worktree strategy (#47991)
opencode-agent[bot] Sep 8, 2026
e655fed
fix(updates): reject retired next channel
thdxr Sep 8, 2026
e791afd
feat(core): add console web search (#47293)
adamdotdevin Sep 8, 2026
8b09f64
refactor(codemode): export runtime value classes as Values (#48000)
rekram1-node Sep 8, 2026
0c1bf08
feat(core): add Poe browser OAuth (#47883)
rekram1-node Sep 8, 2026
1ead175
fix(core): name hosted provider opencode web search (#48001)
adamdotdevin Sep 8, 2026
78915a0
refactor(update): rename updates service to update
thdxr Sep 8, 2026
510b771
chore: update nix node_modules hashes
opencode-agent[bot] Sep 8, 2026
8328892
fix(core): map Bedrock OpenAI reasoning effort for inference-profile …
rekram1-node Sep 8, 2026
546b9fb
refactor(codemode): consolidate duplicated interpreter helpers (#48009)
rekram1-node Sep 8, 2026
a322d7f
fix(update): bind migrated singular D1 database
thdxr Sep 8, 2026
11aee1b
fix(codegen): preserve equivalent suffixed type references (#48024)
rekram1-node Sep 8, 2026
5c30292
fix(update): restore next channel compatibility alias
thdxr Sep 8, 2026
883d16d
fix(session-ui): emphasize mentions and soften at prefixes (#48029)
iamdavidhill Sep 8, 2026
f3128fa
fix(ui): unify composer submit button styles (#48032)
iamdavidhill Sep 8, 2026
8c5eca5
fix(session-ui): show one count before used (#48038)
iamdavidhill Sep 8, 2026
79a6a90
fix(plugin): normalize promise API inputs (#48039)
rekram1-node Sep 8, 2026
d24f8b0
fix(core): discourage polling background shell commands (#48041)
rekram1-node Sep 8, 2026
37b6fbc
fix(app): move vertical tab update button to footer (#48030)
iamdavidhill Sep 8, 2026
cc50165
refactor(cli): remove console command (#48040)
thdxr Sep 8, 2026
18b05e8
feat(app): add browser shortcut to new-tab menu (#48044)
iamdavidhill Sep 9, 2026
594635b
feat(cli): add auth account switching and targeted logout (#48050)
thdxr Sep 9, 2026
6ee2ed7
refactor(session): remove message content mutation API (#48043)
rekram1-node Sep 9, 2026
d39290f
feat(desktop): add SSH server connections (#47753)
Brendonovich Sep 9, 2026
f1ce69d
fix(app): link background subagents to their sessions (#47455)
opencode-agent[bot] Sep 9, 2026
d11f591
test(app): remove subagent link coverage (#48052)
opencode-agent[bot] Sep 9, 2026
b43e1c6
test(app): remove subagent link coverage (#48053)
opencode-agent[bot] Sep 9, 2026
dbd9b18
refactor(cli): move import and export under session (#48055)
thdxr Sep 9, 2026
74b0fa9
feat(cli): add V2 uninstall command (#48056)
thdxr Sep 9, 2026
08e28fb
refactor(codemode): name the data boundary and prepare tools once (#4…
rekram1-node Sep 9, 2026
0da0772
refactor(codemode): use acorn's typed AST in the interpreter (#48060)
rekram1-node Sep 9, 2026
f02c5f8
fix(app): follow rendered model order with arrow keys (#47912)
opencode-agent[bot] Sep 9, 2026
1623ac3
test(cli): update auth account coverage (#48066)
opencode-agent[bot] Sep 9, 2026
b7aea8b
fix(session-ui): fade in streamed inline code (#44899)
Brendonovich Sep 9, 2026
148042a
fix(core): trim compaction summary prompt (#48058)
rekram1-node Sep 9, 2026
e628143
fix(core): drop retained-tail reference from compaction rules (#48074)
rekram1-node Sep 9, 2026
c1f4bea
feat(ai): add Alibaba inference provider (#47874)
rekram1-node Sep 9, 2026
1fe06bb
refactor(codemode): define built-in globals as host functions and nam…
rekram1-node Sep 9, 2026
fcafe82
fix(core): hide Bedrock bare IDs that require inference profiles (#48…
rekram1-node Sep 9, 2026
2dea1f3
fix(browser): suspend and restore idle desktop tabs (#48080)
Hona Sep 9, 2026
d55d941
fix(app): restore selected review pane tab per session (#48079)
Hona Sep 9, 2026
c0aa963
refactor(codemode): split the interpreter into a per-execution Runtim…
rekram1-node Sep 9, 2026
ab2366d
fix(app): improve queued message previews (#48091)
iamdavidhill Sep 9, 2026
b3f765c
fix(app): reorder and rename browser experiment (#48087)
iamdavidhill Sep 9, 2026
ef88566
fix(app): smooth right panel transitions (#48086)
iamdavidhill Sep 9, 2026
f4dd769
fix(session-ui): simplify file search styling (#48063)
iamdavidhill Sep 9, 2026
8b92833
fix(app): constrain worktree dropdown spacing (#48062)
iamdavidhill Sep 9, 2026
9128e84
fix(app): refine browser toolbar and empty state (#48061)
iamdavidhill Sep 9, 2026
cebd250
fix(core): honor device token organization (#46570)
vimtor Sep 9, 2026
d461154
fix(session-ui): lead tool summaries with Used (#48102)
opencode-agent[bot] Sep 9, 2026
3c4c7b4
fix(core): close websocket after provider error frame (#47973)
nexxeln Sep 9, 2026
65152b7
feat(core): carry compaction usage on the compaction message (#47974)
nexxeln Sep 9, 2026
51c926c
fix(core): terminate exhausted Markdown code budgets (#47408)
kitlangton Sep 9, 2026
9c8fb89
fix(core): preserve inline code boundary backticks (#47410)
kitlangton Sep 9, 2026
1dcc655
fix(core): preserve literal command arguments
kitlangton Sep 9, 2026
c6977a8
fix(core): preserve trailing blank lines in read pages
kitlangton Sep 9, 2026
4ea368e
fix(core): exclude hidden glob matches before limiting results
kitlangton Sep 9, 2026
f1eed8b
fix(core): preserve legacy markdown agent variants
kitlangton Sep 9, 2026
d523800
fix(core): drop gpt-5.4 models from the Codex allowlist (#48141)
nexxeln Sep 9, 2026
bdc143c
feat(core): enable the responses websocket by default (#48140)
nexxeln Sep 9, 2026
e10408b
fix(cli): ignore upgrade cleanup failures (#48178)
opencode-agent[bot] Sep 9, 2026
c0cb1c7
fix(tui): limit shell list commands to one line (#48184)
opencode-agent[bot] Sep 9, 2026
be2582f
feat(plugin): decompose tab controls (#48129)
opencode-agent[bot] Sep 9, 2026
ba14483
fix(core): exclude invalid Bedrock entries from models.dev imports (#…
rekram1-node Sep 9, 2026
95503c1
fix(core): send reasoning.effort for GPT-5.6+ on Bedrock Converse (#4…
rekram1-node Sep 9, 2026
297019e
fix(codemode): report non-constructible new callees as TypeError (#48…
rekram1-node Sep 9, 2026
85dff53
fix(codemode): label supported and unsupported syntax in the hint (#4…
rekram1-node Sep 9, 2026
c7dd0c8
fix(tui): match upgrade alias to update command (#48204)
opencode-agent[bot] Sep 9, 2026
9ae6b21
feat(plugin): add session title hook and request options bag (#47663)
rekram1-node Sep 9, 2026
7f2510c
fix(codemode): name the received value in data diagnostics and docume…
rekram1-node Sep 9, 2026
7fb7938
feat(cli): select individual debug paths (#48216)
thdxr Sep 9, 2026
c45e425
fix(server): require authentication for frontend requests (#48217)
thdxr Sep 9, 2026
1bd85d9
fix(ai): mark replayed assistant messages completed (#48221)
rekram1-node Sep 9, 2026
7ed5223
fix(session-ui): align retry icon with label (#47859)
opencode-agent[bot] Sep 9, 2026
a0a0e32
fix(core): make responses websockets opt-in (#48231)
opencode-agent[bot] Sep 9, 2026
0bbf29f
feat(desktop): use base menu selection styling (#47786)
usrnk1 Sep 9, 2026
50ed7c4
refactor(codemode): treat prototype-named keys as ordinary data (#48218)
rekram1-node Sep 9, 2026
571c3c4
feat(desktop): show compaction progress and outcomes (#48152)
usrnk1 Sep 9, 2026
bf4522e
fix(app): prevent settings project card clipping (#45366)
opencode-agent[bot] Sep 9, 2026
eb37a7e
feat(desktop): polish branch search and session spacing (#48150)
usrnk1 Sep 9, 2026
08ac1e1
fix(app): hide outgoing browser when switching sessions (#48243)
Hona Sep 9, 2026
0f67a15
fix(app): reduce cold and warm session load work (#48223)
Hona Sep 9, 2026
30f8b2f
feat(api): filter session messages by type (#48228)
rekram1-node Sep 10, 2026
f91c6d8
fix(ai): retain streamed output for empty completion checkpoints (#48…
Tarquinen Sep 10, 2026
bdb6674
feat(codemode): resolve constructor to the owning built-in (#48233)
rekram1-node Sep 10, 2026
20aff6d
fix(app): keep workspace tab views alive (#48255)
Hona Sep 10, 2026
3edbc88
feat(plugin): add session compaction and generate hooks (#48212)
rekram1-node Sep 10, 2026
ac7f3c5
fix(core): route Mantle GPT-OSS models through Chat (#48251)
rekram1-node Sep 10, 2026
43fb543
fix(core): request summarized adaptive thinking (#48271)
rekram1-node Sep 10, 2026
5ec7dd9
fix(codemode): coerce enumeration sources like JS ToObject (#48257)
rekram1-node Sep 10, 2026
1417976
fix(core): run compaction hooks before appending the summary prompt (…
rekram1-node Sep 10, 2026
1452aad
feat(codemode): add substr, well-formed, and Date string methods (#48…
rekram1-node Sep 10, 2026
8475783
fix(tui): ignore parked synthetic inbox for tab busy (#48273)
rekram1-node Sep 10, 2026
e22cd0a
refactor(codemode): collapse repeated loop, promise, and Object shape…
rekram1-node Sep 10, 2026
98a36fb
feat(codemode): hoist var to function scope (#48284)
rekram1-node Sep 10, 2026
08ff211
fix(codemode): hoist switch-case functions and memoize var names (#48…
rekram1-node Sep 10, 2026
f3ef845
feat(codemode): add atob, btoa, and crypto.randomUUID (#48290)
rekram1-node Sep 10, 2026
2695607
fix(app): stabilize optimistic prompt position (#46723)
Brendonovich Sep 10, 2026
2e8ed86
fix(app): move compaction status below summary (#48262)
opencode-agent[bot] Sep 10, 2026
bb81943
feat(desktop): respect follow-up behavior for slash commands (#48169)
usrnk1 Sep 10, 2026
573d769
fix(ai): make xAI Responses websockets work and enable them (#48318)
nexxeln Sep 10, 2026
eb357f1
fix(tui): strip NUL characters before clipboard writes (#48337)
simonklee Sep 10, 2026
9e153ce
fix(core): raise instruction entry limit (#48350)
opencode-agent[bot] Sep 10, 2026
f633354
fix(tui): disambiguate plugin actions (#48354)
opencode-agent[bot] Sep 10, 2026
45a2ed9
feat(core): per-session permission rules (#48351)
nexxeln Sep 10, 2026
cfa5ba7
fix(stats): canonicalize DeepSeek Flash usage (#48373)
opencode-agent[bot] Sep 10, 2026
929374c
feat(core): parse JSON text results from MCP tools without an output …
rekram1-node Sep 10, 2026
8f4d706
feat(cli): add command docs and simplify session list
thdxr Sep 10, 2026
0c1dfa9
refactor(tui): extract shared session rendering primitives (#48393)
jlongster Sep 10, 2026
872e380
fix(ai): normalize flat Responses stream errors (#48376)
rekram1-node Sep 10, 2026
d4ceffe
docs: refresh v2 guides
thdxr Sep 11, 2026
d4bf78b
docs: add websearch guides
thdxr Sep 11, 2026
9b1891f
docs(cli): expand provider connections
thdxr Sep 11, 2026
181428a
fix(codemode): use Bun's wording for the missing atob/btoa argument (…
rekram1-node Sep 11, 2026
1c723c5
feat(tui): add recursive grouping tree (#48394)
jlongster Sep 11, 2026
70afbac
docs(www): add core CLI theme concepts (#48426)
jlongster Sep 11, 2026
4d12e01
refactor(tui): project production subgroups through tree engine (#48399)
jlongster Sep 11, 2026
15c525d
fix(merman): support & node groups in flowchart statements (#48425)
rekram1-node Sep 11, 2026
f0b5da1
feat(ai): type provider configuration errors (#48440)
rekram1-node Sep 11, 2026
3368e04
fix(app): refine home row hover actions (#47270)
Brendonovich Sep 11, 2026
0c0a431
fix(ui): make comment cancel action ghost (#46742)
Brendonovich Sep 11, 2026
9dd7149
feat(core): append comment guidance to Anthropic system prompt (#48444)
rekram1-node Sep 11, 2026
4261fe7
fix(desktop): repair SSH server updates (#48442)
opencode-agent[bot] Sep 11, 2026
71317ec
fix(core): report provider initialization failures (#48433)
rekram1-node Sep 11, 2026
c2348f8
fix(app): coordinate notifications across windows (#44613)
Brendonovich Sep 11, 2026
010cd61
fix(app): merge adjacent file-changing tools (#44977)
Brendonovich Sep 11, 2026
0ce1383
fix(app): preserve file search results while loading (#43832)
Brendonovich Sep 11, 2026
6bb4b35
fix(app): preserve loopback server host (#44296)
Brendonovich Sep 11, 2026
4e97b78
docs: fix v2 plugin system example (#48452)
dajiaohuang Sep 11, 2026
e0deffa
docs(plugin): fix Effect system part example (#48492)
opencode-agent[bot] Sep 11, 2026
2df0095
fix(cli): preserve ACP reasoning boundaries and effort selections (#4…
nexxeln Sep 11, 2026
4c34ee5
test(codemode): run test262 files verbatim from a local checkout (#48…
rekram1-node Sep 11, 2026
923bda0
feat(ai): always send interleaved thinking beta for Anthropic (#48521)
rekram1-node Sep 11, 2026
6e8ff0c
refactor(core): remove dead AISDK hooks (#48523)
rekram1-node Sep 11, 2026
10ae321
refactor(codemode): give programs their own objects and arrays (#48527)
rekram1-node Sep 11, 2026
a555f24
refactor: flatten provider settings across core and the AI package (#…
rekram1-node Sep 11, 2026
bb564f9
feat(cli): rename command to opencode
thdxr Sep 11, 2026
8f2b13e
fix(tui): display slash command aliases (#48544)
thdxr Sep 11, 2026
68b862d
refactor(codemode): make functions program objects with name and leng…
rekram1-node Sep 11, 2026
654f411
feat(release): isolate v2 stable publishing (#48546)
thdxr Sep 11, 2026
312651f
feat(tui): configure session permission handling (#48545)
thdxr Sep 11, 2026
c55ee2a
fix(release): sign v2 Windows CLI (#48566)
thdxr Sep 11, 2026
4994a7d
fix(release): sign primary Windows CLI (#48567)
thdxr Sep 11, 2026
770420b
fix(release): omit node CLI from latest (#48568)
thdxr Sep 11, 2026
63f7cee
fix(release): use V2 Docker artifact paths (#48571)
thdxr Sep 11, 2026
5319f06
docs: use stable V2 packages (#48576)
thdxr Sep 12, 2026
b08ad82
fix(cli): clarify opencode2 rename guidance
thdxr Sep 12, 2026
0f26ad8
fix(cli): keep opencode2 as a working alias
thdxr Sep 12, 2026
4292f8e
feat(tui): native Arabic/RTL bidi support for prompts and messages
muhamedbeshir Sep 12, 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.
5 changes: 5 additions & 0 deletions .changeset/directory-page-heading.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@opencode/core": patch
---

Correct directory page headings when the read offset is zero.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
packages/core/migration/**/snapshot.json linguist-generated
packages/core/src/database/migration.gen.ts linguist-generated
packages/core/src/models-dev/snapshot.txt linguist-generated
packages/core/src/**/*.txt text eol=lf
packages/httpapi-codegen/test/generated/*.ts text eol=lf
7 changes: 6 additions & 1 deletion .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,11 +8,15 @@ jayair
jlongster
kitlangton
kommander
ludvigrask
MrMushrooooom
neriousy
nexxeln
R44VC0RP
rekram1-node
thdxr
simonklee
Slickstef11
usrnk1
vimtor
starptech
StarpTech
20 changes: 17 additions & 3 deletions .github/actions/setup-bun/action.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,45 @@
name: "Setup Bun"
description: "Setup Bun with caching and install dependencies"
inputs:
bun-version:
description: "Bun version to install instead of the root packageManager version"
required: false
default: ""
install-flags:
description: "Additional flags to pass to 'bun install'"
required: false
default: ""
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
run: |
if [ "$RUNNER_ARCH" = "X64" ]; then
V=$(node -p "require('./package.json').packageManager.split('@')[1]")
V="${{ inputs.bun-version }}"
if [ -z "$V" ]; then V=$(node -p "require('./package.json').packageManager.split('@')[1]"); fi
TAG=$([ "$V" = "canary" ] && echo "canary" || echo "bun-v${V}")
case "$RUNNER_OS" in
macOS) OS=darwin ;;
Linux) OS=linux ;;
Windows) OS=windows ;;
esac
echo "url=https://github.com/oven-sh/bun/releases/download/bun-v${V}/bun-${OS}-x64-baseline.zip" >> "$GITHUB_OUTPUT"
echo "url=https://github.com/oven-sh/bun/releases/download/${TAG}/bun-${OS}-x64-baseline.zip" >> "$GITHUB_OUTPUT"
fi

- name: Setup Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: ${{ !steps.bun-url.outputs.url && 'package.json' || '' }}
bun-version: ${{ !steps.bun-url.outputs.url && inputs.bun-version || '' }}
bun-version-file: ${{ !steps.bun-url.outputs.url && !inputs.bun-version && 'package.json' || '' }}
bun-download-url: ${{ steps.bun-url.outputs.url }}

- name: Get cache directory
Expand Down
37 changes: 0 additions & 37 deletions .github/workflows/beta.yml

This file was deleted.

38 changes: 38 additions & 0 deletions .github/workflows/compliance-close.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,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
34 changes: 34 additions & 0 deletions .github/workflows/deploy-files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: deploy-files

on:
push:
branches:
- dev
- v2
workflow_dispatch:

concurrency:
group: deploy-files-${{ github.ref_name }}
cancel-in-progress: false

permissions:
contents: read

jobs:
deploy:
if: github.repository == 'anomalyco/opencode' && (github.ref_name == 'dev' || github.ref_name == 'v2')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0

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

- name: Typecheck
working-directory: services/files
run: bun typecheck

- name: Deploy
working-directory: services/files
run: bun run deploy --env ${{ github.ref_name == 'v2' && 'production' || 'dev' }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
37 changes: 37 additions & 0 deletions .github/workflows/deploy-posts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: deploy-posts

on:
push:
branches:
- v2
paths:
- packages/posts/**
- bun.lock
- .github/workflows/deploy-posts.yml
workflow_dispatch:

concurrency:
group: deploy-posts-${{ github.ref_name }}
cancel-in-progress: false

permissions:
contents: read

jobs:
deploy:
if: github.repository == 'anomalyco/opencode' && github.ref_name == 'v2'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0

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

- name: Build
working-directory: packages/posts
run: bun run build

- name: Deploy
working-directory: packages/posts
run: bun run deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
36 changes: 36 additions & 0 deletions .github/workflows/deploy-www.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: deploy-www

on:
push:
branches:
- dev
- v2
workflow_dispatch:

concurrency:
group: deploy-www-${{ github.ref_name }}
cancel-in-progress: false

permissions:
contents: read

jobs:
deploy:
if: github.repository == 'anomalyco/opencode' && (github.ref_name == 'dev' || github.ref_name == 'v2')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0

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

- name: Build
working-directory: services/www
run: bun run build
env:
CLOUDFLARE_ENV: ${{ github.ref_name == 'v2' && 'production' || 'dev' }}

- name: Deploy
working-directory: services/www
run: bun run deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
4 changes: 3 additions & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- dev
- production
- beta
workflow_dispatch:

concurrency: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -15,7 +16,7 @@ permissions:

jobs:
deploy:
if: github.repository == 'anomalyco/opencode' && (github.ref_name == 'dev' || github.ref_name == 'production')
if: github.repository == 'anomalyco/opencode' && (github.ref_name == 'dev' || github.ref_name == 'production' || github.ref_name == 'beta')
runs-on: ubuntu-latest
environment: ${{ github.ref_name }}
steps:
Expand All @@ -28,6 +29,7 @@ jobs:
node-version: "24"

- uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
if: github.ref_name != 'beta'
with:
role-to-assume: ${{ vars.AWS_DEPLOY_ROLE_ARN }}
role-session-name: opencode-${{ github.run_id }}
Expand Down
Loading
Loading