Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2424 commits
Select commit Hold shift + click to select a range
0e86466
refactor: unwrap Discovery namespace to flat exports + self-reexport …
kitlangton Apr 16, 2026
9f201d6
release: v1.4.7
Apr 16, 2026
9db4099
fix build script
thdxr Apr 16, 2026
dbe2ff5
fix tui otel profiling
thdxr Apr 16, 2026
cb18f2e
fix: ensure azure sets prompt cache key by default (#22957)
rekram1-node Apr 16, 2026
23d48a7
refactor: unwrap BusEvent namespace + self-reexport (#22962)
kitlangton Apr 16, 2026
e2d161d
refactor: unwrap Identifier namespace + self-reexport (#22963)
kitlangton Apr 16, 2026
30fc791
refactor: unwrap Ripgrep namespace + self-reexport (#22965)
kitlangton Apr 16, 2026
218eca7
refactor: unwrap MDNS namespace + self-reexport (#22968)
kitlangton Apr 16, 2026
715786b
refactor: unwrap FileTime namespace + self-reexport (#22966)
kitlangton Apr 16, 2026
1089fa0
refactor: unwrap ServerProxy namespace + self-reexport (#22969)
kitlangton Apr 16, 2026
c03fa36
refactor: unwrap Server namespace + self-reexport (#22970)
kitlangton Apr 16, 2026
5d47ea0
refactor: unwrap ConfigMCP namespace + self-reexport (#22948)
kitlangton Apr 16, 2026
f9aa3d7
chore: generate
opencode-agent[bot] Apr 16, 2026
bae80af
refactor: unwrap Workspace namespace + self-reexport (#22934)
kitlangton Apr 17, 2026
4e27804
refactor: unwrap McpOAuthCallback namespace + self-reexport (#22943)
kitlangton Apr 17, 2026
19d15d9
refactor: unwrap ConfigProvider namespace + self-reexport (#22949)
kitlangton Apr 17, 2026
1291e82
refactor: unwrap ACP namespace + self-reexport (#22936)
kitlangton Apr 17, 2026
cde105e
refactor: unwrap CopilotModels namespace + self-reexport (#22947)
kitlangton Apr 17, 2026
fdd5b77
refactor: unwrap McpAuth namespace + self-reexport (#22942)
kitlangton Apr 17, 2026
f6dbb2f
refactor: unwrap Heap namespace + self-reexport (#22931)
kitlangton Apr 17, 2026
79732ab
refactor: unwrap UI namespace + self-reexport (#22951)
kitlangton Apr 17, 2026
fb02744
refactor: unwrap Agent namespace + self-reexport (#22935)
kitlangton Apr 17, 2026
974fa1b
refactor: unwrap PluginMeta namespace + self-reexport (#22945)
kitlangton Apr 17, 2026
06d247c
refactor: unwrap FileIgnore namespace + self-reexport (#22937)
kitlangton Apr 17, 2026
2704ad9
refactor: unwrap TuiConfig namespace + self-reexport (#22952)
kitlangton Apr 17, 2026
059b32c
refactor: unwrap Protected namespace + self-reexport (#22938)
kitlangton Apr 17, 2026
635970b
refactor: unwrap ConfigSkills namespace + self-reexport (#22950)
kitlangton Apr 17, 2026
53dc7b1
chore: generate
opencode-agent[bot] Apr 17, 2026
c0bfccc
tooling: add unwrap-and-self-reexport + batch-unwrap-pr scripts (#22929)
kitlangton Apr 17, 2026
54078c4
refactor: unwrap Shell namespace + self-reexport (#22964)
kitlangton Apr 17, 2026
39342b0
tui: fix Windows terminal suspend and input undo keybindings
thdxr Apr 17, 2026
d6af5a6
tui: convert TuiConfig namespace to ES module exports
thdxr Apr 17, 2026
51d8219
refactor: unwrap session/ tier-2 namespaces + self-reexport (#22973)
kitlangton Apr 17, 2026
266fb93
chore: generate
opencode-agent[bot] Apr 17, 2026
d2cb161
refactor: unwrap SessionEntry namespace + self-reexport (#22977)
kitlangton Apr 17, 2026
54046e0
refactor: unwrap SessionV2 namespace + self-reexport (#22978)
kitlangton Apr 17, 2026
5022895
refactor: unwrap ExperimentalHttpApiServer namespace + self-reexport …
kitlangton Apr 17, 2026
94878d7
refactor: unwrap TuiPluginRuntime namespace + self-reexport (#22980)
kitlangton Apr 17, 2026
c59df63
chore: delete empty v2/session-common + collapse patch barrel (#22981)
kitlangton Apr 17, 2026
8afb625
refactor: extract Diagnostic namespace into lsp/diagnostic.ts + self-…
kitlangton Apr 17, 2026
6405e3a
tui: stabilize session dialog ordering (#22987)
thdxr Apr 17, 2026
326471a
refactor: split config lsp and formatter schemas (#22986)
thdxr Apr 17, 2026
f137782
perf: speed up skill directory discovery (#22990)
thdxr Apr 17, 2026
5b9fa32
chore: generate
opencode-agent[bot] Apr 17, 2026
9c87a14
refactor: normalize AccountRepo to canonical Effect service pattern (…
kitlangton Apr 17, 2026
4f8986a
refactor: unwrap Question namespace + fix script to emit "." for inde…
kitlangton Apr 17, 2026
8ba73be
refactor: collapse auth/ barrel — merge auth.ts into index.ts + self-…
kitlangton Apr 17, 2026
c026e25
refactor: eliminate account/ barrel, route consumers to sibling files…
kitlangton Apr 17, 2026
f592c38
refactor: convert Flag namespace to const object with getters (#22984)
kitlangton Apr 17, 2026
01bb54a
refactor: split config parsing steps (#22996)
thdxr Apr 17, 2026
61c4815
refactor: unwrap FileWatcher namespace + self-reexport (redo) (#23000)
kitlangton Apr 17, 2026
ee70804
fix: prefer real undo filenames over /dev/null (#23006)
thdxr Apr 17, 2026
ebe6ea5
chore: generate
opencode-agent[bot] Apr 17, 2026
f135c0b
app: use tanstack query to load session vcs state (#22277)
Brendonovich Apr 17, 2026
220e3e9
refactor: make formatter config opt-in (#22997)
thdxr Apr 17, 2026
dc38f22
chore: generate
opencode-agent[bot] Apr 17, 2026
7b3bb9a
fix: preserve plugin tool metadata in execute result (#22827)
jquense Apr 17, 2026
c51f3e3
chore: retire namespace migration tooling + document module shape (#2…
kitlangton Apr 17, 2026
ee7339f
refactor: move provider and config provider routes onto HttpApi (#23004)
kitlangton Apr 17, 2026
cccb907
feat(tui): animated GO logo + radial pulse in free-limit upsell dialo…
kitlangton Apr 17, 2026
fbbab9d
feat(app): hide desktop titlebar tools behind settings (#19029)
jayair Apr 17, 2026
0bedea5
fix(tui): tui resiliency when workspace is dead, disable directory fi…
jlongster Apr 17, 2026
4260c40
refactor(tui): inline final Go shimmer settings (#23017)
kitlangton Apr 17, 2026
67dbb3c
chore: generate
opencode-agent[bot] Apr 17, 2026
9ee89f7
refactor: move project read routes onto HttpApi (#23003)
kitlangton Apr 17, 2026
a488229
Merge branch 'dev' into nxl/improve-compaction-strategy
Brendonovich Apr 17, 2026
79e9baf
fix(app): use fetchQuery instead of ensureQueryData in global sync (#…
Brendonovich Apr 17, 2026
dfaae14
chore: update nix node_modules hashes
opencode-agent[bot] Apr 17, 2026
4bd5a15
fix: preserve prompt input across unmount/remount cycles (#22508)
thdxr Apr 17, 2026
76a1410
chore: delete filetime module (#22999)
rekram1-node Apr 17, 2026
f0caeb9
chore: generate
opencode-agent[bot] Apr 17, 2026
72d7cb7
remove accidental commit of daytona plugin (#23030)
jlongster Apr 17, 2026
e7f8f7f
fix crash on experimental
thdxr Apr 17, 2026
7605acf
refactor(core): move server routes around to clarify workspacing (#23…
jlongster Apr 17, 2026
65b2a10
fade in prompt metadata transitions (#23037)
thdxr Apr 17, 2026
81f0885
chore: generate
opencode-agent[bot] Apr 17, 2026
d995059
core: migrate config loading to Effect framework (#23032)
thdxr Apr 17, 2026
a726530
fix(app): workspace loading and persist ready state (#23046)
Brendonovich Apr 17, 2026
c57c531
chore: generate
opencode-agent[bot] Apr 17, 2026
ec3ac0c
upgrade opentui to 0.1.100 (#22928)
kommander Apr 17, 2026
e78d75a
chore: update nix node_modules hashes
opencode-agent[bot] Apr 17, 2026
06ae439
release: v1.4.8
Apr 17, 2026
fffc496
remove log
thdxr Apr 17, 2026
0f80c82
feat(core): exponential backoff of workspace reconnect (#23083)
jlongster Apr 17, 2026
cb425ac
chore: generate
opencode-agent[bot] Apr 17, 2026
3707e4a
zen: routing logic
fwang Apr 17, 2026
cc063d4
chore: generate
opencode-agent[bot] Apr 17, 2026
7e39c9b
back to opentui 0.1.99
thdxr Apr 17, 2026
10c4ab9
roll back opentui
thdxr Apr 17, 2026
20103eb
sync
fwang Apr 17, 2026
2415820
fix: conditionally show file tree in beta channel (#23099)
Brendonovich Apr 17, 2026
8fbbca5
fix(opencode): rescrict github copilot opus 4.7 variants to "medium" …
OpeOginni Apr 17, 2026
ac5b395
docs: adding Mistral to docs as a provider (it is already a provider,…
jenperson Apr 17, 2026
3a4b490
chore: generate
opencode-agent[bot] Apr 17, 2026
3fe602c
feat: add LLM Gateway provider (#7847)
smakosh Apr 17, 2026
38cd397
chore: update nix node_modules hashes
opencode-agent[bot] Apr 17, 2026
551216a
fix incorrect light mode in ghostty
thdxr Apr 17, 2026
a27d3c1
tui: fix session resumption with --session-id flag to navigate after …
thdxr Apr 17, 2026
803d9eb
release: v1.4.9
Apr 17, 2026
1a59133
Improve light mode dark mode copy
thdxr Apr 17, 2026
0d582f9
chore: bump gitlab-ai-provider to 6.6.0 (#23057)
vglafirov Apr 17, 2026
fde3d91
fix(opencode): pass `EXA_API_KEY` to `websearch` tool to avoid rate l…
rasdani Apr 17, 2026
c491161
chore: bump @ai-sdk/anthropic to 3.0.71 and dependents (#23120)
rekram1-node Apr 17, 2026
13dfe56
tui: fix agent cycling and prompt metadata polish (#23115)
kitlangton Apr 17, 2026
ce0cfb0
chore: generate
opencode-agent[bot] Apr 17, 2026
797953c
when generating sdk only format sdk, much faster (#23122)
jlongster Apr 17, 2026
fcb473f
chore: update nix node_modules hashes
opencode-agent[bot] Apr 17, 2026
a8c78fc
fix(core): add historical sync on workspace connect (#23121)
jlongster Apr 17, 2026
4c30a78
fix: revert sdk generation script change (#23133)
jlongster Apr 17, 2026
2f73e73
trace npm fully
thdxr Apr 17, 2026
992435a
do not flock until reify
thdxr Apr 17, 2026
b1f0765
test: align plugin loader npm mocks
thdxr Apr 17, 2026
bbb422d
chore: bump ai to 6.0.168 and @ai-sdk/gateway to 3.0.104 (#23145)
rekram1-node Apr 17, 2026
467be08
refactor: consolidate npm exports and trace flock acquisition (#23151)
thdxr Apr 17, 2026
b275b85
feat(tui): minor UX improvements for workspaces (#23146)
jlongster Apr 17, 2026
d6e1362
chore: generate
opencode-agent[bot] Apr 17, 2026
8858256
chore: update nix node_modules hashes
opencode-agent[bot] Apr 17, 2026
5621373
fix(core): move instance middleware after control plane routes (#23150)
jlongster Apr 17, 2026
68834cf
fix(opencode): normalize provider metadata and tag otel runs (#23140)
kitlangton Apr 17, 2026
aa05b9a
fix(core): pass OTEL config to workspace env (#23154)
jlongster Apr 17, 2026
f83ceca
fix(opencode): untrace streaming event hot paths (#23156)
kitlangton Apr 17, 2026
9b0659d
chore: generate
opencode-agent[bot] Apr 17, 2026
9b6c397
release: v1.4.10
Apr 17, 2026
b708e84
docs(opencode): annotate plugin loader flow (#23160)
thdxr Apr 17, 2026
c2061c6
chore: generate
opencode-agent[bot] Apr 17, 2026
984f5ed
fix(opencode): skip share sync for unshared sessions (#23159)
kitlangton Apr 17, 2026
6af8ab0
docs(http-api): refresh bridge inventory and clarify Schema.Class vs …
kitlangton Apr 17, 2026
11fa257
refactor(config): migrate mcp schemas to Effect Schema.Class (#23163)
kitlangton Apr 17, 2026
5443532
chore: generate
opencode-agent[bot] Apr 17, 2026
650a13a
refactor(config): migrate lsp schemas to Effect Schema (#23167)
kitlangton Apr 17, 2026
d11268e
refactor(config): migrate permission Action/Object/Rule leaves to Eff…
kitlangton Apr 17, 2026
47f553f
fix(core): more explicit routing to fix workspace instance issue (#23…
jlongster Apr 17, 2026
e7686db
feat(effect-zod): translate Schema.check filters into zod .superRefin…
kitlangton Apr 17, 2026
dc16013
chore: generate
opencode-agent[bot] Apr 17, 2026
b1307d5
refactor(config): migrate skills, formatter, console-state to Effect …
kitlangton Apr 17, 2026
ed0f022
chore: generate
opencode-agent[bot] Apr 17, 2026
999d865
feat(server): wrap remaining route handlers in request spans (#23169)
kitlangton Apr 17, 2026
ce69bd9
refactor(config): migrate model-id and command to Effect Schema (#23175)
kitlangton Apr 17, 2026
89029a2
chore: generate
opencode-agent[bot] Apr 17, 2026
5980b0a
feat(effect-zod): add tuple support; migrate config/plugin to Effect …
kitlangton Apr 17, 2026
89e8994
chore: generate
opencode-agent[bot] Apr 17, 2026
0068cce
fix: ensure copilot model list filters out disabled models (#23176)
rekram1-node Apr 17, 2026
cded68a
refactor(npm): use object-based package spec for install API (#23181)
thdxr Apr 17, 2026
a35b8a9
release: v1.4.11
Apr 18, 2026
d5c4c26
feat(server): auto-tag route spans with route params (session.id, mes…
kitlangton Apr 17, 2026
b5aba58
feat(tui): show session ID in sidebar on non-prod channels (#23185)
kitlangton Apr 17, 2026
7b98f54
feat(effect-zod): add catchall (StructWithRest) support to the walker…
kitlangton Apr 17, 2026
eafbe5c
refactor(server): align route-span attrs with OTel semantic conventio…
kitlangton Apr 17, 2026
2899984
refactor(config): migrate provider (Model + Info) to Effect Schema (#…
kitlangton Apr 17, 2026
cf0a53c
chore: generate
opencode-agent[bot] Apr 17, 2026
211136e
feat(effect-zod): transform support + walk memoization + flattened ch…
kitlangton Apr 17, 2026
c4816f9
chore: generate
opencode-agent[bot] Apr 17, 2026
b493dab
docs(effect): refresh migration status specs (#23206)
kitlangton Apr 18, 2026
05cdb7c
refactor(v2): tag session unions and exhaustively match events (#23201)
kitlangton Apr 18, 2026
bb90f3b
feat(effect-zod): translate well-known filters into native Zod method…
kitlangton Apr 18, 2026
36119ff
feat(effect-zod): translate Schema.withDecodingDefault into zod .defa…
kitlangton Apr 18, 2026
f52ae28
chore: generate
opencode-agent[bot] Apr 18, 2026
5181f9b
refactor(config): drop ZodOverride from PositiveInt in provider.ts (#…
kitlangton Apr 18, 2026
23a2d01
fix(observability): standardize session telemetry attrs (#23213)
kitlangton Apr 18, 2026
826fd33
refactor(config): migrate Server + Layout to Effect Schema (#23216)
kitlangton Apr 18, 2026
a92c75e
chore: generate
opencode-agent[bot] Apr 18, 2026
a5d99e7
refactor: pass formatter instance context explicitly (#23020)
kitlangton Apr 18, 2026
e6fd571
refactor: remove ambient instance reads from lsp (#23023)
kitlangton Apr 18, 2026
866188a
chore: generate
opencode-agent[bot] Apr 18, 2026
81b7b58
fix: gh copilot issue w/ haiku (eager_input_streaming not supported) …
rekram1-node Apr 18, 2026
1fae784
feat(effect-zod): add ZodPreprocess annotation for pre-parse transfor…
kitlangton Apr 18, 2026
daaa1c7
chore: generate
opencode-agent[bot] Apr 18, 2026
5fa1673
refactor: use InstanceState context in File service (#23015)
kitlangton Apr 18, 2026
1dd257b
refactor: use instance state in small services (#23022)
kitlangton Apr 18, 2026
fc5b353
refactor(config): migrate keybinds.ts to Effect Schema (#23227)
kitlangton Apr 18, 2026
3573019
fix(generate): make openapi output deterministic by formatting in-pla…
kitlangton Apr 18, 2026
24fb9b1
fix: stop rewriting dev during release publish (#22982)
kitlangton Apr 18, 2026
471b9f4
refactor: use InstanceState context in worktree cleanup paths (#23019)
kitlangton Apr 18, 2026
a6a4350
refactor(config): migrate permission.ts Info to Effect Schema (#23231)
kitlangton Apr 18, 2026
9f7bd02
chore: generate
opencode-agent[bot] Apr 18, 2026
2793502
refactor(config): migrate agent.ts Info to Effect Schema (#23237)
kitlangton Apr 18, 2026
8a1e85d
chore: generate
opencode-agent[bot] Apr 18, 2026
c0eab9e
fix(desktop): adjust ui tool diff sticky header offset (#23149)
OpeOginni Apr 18, 2026
23f3147
refactor(config): migrate config.ts root Info to Effect Schema (#23241)
kitlangton Apr 18, 2026
b382d1a
docs(effect): track schema migration progress with concrete file chec…
kitlangton Apr 18, 2026
5e9d5c7
chore: generate
opencode-agent[bot] Apr 18, 2026
9c16bd1
fix: make skills logic more token efficient (#23253)
rekram1-node Apr 18, 2026
11cd4fb
core: extract session entry stepping logic into dedicated module
thdxr Apr 18, 2026
95edbc0
chore: generate
opencode-agent[bot] Apr 18, 2026
882b8e1
core: track retry attempts with detailed error context on assistant e…
thdxr Apr 18, 2026
55315bd
tui: fix sync loading indicator to properly show loading state on sta…
thdxr Apr 18, 2026
1ee712e
core: fix early return when node_modules is missing during package in…
thdxr Apr 18, 2026
078d8a0
core: support OTEL_RESOURCE_ATTRIBUTES environment variable for custo…
thdxr Apr 18, 2026
dd8c424
chore: generate
opencode-agent[bot] Apr 18, 2026
9918f38
fix: detect attachment mime from file contents (#23291)
kitlangton Apr 18, 2026
c5c38ca
chore: generate
opencode-agent[bot] Apr 18, 2026
5eaef6b
release: avoid package.json drift during publish
thdxr Apr 18, 2026
a26d531
tui: allow full-session forks from the session dialog (#23339)
thdxr Apr 18, 2026
ce7923a
chore: bump @ai-sdk/amazon-bedrock (#23341)
rekram1-node Apr 18, 2026
e2e7a8d
fix: ensure display: summarized is sent by default for bedrock (#23343)
rekram1-node Apr 18, 2026
fbb0a93
chore: update nix node_modules hashes
opencode-agent[bot] Apr 18, 2026
9d012b0
zen: redeem credit
fwang Apr 18, 2026
54b3b3f
zen: redeem go
fwang Apr 18, 2026
7e971d8
chore: generate
opencode-agent[bot] Apr 18, 2026
1d54b0e
Stefan/enterprise forms waitlist (#23158)
R44VC0RP Apr 18, 2026
78ca49a
test: fix bedrock test (#23351)
rekram1-node Apr 18, 2026
940f971
ci: fix
thdxr Apr 18, 2026
cfbbae7
ci
thdxr Apr 18, 2026
ad05453
ci
thdxr Apr 18, 2026
f27eb8f
fix plugins reinstalling too often
thdxr Apr 19, 2026
d183568
core: ensure executable permissions are set before Docker builds
thdxr Apr 19, 2026
e543acf
chore: bump electron and fix taskbar icon (#23368)
Hona Apr 19, 2026
40ba8f3
sync release versions for v1.14.17
Apr 19, 2026
b34ca44
fix incorrect config directory by lazily loading electron-store (#23373)
Hona Apr 19, 2026
9ed9371
chore: update nix node_modules hashes
opencode-agent[bot] Apr 19, 2026
f14ac47
docs: document --dangerously-skip-permissions CLI flag (#23371)
ariane-emory Apr 19, 2026
75960e3
chore: generate
opencode-agent[bot] Apr 19, 2026
fc05889
fix (#23385)
rekram1-node Apr 19, 2026
40834fd
core: allow users with credits but no payment method to access zen mode
thdxr Apr 19, 2026
f02504b
chore: generate
opencode-agent[bot] Apr 19, 2026
135c8f0
chore: generate
opencode-agent[bot] Apr 19, 2026
e60a6e3
fix: change Free download button text to Download (#23388)
thdxr Apr 19, 2026
7f3b64c
chore: update nix node_modules hashes
opencode-agent[bot] Apr 19, 2026
889087c
fix(ripgrep): restore native rg backend (#22773)
nexxeln Apr 19, 2026
e998c9e
chore: update nix node_modules hashes
opencode-agent[bot] Apr 19, 2026
a546e88
fix(desktop-electron): run JSON migration before spawning sidecar (#2…
Brendonovich Apr 19, 2026
8ee47a0
chore: update nix node_modules hashes
opencode-agent[bot] Apr 19, 2026
83227be
fix(version): remove --target flag from beta release creation (#23403)
Brendonovich Apr 19, 2026
c09bcfe
sync release versions for v1.14.18
Apr 19, 2026
10bd044
feat: add terminal font settings and built-in Nerd Font (#23391)
Hona Apr 19, 2026
33b2795
chore: generate
opencode-agent[bot] Apr 19, 2026
a824064
stabilize TUI theme persistence and KV writes (#23188)
kommander Apr 19, 2026
9c7e52b
chore: update nix node_modules hashes
opencode-agent[bot] Apr 19, 2026
6eddf08
flip toolcall prune defaults
thdxr Apr 19, 2026
5ae74aa
Merge branch 'nxl/improve-compaction-strategy' into dev
thdxr Apr 19, 2026
48acab4
ci: skip Docker builds during preview releases to save time
thdxr Apr 19, 2026
29f05cb
chore: generate
opencode-agent[bot] Apr 19, 2026
b9640fc
core: fix session compaction test to properly enable prune config option
thdxr Apr 19, 2026
e4be557
ci: skip beta smoke fixes for now
thdxr Apr 20, 2026
6e01786
feat(provider): add NVIDIA to popular providers, docs, and attributio…
anniesurla Apr 20, 2026
a7a85c9
fix(core): fix Windows managed install and bump ripgrep to 15.1.0 for…
Hona Apr 20, 2026
cbe702c
chore: generate
opencode-agent[bot] Apr 20, 2026
93e633f
refactor(app): move QueryProvider to AppInterface (#23484)
Brendonovich Apr 20, 2026
8bc4f91
fix: parallel edits sometimes would override each other (#23483)
rekram1-node Apr 20, 2026
84e322b
chore: generate
opencode-agent[bot] Apr 20, 2026
687b758
app: better loading (#23489)
Brendonovich Apr 20, 2026
e539efe
fix: patch arborist to get around bun bug (#23460)
rekram1-node Apr 20, 2026
c6c56ac
tweak: rename tail_tokens -> preserve_recent_tokens (#23491)
rekram1-node Apr 20, 2026
f3d5a71
chore: generate
opencode-agent[bot] Apr 20, 2026
3ddc69e
chore: update nix node_modules hashes
opencode-agent[bot] Apr 20, 2026
7a568a4
fix: defer MessageV2.Assistant.shape access to break circular dep in …
Hona Apr 20, 2026
7c6948c
sync release versions for v1.14.19
Apr 20, 2026
91468fe
fix(ui): use parentID matching instead of positional scan for assista…
heimoshuiyu Apr 20, 2026
9046a45
merge upstream (conflicts auto-accepted - needs review)
github-actions[bot] Apr 20, 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
13 changes: 13 additions & 0 deletions .github/VOUCHED.td
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,27 @@
# - 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
-ricardo-m-l
-robinmordasiewicz
shantur
simonklee
-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