Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1750 commits
Select commit Hold shift + click to select a range
1de0645
fix(plugin): properly resolve entrypoints without leading dot (#20140)
Hona Mar 30, 2026
057848d
release: v1.3.9
Mar 30, 2026
93fad99
smarter changelog (#20138)
Hona Mar 31, 2026
bf77729
fix(theme): darken muted text in catppuccin tui themes (#20161)
kitlangton Mar 31, 2026
a898c2e
refactor(storage): effectify Storage service (#20132)
kitlangton Mar 31, 2026
3df18dc
refactor(provider): effectify Provider service (#20160)
kitlangton Mar 31, 2026
71b2069
chore: generate
opencode-agent[bot] Mar 31, 2026
2cc738f
wip: zen
fwang Mar 31, 2026
befbeda
fix(session): subagents not being clickable (#20263)
thdxr Mar 31, 2026
b1e89c3
release: v1.3.10
Mar 31, 2026
1fcb920
upgrade opentui to 0.1.93 (#19950)
kommander Mar 31, 2026
2e78fde
ensure pinned plugin versions and do not run package scripts on insta…
kommander Mar 31, 2026
85c1692
chore: use paid zen model in e2e
adamdotdevin Mar 31, 2026
25a2b73
warn only and ignore plugins without entrypoints, default config via …
kommander Mar 31, 2026
8c2e2ec
chore: e2e model
adamdotdevin Mar 31, 2026
7342e65
chore: update nix node_modules hashes
opencode-agent[bot] Mar 31, 2026
2daf4b8
feat: add a dedicated system prompt for Kimi models (#20259)
Yuxin-Dong Mar 31, 2026
6e61a46
chore: skip 2 tests
adamdotdevin Mar 31, 2026
2929774
chore: rm harcoded model definition from codex plugin (#20294)
rekram1-node Mar 31, 2026
434d82b
test: update model test fixture (#20182)
rekram1-node Mar 31, 2026
567a911
refactor(session): simplify LLM stream by replacing queue with fromAs…
thdxr Mar 31, 2026
beab4cc
release: v1.3.11
Mar 31, 2026
4dd866d
fix: rm exclusion of ai-sdk/azure in transform.ts, when we migrated t…
rekram1-node Mar 31, 2026
26cc924
feat: enable prompt caching and cache token tracking for google-verte…
major Mar 31, 2026
d6d4446
Update VOUCHED list
github-actions[bot] Mar 31, 2026
1812130
upgrade opentui to 0.1.94 (#20357)
kommander Mar 31, 2026
892bdeb
release: v1.3.12
Mar 31, 2026
53330a5
Update VOUCHED list
github-actions[bot] Mar 31, 2026
0c03a3e
test: migrate prompt tests to HTTP mock LLM server (#20304)
kitlangton Mar 31, 2026
954a6ca
refactor(session): effectify SessionSummary service (#20142)
kitlangton Mar 31, 2026
3fc0367
refactor(session): effectify SessionRevert service (#20143)
kitlangton Mar 31, 2026
9b09a7e
chore: generate
opencode-agent[bot] Mar 31, 2026
4280307
chore: update nix node_modules hashes
opencode-agent[bot] Mar 31, 2026
4b4b783
upgrade opentui to 0.1.95 (#20369)
kommander Mar 31, 2026
6314f09
release: v1.3.13
Apr 1, 2026
181b5f6
refactor(prompt): use Provider service in effect layers (#20167)
kitlangton Apr 1, 2026
7532d99
test: finish HTTP mock processor coverage (#20372)
kitlangton Apr 1, 2026
ca376a4
chore: update nix node_modules hashes
opencode-agent[bot] Apr 1, 2026
c8ecd64
test(app): add mock llm e2e fixture (#20375)
kitlangton Apr 1, 2026
506dd75
electron: port mergeShellEnv logic from tauri (#20192)
Brendonovich Apr 1, 2026
1df5ad4
app: try to hide autofill popups in prompt input (#20197)
Brendonovich Apr 1, 2026
47a6761
fix(session): add keyboard support to question dock (#20439)
nexxeln Apr 1, 2026
a3a6cf1
feat(comments): support file mentions (#20447)
nexxeln Apr 1, 2026
9a1c9ae
test(app): route prompt e2e through mock llm (#20383)
kitlangton Apr 1, 2026
44f8301
perf(review): defer offscreen diff mounts (#20469)
nexxeln Apr 1, 2026
5fd833a
refactor: standardize InstanceState variable name to state (#20267)
kitlangton Apr 1, 2026
d58004a
fall back to first agent if last used agent is not available
thdxr Apr 1, 2026
38d2276
test(e2e): isolate prompt tests with per-worker backend (#20464)
kitlangton Apr 1, 2026
0a125e5
chore: generate
opencode-agent[bot] Apr 1, 2026
897d83c
refactor(init): tighten AGENTS guidance (#20422)
nexxeln Apr 1, 2026
a9c85b7
refactor(shell): use Effect ChildProcess for shell command execution …
kitlangton Apr 1, 2026
2f405da
refactor: use Effect services instead of async facades in provider, a…
kitlangton Apr 1, 2026
ef538c9
chore: generate
opencode-agent[bot] Apr 1, 2026
f9e71ec
chore: update nix node_modules hashes
opencode-agent[bot] Apr 1, 2026
d1e0a46
Update VOUCHED list
github-actions[bot] Apr 1, 2026
c559af5
test(app): migrate more e2e suites to isolated backend (#20505)
kitlangton Apr 1, 2026
c619cae
fix(account): coalesce concurrent console token refreshes (#20503)
kitlangton Apr 1, 2026
f3f728e
test(app): fix isolated backend follow-ups (#20513)
kitlangton Apr 1, 2026
d7481f4
wip: zen
fwang Apr 1, 2026
c9326fc
refactor: replace BunProc with Npm module using @npmcli/arborist (#18…
thdxr Apr 1, 2026
eabf3ca
zen: sync
fwang Apr 1, 2026
880c0a7
fix: normalize filepath in FileTime to prevent Windows path mismatch …
JosXa Apr 1, 2026
cc30bfc
resolve subpath only packages for plugins (#20555)
kommander Apr 1, 2026
fa96cb9
Fix selection expansion by retaining focused input selections during …
Hona Apr 1, 2026
1fcfb69
feat: add new provider plugin hook for resolving models and sync mode…
rekram1-node Apr 1, 2026
f7f41dc
fix(tui): apply scroll configuration uniformly across all scrollboxes…
Hona Apr 1, 2026
802d165
chore(tui): clean up scroll config follow-up (#20561)
Hona Apr 1, 2026
48db7cf
fix(opencode): batch snapshot revert without reordering (#20564)
kitlangton Apr 1, 2026
d9d4f89
fix(test): auto-acknowledge tool-result follow-ups in mock LLM server…
kitlangton Apr 1, 2026
4214ae2
chore: generate
opencode-agent[bot] Apr 1, 2026
26fb6b8
refactor: add Effect-returning versions of MessageV2 functions (#20374)
kitlangton Apr 1, 2026
e4ff1ea
refactor(bash): use Effect ChildProcess for bash tool execution (#20496)
kitlangton Apr 1, 2026
854484b
chore: generate
opencode-agent[bot] Apr 1, 2026
f6fd43e
Refactor plugin/config loading, add theme-only plugin package support…
kommander Apr 1, 2026
92f8e03
fix(test): use effect helper in snapshot race test (#20567)
kitlangton Apr 2, 2026
b1c0748
refactor(revert): yield SessionSummary.Service directly (#20541)
kitlangton Apr 2, 2026
c526caa
fix: show model display name in message footer and transcript (#20539)
kitlangton Apr 2, 2026
8a8f7b3
flock npm.add (#20557)
kommander Apr 2, 2026
00d6841
fix(account): refresh console tokens before expiry (#20558)
kitlangton Apr 2, 2026
0cad775
chore: add User-Agent headers for Cloudflare providers (#20538)
mchenco Apr 2, 2026
e148b31
fix(build): replace require() with dynamic import() in cross-spawn-sp…
kitlangton Apr 2, 2026
789d86f
chore: generate
opencode-agent[bot] Apr 2, 2026
df1c6c9
tui: add consent dialog when sharing for the first time (#20525)
rekram1-node Apr 2, 2026
a09b086
test(app): block real llm calls in e2e prompts (#20579)
kitlangton Apr 2, 2026
0bae38c
refactor(instruction): migrate to Effect service pattern (#20542)
kitlangton Apr 2, 2026
2e8e278
fix(cli): use simple logo in CLI (#20585)
kitlangton Apr 2, 2026
733a3bd
fix(core): prevent agent loop from stopping after tool calls with Ope…
valenvivaldi Apr 2, 2026
5daf2fa
fix(session): compaction agent responds in same language as conversat…
aaron-he-zhu Apr 2, 2026
916afb5
refactor(account): share token freshness helper (#20591)
kitlangton Apr 2, 2026
336d28f
fix(cli): restore colored help logo (#20592)
kitlangton Apr 2, 2026
d66e6dc
feat(opencode): Add Venice AI package as dependency (#20570)
dpuyosa Apr 2, 2026
ebaa99a
chore: generate
opencode-agent[bot] Apr 2, 2026
811c7e2
cli: update usage exceeded error
fwang Apr 2, 2026
a6f524c
chore: update nix node_modules hashes
opencode-agent[bot] Apr 2, 2026
0f48899
fix(node): set OPENCODE_CHANNEL during build (#20616)
Brendonovich Apr 2, 2026
db93891
zen: friendly trial ended message
fwang Apr 2, 2026
d540d36
refactor: simplify solid reactivity across app and web (#20497)
nexxeln Apr 2, 2026
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
6585210
merge upstream (conflicts auto-accepted - needs review)
github-actions[bot] Apr 9, 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