Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1847 commits
Select commit Hold shift + click to select a range
327f625
use solid-primitives/resize-observer across web code (#20613)
Brendonovich Apr 2, 2026
69d047a
cleanup event listeners with solid-primitives/event-listener (#20619)
Brendonovich Apr 2, 2026
ec3ae17
chore: update nix node_modules hashes
opencode-agent[bot] Apr 2, 2026
23c8656
refactor: split up models.dev and config model definitions to prevent…
rekram1-node Apr 2, 2026
57a5236
chore: generate
opencode-agent[bot] Apr 2, 2026
291a857
feat: add optional messageID to ShellInput (#20657)
noamzbr Apr 2, 2026
159ede2
chore: generate
opencode-agent[bot] Apr 2, 2026
510a1e8
ignore: fix typecheck in dev (#20702)
rekram1-node Apr 2, 2026
c3dfd08
fix(format): use biome format instead of check to prevent import remo…
BYK Apr 2, 2026
10ca1ac
tweak: add abort signal timeout to the github copilot model fetch to …
rekram1-node Apr 2, 2026
93a1393
Add MiMo-V2 models to Go UI and docs (#20709)
MrMushrooooom Apr 2, 2026
3faabda
refactor(format): update formatter interface to return command from e…
thdxr Apr 2, 2026
c4b3971
app: unify auto scroll ref handling (#20716)
Brendonovich Apr 2, 2026
92e820f
go: add mimo
fwang Apr 2, 2026
966d9cf
electron: add basic context menu for inspect element (#20723)
Brendonovich Apr 2, 2026
7e32f80
feat: add macOS managed preferences support for enterprise MDM deploy…
lennyvaknine43 Apr 2, 2026
f0a9ebf
chore: generate
opencode-agent[bot] Apr 2, 2026
1989704
feat(acp): Add messageID and emit user_message_chunk on prompt/comman…
noamzbr Apr 2, 2026
3638911
chore: generate
opencode-agent[bot] Apr 2, 2026
c3ef69c
test(app): add a golden path for mocked e2e prompts (#20593)
kitlangton Apr 2, 2026
f151c66
chore: update nix node_modules hashes
opencode-agent[bot] Apr 2, 2026
ae7b49b
docs(effect): refresh migration status (#20665)
kitlangton Apr 2, 2026
b5b5f7e
test(opencode): remove temporary e2e url repro (#20729)
kitlangton Apr 2, 2026
6dfb304
refactor(app): unexport internal e2e helpers (#20730)
kitlangton Apr 2, 2026
f549fde
test(app): emit junit artifacts for playwright (#20732)
kitlangton Apr 2, 2026
5e1b513
refactor(todo): effectify session todo (#20595)
kitlangton Apr 2, 2026
29f7dc0
Adds TUI prompt traits, refs, and plugin slots (#20741)
kommander Apr 2, 2026
bf26c08
chore: update nix node_modules hashes
opencode-agent[bot] Apr 2, 2026
6e1400f
dialog aware prompt cursor (#20753)
kommander Apr 2, 2026
7f45943
fix(opencode): honor model limit.input overrides (#16306)
ykswang Apr 3, 2026
8942fc2
refactor(effect): prune unused facades (#20748)
kitlangton Apr 3, 2026
38014fe
fix: rm dynamic part from bash tool description again to restore cach…
rekram1-node Apr 3, 2026
8e9e79d
refactor(share): effectify share next (#20596)
kitlangton Apr 3, 2026
eb6f1da
fix: call models.dev once instead of twice on start (#20765)
Hona Apr 3, 2026
81d3ac3
fix: prevent Tool.define() wrapper accumulation on object-defined too…
jpcarranza94 Apr 3, 2026
8daeacc
chore: generate
opencode-agent[bot] Apr 3, 2026
aa2239d
add automatic heap snapshots for high-memory cli processes (#20788)
thdxr Apr 3, 2026
e89527c
feat: Send x-session-affinity and x-parent-session-id headers (#20744)
kflansburg Apr 3, 2026
7b8dc80
fix(sdk): handle Windows opencode spawn and shutdown (#20772)
Hona Apr 3, 2026
500dcfc
chore: update nix node_modules hashes
opencode-agent[bot] Apr 3, 2026
b969066
electron: better menus (#20878)
Brendonovich Apr 3, 2026
6359d00
fix(core): fix restoring earlier messages in a reverted chain (#20780)
natewill Apr 3, 2026
c307505
fix(session): delay jump-to-bottom button (#20853)
nexxeln Apr 3, 2026
2002f08
fix(prompt): unmount model controls in shell mode (#20886)
nexxeln Apr 3, 2026
3deee3a
fix(session): disable todo dock auto-scroll (#20840)
nexxeln Apr 3, 2026
9d57f21
feat(ui): redesign modified files section in session turn (#20348)
nexxeln Apr 3, 2026
fbfa148
fix(app): hide default session timestamps (#20892)
nexxeln Apr 3, 2026
7994dce
refactor(effect): resolve built tools through the registry (#20787)
kitlangton Apr 3, 2026
263dcf7
fix: restore prompt focus after footer selection (#20841)
nexxeln Apr 3, 2026
35350b1
feat: restore git-backed review modes (#20845)
nexxeln Apr 3, 2026
a4e75a0
chore: generate
opencode-agent[bot] Apr 3, 2026
a32ffab
fix(app): show correct submit icon when typing follow up
adamdotdevin Apr 3, 2026
ae7e2eb
chore(app): remove queued follow-ups for now
adamdotdevin Apr 3, 2026
f2d4ced
refactor(effect): build todowrite tool from Todo service (#20789)
kitlangton Apr 3, 2026
c72642d
test(ci): publish unit reports in actions (#20547)
kitlangton Apr 3, 2026
fff9863
chore: rm models snapshot (#20929)
rekram1-node Apr 3, 2026
a5ec741
notes on v2 (#20941)
kommander Apr 3, 2026
650d0db
chore: generate
opencode-agent[bot] Apr 3, 2026
59ca454
refactor(provider): stop custom loaders using facades (#20776)
kitlangton Apr 4, 2026
288eb04
perf(opencode): batch snapshot diffFull blob reads (#20752)
kitlangton Apr 4, 2026
00fa68b
fix(ci): create JUnit output dirs before tests (#20959)
kitlangton Apr 4, 2026
cc50b77
release: v1.3.14
Apr 4, 2026
c08fa56
refactor: remove redundant Kimi skill section (#20393)
Yuxin-Dong Apr 4, 2026
629e866
fix(npm): Arborist reify fails on compiled binary — Bun pre-resolves …
thdxr Apr 4, 2026
930e94a
release: v1.3.15
Apr 4, 2026
280eb16
fix: ensure reasoning tokens arent double counted when calculating us…
rekram1-node Apr 4, 2026
6ea108a
feat(tui): show console-managed providers (#20956)
kitlangton Apr 4, 2026
c796b9a
refactor(effect): move read tool onto defineEffect (#21016)
kitlangton Apr 4, 2026
9856636
chore: generate
opencode-agent[bot] Apr 4, 2026
c6ebc7f
fix(tui): only show org switch affordances when useful (#21054)
kitlangton Apr 4, 2026
6253ef0
chore: generate
opencode-agent[bot] Apr 4, 2026
8b8d4fa
test: add regression test for double counting bug (#21053)
rekram1-node Apr 4, 2026
66b4e5e
doc: udpate doc
fwang Apr 5, 2026
3a0e00d
tweak: add newline between <content> and first line of read tool outp…
rekram1-node Apr 5, 2026
68f4aa2
fix(plugin): parse package specifiers with npm-package-arg and saniti…
Hona Apr 6, 2026
9e156ea
chore: update nix node_modules hashes
opencode-agent[bot] Apr 6, 2026
4712c18
feat(tui): make the mouse disablable (#6824, #7926) (#13748)
blackheaven Apr 6, 2026
f0f1e51
fix(core): implement proper configOptions for acp (#21134)
georgeharker Apr 6, 2026
9965d38
fix: pass both 'openai' and 'azure' providerOptions keys for @ai-sdk/…
meruiden Apr 6, 2026
77a462c
fix(tui): default Ctrl+Z to undo on Windows (#21138)
Hona Apr 6, 2026
342436d
release: v1.3.16
Apr 6, 2026
a8fd015
zen: remove header check
fwang Apr 6, 2026
70b636a
zen: normalize ipv6
fwang Apr 6, 2026
eaa272e
fix: show clear error when Cloudflare provider env vars are missing (…
mchenco Apr 6, 2026
a4a9ea4
fix(tui): revert kitty keyboard events workaround on windows (#20180)
Hona Apr 6, 2026
517e6c9
release: v1.3.17
Apr 6, 2026
01f0319
fix(lsp): MEMORY LEAK: ensure typescript server uses native project c…
derekbar90 Apr 6, 2026
24bdd3c
chore: generate
opencode-agent[bot] Apr 6, 2026
965c751
docs: update Cloudflare provider setup to reflect /connect prompt flo…
mchenco Apr 6, 2026
2e4c43c
refactor: replace Bun.serve with Node http.createServer in OAuth hand…
thdxr Apr 6, 2026
4394e42
upgrade opentui to 0.1.97 (#21137)
kommander Apr 6, 2026
535343b
refactor(server): replace Bun serve with Hono node adapters (#18335)
thdxr Apr 6, 2026
527b514
chore: update nix node_modules hashes
opencode-agent[bot] Apr 6, 2026
5a6d10c
tweak: ensure copilot anthropic models have same reasoning effort mod…
rekram1-node Apr 6, 2026
40e4cd2
tweak: adjust chat.params hook to allow altering of the maxOutputToke…
rekram1-node Apr 6, 2026
48c1b6b
tweak: move the max token exclusions to plugins @rekram1-node (#21225)
rekram1-node Apr 6, 2026
d1258ac
fix: bump openrouter ai sdk pkg to fix openrouter issues (#21242)
rekram1-node Apr 6, 2026
090ad82
chore: update nix node_modules hashes
opencode-agent[bot] Apr 6, 2026
31f6f43
chore: remove ai-sdk/provider-utils patch and update pkg (#21245)
rekram1-node Apr 6, 2026
e64548f
chore: update nix node_modules hashes
opencode-agent[bot] Apr 7, 2026
3c31d04
chore: bump anthropic ai sdk pkg, delete patch (#21247)
rekram1-node Apr 7, 2026
37883a9
refactor(core): add full http proxy and change workspace adaptor inte…
jlongster Apr 7, 2026
f4975ef
go: add mimo
fwang Apr 7, 2026
885df8e
feat: add --dangerously-skip-permissions flag to opencode run (#21266)
rekram1-node Apr 7, 2026
3ea6413
chore: update nix node_modules hashes
opencode-agent[bot] Apr 7, 2026
3c96bf8
feat(opencode): Add PDF attachment Drag and Drop (#16926)
gitpush-gitpaid Apr 7, 2026
3a1ec27
feat(app): show full names on composer attachment chips (#21306)
nexxeln Apr 7, 2026
c2d2ca3
style(app): redesign jump-to-bottom button per figma spec (#21313)
nexxeln Apr 7, 2026
41612b3
Move auto-accept permissions to settings (#21308)
nexxeln Apr 7, 2026
01c5eb6
go: support coupon
fwang Apr 7, 2026
1f94c48
fix(opencode): keep user message variants scoped to model (#21332)
thdxr Apr 7, 2026
6a5aae9
chore: generate
opencode-agent[bot] Apr 7, 2026
65318a8
chore: update web stats
adamdotdevin Apr 7, 2026
ec8b981
feat(app): better subagent experience (#20708)
adamdotdevin Apr 7, 2026
5d48e7b
refactor(core): support multiple event streams in worker and remove w…
jlongster Apr 7, 2026
2549a38
fix(tui): use sentence case for theme mode command palette items (#21…
ariane-emory Apr 7, 2026
81bdffc
fix: ensure the alibaba provider errors are retried (#21355)
rekram1-node Apr 7, 2026
d83fe4b
fix(opencode): improve console login transport errors (#21350)
kitlangton Apr 7, 2026
6bfa82d
chore: generate
opencode-agent[bot] Apr 7, 2026
e945436
feat(tui): allow variant_list keybind for the "Switch model variant" …
ariane-emory Apr 7, 2026
095aeba
test: disable GPG signing in test fixtures (#20386)
altendky Apr 7, 2026
bc1840b
fix(opencode): clear webfetch timeouts on failed fetches (#21378)
rekram1-node Apr 7, 2026
c90fc6a
feat(opencode): add OTLP observability support (#21387)
thdxr Apr 7, 2026
9385714
zen: glm5.1 doc
fwang Apr 7, 2026
c589724
zen: glm5.1 doc
fwang Apr 7, 2026
7afb517
go: glm5.1
fwang Apr 7, 2026
4633184
core: refactor tool system to remove agent context from initializatio…
thdxr Apr 7, 2026
b7fab49
refactor(snapshot): store unified patches in file diffs (#21244)
thdxr Apr 7, 2026
0788a53
chore: generate
opencode-agent[bot] Apr 7, 2026
98325dc
release: v1.4.0
Apr 8, 2026
65cde7f
chore: update nix node_modules hashes
opencode-agent[bot] Apr 8, 2026
ae614d9
fix(tui): simplify console org display (#21339)
kitlangton Apr 8, 2026
988c989
ui: fix sticky session diffs header (#21486)
Brendonovich Apr 8, 2026
cd87d4f
test: update webfetch test (#21398)
rekram1-node Apr 8, 2026
039c601
fix: ensure that /providers list and shell endpoints are correctly ty…
rekram1-node Apr 8, 2026
d98be39
fix(app): patch tool diff rendering
adamdotdevin Apr 8, 2026
689b1a4
fix(app): diff list normalization
adamdotdevin Apr 8, 2026
00cb883
fix: dont show invalid variants for BP (#21555)
rekram1-node Apr 8, 2026
4961d72
tweak: separate ModelsDev.Model and Config model schemas (#21561)
rekram1-node Apr 8, 2026
38f8714
refactor(effect): build task tool from agent services (#21017)
kitlangton Apr 8, 2026
51535d8
fix(app): skip url password setting for same-origin server and web ap…
OpeOginni Apr 8, 2026
2bdd279
fix: propagate abort signal to inline read tool (#21584)
kitlangton Apr 9, 2026
8bdcc22
refactor(effect): inline session processor interrupt cleanup (#21593)
kitlangton Apr 9, 2026
cd8e8a9
feat(llm): integrate GitLab DWS tool approval with permission system …
vglafirov Apr 9, 2026
d82b163
chore: update nix node_modules hashes
opencode-agent[bot] Apr 9, 2026
9c1c061
fix(lsp): remove CMakeLists.txt and Makefile from clangd root markers…
nonbanana Apr 9, 2026
ee23043
Remove CLI from electron app (#17803)
Brendonovich Apr 9, 2026
ca57248
chore: generate
opencode-agent[bot] Apr 9, 2026
3fc3974
chore: update nix node_modules hashes
opencode-agent[bot] Apr 9, 2026
489f579
feat: add opencode go upsell modal when limits are hit (#21583)
rekram1-node Apr 9, 2026
847fc9d
release: v1.4.1
Apr 9, 2026
46f243f
app: remove min loading duration (#21655)
Brendonovich Apr 9, 2026
c29392d
fix: preserve interrupted bash output in tool results (#21598)
kitlangton Apr 9, 2026
58a9991
fix: preserve text part timing in session processor (#21691)
kitlangton Apr 9, 2026
46da801
refactor(effect): drop shell abort signals from runner (#21599)
kitlangton Apr 9, 2026
bd53b65
refactor: fix tool call state handling and clean up imports (#21709)
thdxr Apr 9, 2026
5d3dba6
release: v1.4.2
Apr 9, 2026
a7743e6
feat(mcp): add OAuth redirect URI configuration for MCP servers (#21385)
egze Apr 9, 2026
f73e4d5
chore: generate
opencode-agent[bot] Apr 9, 2026
581a769
fix(tui): restore hidden session scrollbar default (#20947)
kitlangton Apr 9, 2026
b060066
feat: add support for fast modes for claude and gpt models (that supp…
rekram1-node Apr 9, 2026
537160d
opencode: lazy-load top-level CLI commands
simonklee Apr 5, 2026
34b9792
delete unused withALS method (#21723)
kitlangton Apr 9, 2026
02b32e1
Revert "opencode: lazy-load top-level CLI commands" (#21726)
simonklee Apr 9, 2026
2ecc6ae
fix(effect): suspend agent default layer construction (#21732)
kitlangton Apr 9, 2026
9f54115
refactor: remove unused runtime facade exports (#21731)
kitlangton Apr 9, 2026
3199383
fix: finalize interrupted bash via tool result path (#21724)
kitlangton Apr 9, 2026
10441ef
refactor(effect): extract session run state service (#21744)
kitlangton Apr 9, 2026
35b44df
chore: generate
opencode-agent[bot] Apr 9, 2026
7202b3a
fix: ensure that openai oauth works for agent create cmd, use tempora…
rekram1-node Apr 9, 2026
b2f621b
refactor(session): inline init route orchestration (#21754)
kitlangton Apr 9, 2026
bbe4a04
chore: generate
opencode-agent[bot] Apr 9, 2026
1a902b2
ci: skip winget publish on beta and ensure finalize always runs
thdxr Apr 9, 2026
eac50f9
ci: prevent beta branch builds from triggering production release steps
thdxr Apr 9, 2026
877be7e
release: v1.4.3
Apr 10, 2026
98874a0
fix windows e2e backend not stopping on sigterm waiting 10s for no re…
Hona Apr 10, 2026
b16ee08
ci use node 24 in test workflow fixing random ECONNRESET (#21782)
Hona Apr 10, 2026
04074d3
core: enable prod channel to use shared production database
thdxr Apr 10, 2026
0970b10
Merge remote-tracking branch 'origin/dev' into dev
thdxr Apr 10, 2026
16c60c9
refactor(session): extract sharing orchestration (#21759)
kitlangton Apr 10, 2026
17bd166
refactor(effect): move tool descriptions into registry (#21795)
kitlangton Apr 10, 2026
eca11ca
refactor(effect): use SessionRevert service in prompt (#21796)
kitlangton Apr 10, 2026
91786d2
refactor(effect): use Git service in file and storage (#21803)
kitlangton Apr 10, 2026
ce19c05
fix: ts lsp (#21827)
rekram1-node Apr 10, 2026
157c5d7
refactor(tool): convert question tool internals to Effect (#21808)
kitlangton Apr 10, 2026
8063e0b
refactor(tool): convert lsp tool internals to Effect (#21806)
kitlangton Apr 10, 2026
9a6b455
chore: generate
opencode-agent[bot] Apr 10, 2026
44f3819
refactor(tool): convert plan tool internals to Effect (#21807)
kitlangton Apr 10, 2026
42206da
refactor(tui): switch to global events and start passing workspace pa…
jlongster Apr 10, 2026
e834043
refactor(tool): convert webfetch tool internals to Effect (#21809)
kitlangton Apr 10, 2026
aedc4e9
chore: generate
opencode-agent[bot] Apr 10, 2026
46b74e0
refactor(tool): convert websearch tool internals to Effect (#21810)
kitlangton Apr 10, 2026
00e39d2
chore: generate
opencode-agent[bot] Apr 10, 2026
bf60162
refactor(tool): convert codesearch tool internals to Effect (#21811)
kitlangton Apr 10, 2026
180ded6
rector(core,tui): handle workspace state in project context, add work…
jlongster Apr 10, 2026
f7514d9
refactor(tool): convert bash to defineEffect with ChildProcessSpawner…
kitlangton Apr 10, 2026
59d0868
chore: generate
opencode-agent[bot] Apr 10, 2026
847f1d9
convert glob tool to Tool.defineEffect (#21897)
kitlangton Apr 10, 2026
d2d5d84
chore: generate
opencode-agent[bot] Apr 10, 2026
ce26120
tweak: make it so disabling uv or ruff fmters disables both (#21921)
rekram1-node Apr 10, 2026
f63bdc8
convert list tool to Tool.defineEffect (#21899)
kitlangton Apr 10, 2026
378b8ca
chore: generate
opencode-agent[bot] Apr 10, 2026
b139bc2
refactor(tool): convert write tool to Tool.defineEffect (#21901)
kitlangton Apr 10, 2026
346b3e1
zen: nemotron doc
fwang Apr 10, 2026
57b2e64
chore: generate
opencode-agent[bot] Apr 10, 2026
b41fa8e
refactor: convert edit tool to Tool.defineEffect (#21904)
kitlangton Apr 10, 2026
fb26308
chore: generate
opencode-agent[bot] Apr 10, 2026
d72ddd7
refactor(tool): convert grep tool to Tool.defineEffect (#21937)
kitlangton Apr 10, 2026
d9d5a06
refactor: break SessionPrompt/TaskTool cycle via ctx injection (#21948)
kitlangton Apr 10, 2026
0556774
refactor(tool): convert apply_patch to Tool.defineEffect (#21938)
kitlangton Apr 10, 2026
f2c492a
chore: generate
opencode-agent[bot] Apr 10, 2026
cf27a73
feat: add AppRuntime for unified service composition (#21953)
kitlangton Apr 10, 2026
5d6fe01
convert skill tool to Tool.defineEffect (#21936)
kitlangton Apr 10, 2026
3381993
tweak: rm processor .trim calls (#21958)
rekram1-node Apr 11, 2026
96c1c03
chore: rm unnecessary test (now we use effect) and the test is flaky …
rekram1-node Apr 11, 2026
40358d6
refactor: add Effect logger for motel observability (#21954)
kitlangton Apr 11, 2026
5cd4c6e
refactor: destroy Storage facades (#21956)
kitlangton Apr 11, 2026
605559b
chore: generate
opencode-agent[bot] Apr 11, 2026
face879
fix: disable default Effect console logger (#21963)
kitlangton Apr 11, 2026
a4c6860
refactor: destroy Todo facade (#21962)
kitlangton Apr 11, 2026
57f9397
chore: generate
opencode-agent[bot] Apr 11, 2026
a17ac02
refactor: extract LSP diagnostic report formatter (#21964)
kitlangton Apr 11, 2026
9e7045e
refactor: destroy ShareNext facade (#21965)
kitlangton Apr 11, 2026
b898c6d
chore: generate
opencode-agent[bot] Apr 11, 2026
f998124
refactor: destroy SessionStatus facade (#21968)
kitlangton Apr 11, 2026
c5fb628
refactor(tool): Tool.Def.execute returns Effect, rename defineEffect …
kitlangton Apr 11, 2026
577139c
chore: generate
opencode-agent[bot] Apr 11, 2026
b6af4d0
refactor(config): pass instance context to containsPath (#21882)
Brendonovich Apr 11, 2026
5917ac2
fix: provide EffectLogger.layer to bare Effect.runPromise/runFork cal…
kitlangton Apr 11, 2026
2a8a59d
chore: generate
opencode-agent[bot] Apr 11, 2026
af8aff3
refactor: make TaskPromptOps effectful (#21971)
kitlangton Apr 11, 2026
9581bf0
refactor(effect): upgrade opencode to beta.46 context APIs (#21977)
kitlangton Apr 11, 2026
3dd0914
refactor(tool): Tool.Context.metadata returns Effect (#21972)
kitlangton Apr 11, 2026
19ae8c8
chore: generate
opencode-agent[bot] Apr 11, 2026
cd004cf
refactor(session): eliminate Effect.promise roundtrips for sync Messa…
kitlangton Apr 11, 2026
4341ab8
refactor(tool): use Session.Service directly in TaskTool (#21975)
kitlangton Apr 11, 2026
f38f415
refactor: collapse Format facade (#21980)
kitlangton Apr 11, 2026
2868000
chore: generate
opencode-agent[bot] Apr 11, 2026
87e23ab
refactor: remove ProviderAuth facade (#21983)
kitlangton Apr 11, 2026
03ce2e5
refactor(installation): drop facade runtime wrappers (#21984)
kitlangton Apr 11, 2026
ba3600a
refactor(session): remove dead updatePartDelta facade (#21985)
kitlangton Apr 11, 2026
3b523b3
chore: generate
opencode-agent[bot] Apr 11, 2026
9ca06e0
docs(effect): mark SessionTodo migrated (#21987)
kitlangton Apr 11, 2026
c92c462
chore: update nix node_modules hashes
opencode-agent[bot] Apr 11, 2026
d84cc33
refactor(plugin): return Effect from ToolContext.ask (#21986)
kitlangton Apr 11, 2026
5e3dc80
refactor: collapse command facade (#21981)
kitlangton Apr 11, 2026
fe4dfb9
refactor(git): remove runtime facade wrappers (#21982)
kitlangton Apr 11, 2026
2e340d9
chore: generate
opencode-agent[bot] Apr 11, 2026
2719063
chore: update nix node_modules hashes
opencode-agent[bot] Apr 11, 2026
cacd51a
merge upstream (conflicts auto-accepted - needs review)
github-actions[bot] Apr 11, 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
  •  
  •  
  •  
15 changes: 15 additions & 0 deletions .github/TEAM_MEMBERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
adamdotdevin
Brendonovich
fwang
Hona
iamdavidhill
jayair
jlongster
kitlangton
kommander
MrMushrooooom
nexxeln
R44VC0RP
rekram1-node
RhysSullivan
thdxr
10 changes: 10 additions & 0 deletions .github/VOUCHED.td
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,24 @@
# - Denounce with minus prefix: -username or -platform:username.
# - Optional details after a space following the handle.
adamdotdevin
-agusbasari29 AI PR slop
ariane-emory
-atharvau AI review spamming literally every PR
-borealbytes
-danieljoshuanazareth
-danieljoshuanazareth
edemaine
-florianleibert
fwang
iamdavidhill
jayair
kitlangton
kommander
-opencode2026
-opencodeengineer bot that spams issues
r44vc0rp
rekram1-node
-robinmordasiewicz
-spider-yamet clawdbot/llm psychosis, spam pinging the team
thdxr
-toastythebot
48 changes: 41 additions & 7 deletions .github/actions/setup-bun/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,51 @@ description: "Setup Bun with caching and install dependencies"
runs:
using: "composite"
steps:
- name: Mount Bun Cache
uses: useblacksmith/stickydisk@v1
with:
key: ${{ github.repository }}-bun-cache-${{ runner.os }}
path: ~/.bun
- 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]")
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"
fi

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

- name: Get cache directory
id: cache
shell: bash
run: echo "dir=$(bun pm cache)" >> "$GITHUB_OUTPUT"

- name: Cache Bun dependencies
uses: actions/cache@v4
with:
path: ${{ steps.cache.outputs.dir }}
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-

- name: Install setuptools for distutils compatibility
run: python3 -m pip install setuptools || pip install setuptools || true
shell: bash

- name: Install dependencies
run: bun install
run: |
# Workaround for patched peer variants
# e.g. ./patches/ for standard-openapi
# https://github.com/oven-sh/bun/issues/28147
if [ "$RUNNER_OS" = "Windows" ]; then
bun install --linker hoisted
else
bun install
fi
shell: bash
24 changes: 23 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,29 @@
### Issue for this PR

Closes #

### Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Refactor / code improvement
- [ ] Documentation

### What does this PR do?

Please provide a description of the issue (if there is one), the changes you made to fix it, and why they work. It is expected that you understand why your changes work and if you do not understand why at least say as much so a maintainer knows how much to value the PR.
Please provide a description of the issue, the changes you made to fix it, and why they work. It is expected that you understand why your changes work and if you do not understand why at least say as much so a maintainer knows how much to value the PR.

**If you paste a large clearly AI generated description here your PR may be IGNORED or CLOSED!**

### How did you verify your code works?

### Screenshots / recordings

_If this is a UI change, please include a screenshot or recording._

### Checklist

- [ ] I have tested my changes locally
- [ ] I have not included unrelated changes in this PR

_If you do not follow this template your PR will be automatically rejected._
4 changes: 4 additions & 0 deletions .github/workflows/beta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@ jobs:
opencode-app-id: ${{ vars.OPENCODE_APP_ID }}
opencode-app-secret: ${{ secrets.OPENCODE_APP_SECRET }}

- name: Install OpenCode
run: bun i -g opencode-ai

- name: Sync beta branch
env:
GH_TOKEN: ${{ steps.setup-git-committer.outputs.token }}
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
run: bun script/beta.ts
24 changes: 24 additions & 0 deletions .github/workflows/close-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: close-issues

on:
schedule:
- cron: "0 2 * * *" # Daily at 2:00 AM
workflow_dispatch:

jobs:
close:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Close stale issues
env:
GITHUB_TOKEN: ${{ github.token }}
run: bun script/github/close-issues.ts
9 changes: 9 additions & 0 deletions .github/workflows/compliance-close.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,15 @@ jobs:
body: closeMessage,
});

try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: item.number,
name: 'needs:compliance',
});
} catch (e) {}

if (isPR) {
await github.rest.pulls.update({
owner: context.repo.owner,
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
deploy:
runs-on: blacksmith-4vcpu-ubuntu-2404
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

Expand Down
39 changes: 27 additions & 12 deletions .github/workflows/docs-locale-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,18 @@ on:

jobs:
sync-locales:
if: github.actor != 'opencode-agent[bot]'
if: false
#if: github.actor != 'opencode-agent[bot]'
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
id-token: write
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
ref: ${{ github.ref_name }}

- name: Setup Bun
uses: ./.github/actions/setup-bun
Expand All @@ -33,7 +35,7 @@ jobs:
- name: Compute changed English docs
id: changes
run: |
FILES=$(git diff --name-only "${{ github.event.before }}" "${{ github.sha }}" -- 'packages/web/src/content/docs/*.mdx' || true)
FILES=$(git diff --name-only "${{ github.event.before }}" "${{ github.sha }}" -- ':(glob)packages/web/src/content/docs/*.mdx' || true)
if [ -z "$FILES" ]; then
echo "has_changes=false" >> "$GITHUB_OUTPUT"
echo "No English docs changed in push range"
Expand All @@ -46,15 +48,26 @@ jobs:
echo "EOF"
} >> "$GITHUB_OUTPUT"

- name: Install OpenCode
if: steps.changes.outputs.has_changes == 'true'
run: curl -fsSL https://opencode.ai/install | bash

- name: Sync locale docs with OpenCode
if: steps.changes.outputs.has_changes == 'true'
uses: sst/opencode/github@latest
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
with:
model: opencode/gpt-5.2
agent: docs
prompt: |
OPENCODE_CONFIG_CONTENT: |
{
"permission": {
"*": "deny",
"read": "allow",
"edit": "allow",
"glob": "allow",
"task": "allow"
}
}
run: |
opencode run --agent docs --model opencode/gpt-5.3-codex <<'EOF'
Update localized docs to match the latest English docs changes.

Changed English doc files:
Expand All @@ -67,10 +80,12 @@ jobs:
2. You MUST use the Task tool for translation work and launch subagents with subagent_type `translator` (defined in .opencode/agent/translator.md).
3. Do not translate directly in the primary agent. Use translator subagent output as the source for locale text updates.
4. Run translator subagent Task calls in parallel whenever file/locale translation work is independent.
5. Preserve frontmatter keys, internal links, code blocks, and existing locale-specific metadata unless the English change requires an update.
6. Keep locale docs structure aligned with their corresponding English pages.
7. Do not modify English source docs in packages/web/src/content/docs/*.mdx.
8. If no locale updates are needed, make no changes.
5. Use only the minimum tools needed for this task (read/glob, file edits, and translator Task). Do not use shell, web, search, or GitHub tools for translation work.
6. Preserve frontmatter keys, internal links, code blocks, and existing locale-specific metadata unless the English change requires an update.
7. Keep locale docs structure aligned with their corresponding English pages.
8. Do not modify English source docs in packages/web/src/content/docs/*.mdx.
9. If no locale updates are needed, make no changes.
EOF

- name: Commit and push locale docs updates
if: steps.changes.outputs.has_changes == 'true'
Expand Down
64 changes: 62 additions & 2 deletions .github/workflows/duplicate-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ name: duplicate-issues

on:
issues:
types: [opened]
types: [opened, edited]

jobs:
check-duplicates:
if: github.event.action == 'opened'
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
Expand Down Expand Up @@ -34,7 +35,7 @@ jobs:
"webfetch": "deny"
}
run: |
opencode run -m opencode/claude-haiku-4-5 "A new issue has been created:
opencode run -m opencode/claude-sonnet-4-6 "A new issue has been created:

Issue number: ${{ github.event.issue.number }}

Expand Down Expand Up @@ -115,3 +116,62 @@ jobs:
If you believe this was flagged incorrectly, please let a maintainer know.

Remember: post at most ONE comment combining all findings. If everything is fine, post nothing."

recheck-compliance:
if: github.event.action == 'edited' && contains(github.event.issue.labels.*.name, 'needs:compliance')
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

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

- name: Install opencode
run: curl -fsSL https://opencode.ai/install | bash

- name: Recheck compliance
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: |
{
"bash": {
"*": "deny",
"gh issue*": "allow"
},
"webfetch": "deny"
}
run: |
opencode run -m opencode/claude-sonnet-4-6 "Issue #${{ github.event.issue.number }} was previously flagged as non-compliant and has been edited.

Lookup this issue with gh issue view ${{ github.event.issue.number }}.

Re-check whether the issue now follows our contributing guidelines and issue templates.

This project has three issue templates that every issue MUST use one of:

1. Bug Report - requires a Description field with real content
2. Feature Request - requires a verification checkbox and description, title should start with [FEATURE]:
3. Question - requires the Question field with real content

Additionally check:
- No AI-generated walls of text (long, AI-generated descriptions are not acceptable)
- The issue has real content, not just template placeholder text left unchanged
- Bug reports should include some context about how to reproduce
- Feature requests should explain the problem or need
- We want to push for having the user provide system description & information

Do NOT be nitpicky about optional fields. Only flag real problems like: no template used, required fields empty or placeholder text only, obviously AI-generated walls of text, or completely empty/nonsensical content.

If the issue is NOW compliant:
1. Remove the needs:compliance label: gh issue edit ${{ github.event.issue.number }} --remove-label needs:compliance
2. Find and delete the previous compliance comment (the one containing <!-- issue-compliance -->) using: gh api repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments --jq '.[] | select(.body | contains(\"<!-- issue-compliance -->\")) | .id' then delete it with: gh api -X DELETE repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments/{id}
3. Post a short comment thanking them for updating the issue.

If the issue is STILL not compliant:
Post a comment explaining what still needs to be fixed. Keep the needs:compliance label."
Loading
Loading