Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1926 commits
Select commit Hold shift + click to select a range
f1c31f4
fix(stats): use data branding assets
adamdotdevin Jun 9, 2026
db9391e
drop citation_options from cohere (#31543)
rekram1-node Jun 9, 2026
531eebb
zen: add north mini code model
fwang Jun 9, 2026
d68397b
fix(data): timestamp formatting
adamdotdevin Jun 9, 2026
c4bc902
fix(opencode): support Claude Fable reasoning (#31546)
rekram1-node Jun 9, 2026
0777cf1
fix(mcp): log actionable connection statuses (#31544)
rekram1-node Jun 9, 2026
132ef57
refactor(core): simplify location filesystem (#31545)
thdxr Jun 9, 2026
cc52dc3
chore: generate
opencode-agent[bot] Jun 9, 2026
1daf535
chore: update nix node_modules hashes
opencode-agent[bot] Jun 9, 2026
600e405
fix(opencode): restore effect error logging (#31551)
thdxr Jun 9, 2026
7a54a2c
chore: generate
opencode-agent[bot] Jun 9, 2026
07e5ea9
feat(opencode): add typed application layer graph (#31531)
jlongster Jun 9, 2026
9b8e356
zen: add claude fable 5
fwang Jun 9, 2026
c939aa0
chore: generate
opencode-agent[bot] Jun 9, 2026
381eabb
refactor(mcp): simplify service helpers (#31549)
rekram1-node Jun 9, 2026
80c0b06
feat: add X-Session-Id header for proxy cache routing affinity (#31511)
songchaow Jun 9, 2026
bc42187
zen: update email
fwang Jun 9, 2026
1cc94bb
fix(desktop): update Electron stack and panel layout (#31571)
Hona Jun 9, 2026
215fb39
chore: generate
opencode-agent[bot] Jun 9, 2026
ce4e658
chore: update nix node_modules hashes
opencode-agent[bot] Jun 9, 2026
a0409e6
refactor(core): unify filesystem search service (#31566)
thdxr Jun 10, 2026
6ae6f0f
chore: generate
opencode-agent[bot] Jun 10, 2026
1d46b5c
chore: update nix node_modules hashes
opencode-agent[bot] Jun 10, 2026
c4aa049
fix(tui): let gutter replace current marker (#31586)
thdxr Jun 10, 2026
4597c68
fix(core): prefer shorter paths for tied search scores
thdxr Jun 10, 2026
be8fee5
chore: generate
opencode-agent[bot] Jun 10, 2026
7859182
fix(core): expose partial filesystem scan results
thdxr Jun 10, 2026
4ae468f
chore: generate
opencode-agent[bot] Jun 10, 2026
e9e2612
chore: Update fff to 0.9.4 (#31583)
dmtrKovalenko Jun 10, 2026
e9106ef
chore: update nix node_modules hashes
opencode-agent[bot] Jun 10, 2026
6c6ed68
sync release versions for v1.17.0
Jun 10, 2026
0fc33e2
feat(app): /new-session route for new design (#31457)
Brendonovich Jun 10, 2026
8a2cfc0
feat(core): add project reference guidance (#31601)
thdxr Jun 10, 2026
9107336
fix(mcp): make client creation failure-safe (#31595)
rekram1-node Jun 10, 2026
954d618
fix(opencode): support Anthropic fallback responses (#31611)
rekram1-node Jun 10, 2026
174ab58
fix(mcp): apply timeouts to prompts and resources (#31612)
rekram1-node Jun 10, 2026
5e342f7
chore: update nix node_modules hashes
opencode-agent[bot] Jun 10, 2026
e0449c0
fix(desktop): restore macOS auto-updates (#31621)
Hona Jun 10, 2026
8264191
chore: update nix node_modules hashes
opencode-agent[bot] Jun 10, 2026
97e713e
zen: deepseek v4 pro
fwang Jun 10, 2026
90fb32b
fix(core): accept deprecated reference config key (#31659)
Hona Jun 10, 2026
2cf68f3
chore: generate
opencode-agent[bot] Jun 10, 2026
4c9abff
sync release versions for v1.17.1
Jun 10, 2026
5863e12
put fff behind flag
thdxr Jun 10, 2026
c9e2a38
ci: change model from gpt-5.4-nano to gpt-5.4-mini (#31695)
rekram1-node Jun 10, 2026
1dad38d
fix(core): do not gate fff on initial scan
thdxr Jun 10, 2026
538cfaf
feat(core): enable fff by default
thdxr Jun 10, 2026
e4300e9
fix(core): disable fff by default on windows
thdxr Jun 10, 2026
3ad6923
fix(opencode): let subagents use their own permissions (#31696)
rekram1-node Jun 10, 2026
02608a4
fix: recover from expired enterprise auth on remote config load (#31661)
Ayushlm10 Jun 10, 2026
649618c
fix(app): restore device attachment picker (#31707)
rexdotsh Jun 10, 2026
e1073e5
chore: generate
opencode-agent[bot] Jun 10, 2026
2e0f88d
fix(desktop): restore linux launcher identity (#31709)
neriousy Jun 10, 2026
2c65273
sync release versions for v1.17.2
Jun 10, 2026
14ec7ed
fix fff disabling logic
thdxr Jun 10, 2026
bed780f
chore: bump gitlab-ai-provider to 6.9.1 (#31728)
vglafirov Jun 10, 2026
5b54203
chore: update nix node_modules hashes
opencode-agent[bot] Jun 10, 2026
8688ed7
feat(web): data link
adamdotdevin Jun 10, 2026
936363e
sync release versions for v1.17.3
Jun 10, 2026
bb82aab
update opencode.jsonc
thdxr Jun 10, 2026
722f4dd
chore: pin gitlab-ai-provider to 6.9.0 (#31741)
vglafirov Jun 10, 2026
f43b0d3
fix(mcp): apply timeouts to catalog requests (#31618)
rekram1-node Jun 10, 2026
c51a158
tui: fix session list search filtering (#31748)
simonklee Jun 10, 2026
07b983e
feat(mcp): support server log notifications (#31752)
rekram1-node Jun 10, 2026
6e2bcaf
chore: update nix node_modules hashes
opencode-agent[bot] Jun 10, 2026
eb70b61
test(opencode): simplify test registry layer wiring (#31761)
jlongster Jun 10, 2026
cc22646
docs: add branch naming guidance
thdxr Jun 10, 2026
51891d5
fix(snapshot): reuse source git objects to avoid re-hashing huge repo…
dmtrKovalenko Jun 11, 2026
20bf18f
test(opencode): simplify share layer wiring (#31811)
jlongster Jun 11, 2026
ff967e5
chore: generate
opencode-agent[bot] Jun 11, 2026
8bf0675
feat(server): add v2 session API endpoints (#31822)
thdxr Jun 11, 2026
38536cf
test(opencode): simplify processor layer wiring (#31823)
jlongster Jun 11, 2026
69623c2
chore: generate
opencode-agent[bot] Jun 11, 2026
47a4560
refactor(tui): replace v2 sync with data context (#31826)
thdxr Jun 11, 2026
51b10b1
chore: generate
opencode-agent[bot] Jun 11, 2026
bf05e8a
fix(mcp): preserve headers during auth and debug (#31802)
rekram1-node Jun 11, 2026
dac0dd5
feat(core): add connector authentication (#31837)
thdxr Jun 11, 2026
710e408
chore: generate
opencode-agent[bot] Jun 11, 2026
8bd249d
upgrade opentui-spinner (#31561)
kommander Jun 11, 2026
318dbe9
chore: update nix node_modules hashes
opencode-agent[bot] Jun 11, 2026
92c70c9
fix(tui): preserve exit epilogue during scoped shutdown (#31805)
tobwen Jun 11, 2026
2bde20c
test(opencode): simplify snapshot race layer wiring (#31827)
jlongster Jun 11, 2026
567d6ed
fix(tui): restore legacy sync consumers (#31908)
thdxr Jun 11, 2026
31b233e
chore: generate
opencode-agent[bot] Jun 11, 2026
31c5454
refactor(server): serve raw filesystem content (#31911)
thdxr Jun 11, 2026
6dd4d14
chore: generate
opencode-agent[bot] Jun 11, 2026
04e5ca9
chore: bump gitlab-ai-provider to 6.9.3 and opencode-gitlab-auth to 2…
vglafirov Jun 11, 2026
a1dee8b
chore: update nix node_modules hashes
opencode-agent[bot] Jun 11, 2026
e2527db
fix(opencode): surface content-filter finish reason as visible error …
kkdawkins Jun 11, 2026
2e71292
fix(gemini): prevent gemini incompatibility with some tools (#31877)
Killusions Jun 11, 2026
a150424
fix(tui): show terminal tool failure labels (#31934)
rekram1-node Jun 11, 2026
84f94e6
chore: generate
opencode-agent[bot] Jun 11, 2026
e07e420
fix(stats): align deep route metadata with /data (#31930)
adamdotdevin Jun 11, 2026
9eb07ab
chore: generate
opencode-agent[bot] Jun 11, 2026
ca8db31
fix(tui): show prompt submission errors (#31949)
rekram1-node Jun 11, 2026
7e7ad37
feat(opencode): support cwd on local MCP servers (#30676)
Grantmartin2002 Jun 11, 2026
cd2e6f0
chore: generate
opencode-agent[bot] Jun 11, 2026
bace18c
zen: make payment method off_session
fwang Jun 11, 2026
03a2504
fix(tui): shorten move session description (#31967)
iamdavidhill Jun 12, 2026
fe2e4e2
sync release versions for v1.17.4
Jun 12, 2026
a9c810c
fix(tui): double file content injection in commands using $ARGUMENTS …
verdverm Jun 12, 2026
30aec29
refactor(core): simplify integration credentials (#31968)
thdxr Jun 12, 2026
5f77482
chore: generate
opencode-agent[bot] Jun 12, 2026
7793db3
fix(core): preserve credential schema compatibility
thdxr Jun 12, 2026
2c5335d
chore: generate
opencode-agent[bot] Jun 12, 2026
f35bb51
feat(app): update oc-2 colors (#31071)
arvsrn Jun 12, 2026
bf4c647
chore: generate
opencode-agent[bot] Jun 12, 2026
2415434
feat(go): promote MiniMax M3 usage limits (#31986)
MrMushrooooom Jun 12, 2026
4ddfa7c
fix(stats): reorder leaderboard cards
adamdotdevin Jun 12, 2026
be22750
fix(opencode): expose structured MCP output (#32074)
rekram1-node Jun 12, 2026
1b096b4
fix(opencode): clear closed MCP clients (#32084)
rekram1-node Jun 12, 2026
30b2544
refactor(opencode): build server from layer nodes (#32086)
jlongster Jun 12, 2026
b000256
chore: generate
opencode-agent[bot] Jun 12, 2026
44308df
fix(stats): tighten truncated label line height
adamdotdevin Jun 12, 2026
ba2455e
feat(stats): use catalog pricing in efficiency and token costs
adamdotdevin Jun 12, 2026
621796d
feat(stats): add world map markers
adamdotdevin Jun 12, 2026
f8b357b
fix(data): mobile breakpoint for nav
adamdotdevin Jun 12, 2026
8d97c8d
chore: generate
opencode-agent[bot] Jun 12, 2026
c2e6b18
feat(core): refactor project copies for v2 (#31943)
jlongster Jun 12, 2026
6c36b58
chore: generate
opencode-agent[bot] Jun 12, 2026
443f103
go: kimi 2.7 code
fwang Jun 12, 2026
73dbd8a
chore: generate
opencode-agent[bot] Jun 12, 2026
27ca0f8
docs: update North Mini Code privacy terms (#32096)
Slickstef11 Jun 12, 2026
cf2d1dd
fix(tui): restore subtask invocation spacing (#32109)
rekram1-node Jun 12, 2026
fff0ec2
fix(tui): prevent duplicate renderable IDs (#32110)
kommander Jun 12, 2026
dbbe67f
chore: generate
opencode-agent[bot] Jun 12, 2026
2630f45
fix(app): fade overflowing titlebar tabs (#32082)
Hona Jun 13, 2026
d733487
chore: generate
opencode-agent[bot] Jun 13, 2026
9ae4a51
fix(app): expand terminal resize gutter hitbox (#32169)
Hona Jun 13, 2026
45e4606
feat(app): bring v2 visibility settings to web (#32174)
Hona Jun 13, 2026
c7dee9c
fix(opencode): recover expired MCP sessions (#32088)
rekram1-node Jun 13, 2026
fcca731
chore: update nix node_modules hashes
opencode-agent[bot] Jun 13, 2026
3f17453
feat(opencode): add external browser OAuth for snowflake cortex provi…
santigc6 Jun 13, 2026
a6e3afe
chore: generate
opencode-agent[bot] Jun 13, 2026
632f94f
fix(opencode): add authorization header to fetch requests in RunComma…
OpeOginni Jun 13, 2026
414c037
chore: generate
opencode-agent[bot] Jun 13, 2026
7143bf8
sync release versions for v1.17.5
Jun 13, 2026
11fd6f8
chore(mcp): declare client capabilities (#32222)
rekram1-node Jun 13, 2026
252223a
fix(tui): handle move directory errors (#32226)
rekram1-node Jun 13, 2026
409ba22
fix(core): ignore unavailable project copy roots (#32234)
jlongster Jun 13, 2026
42f339c
sync release versions for v1.17.6
Jun 13, 2026
f55a931
feat(mcp): support client roots (#32230)
rekram1-node Jun 14, 2026
231f494
fix(mcp): use SDK protocol version in debug (#32243)
rekram1-node Jun 14, 2026
7efade2
zen: monitor budget
fwang Jun 14, 2026
f2cf607
refactor(core): canonicalize pty service (#32182)
nexxeln Jun 14, 2026
8cc2276
chore: generate
opencode-agent[bot] Jun 14, 2026
7ad68f8
fix(server): apply plugin pty environment (#32296)
nexxeln Jun 14, 2026
c81cd32
chore: generate
opencode-agent[bot] Jun 14, 2026
010b456
feat(app): scope sdk/sync hooks per-route so /new-session targets its…
Brendonovich Jun 14, 2026
4810df0
chore: generate
opencode-agent[bot] Jun 14, 2026
0cf3ee4
refactor(core): derive catalog availability from integrations (#32272)
thdxr Jun 14, 2026
3ab19bf
chore: generate
opencode-agent[bot] Jun 14, 2026
5146142
fix(acp): show shell command in ACP tool calls (#32304)
nexxeln Jun 14, 2026
e4d4b07
test(acp): make shell workdir location assertion windows-safe (#32306)
nexxeln Jun 14, 2026
3e523d5
fix(tui): match @ mention items by name, not description or uri (#32309)
nexxeln Jun 14, 2026
d37ddc5
feat(app): add prompt input story (#32308)
Brendonovich Jun 14, 2026
3f81402
chore: generate
opencode-agent[bot] Jun 14, 2026
87c33b3
fix(plugin): reuse active server for client requests
thdxr Jun 14, 2026
85e278b
sync release versions for v1.17.7
Jun 14, 2026
e4ccb50
fix(mcp): escape OAuth callback errors (#32242)
rekram1-node Jun 15, 2026
a9a4b2f
fix(stats): scope data charts to go
adamdotdevin Jun 15, 2026
a774c62
chore(opencode): consolidate escape logic (#32360)
rekram1-node Jun 15, 2026
1338d7b
fix(stats): rank model pages by week
adamdotdevin Jun 15, 2026
dfb616f
fix(mcp): handle tool result errors (#32244)
rekram1-node Jun 15, 2026
9fdfa23
fix(stats): align homepage model ranks
adamdotdevin Jun 15, 2026
9258e8c
fix(mcp): type tool error content
adamdotdevin Jun 15, 2026
0dbfb6b
chore: update nix node_modules hashes
opencode-agent[bot] Jun 15, 2026
98d66e9
chore: generate
opencode-agent[bot] Jun 15, 2026
5d0f866
fix(mcp): stop idle OAuth callback server (#32245)
rekram1-node Jun 15, 2026
a98d573
fix(mcp): enable progress timeout resets (#32477)
Nomadcxx Jun 16, 2026
3a2ff11
Revert "fix(mcp): type tool error content"
adamdotdevin Jun 16, 2026
94652cf
fix(tui): render move errors inline (#32241)
rekram1-node Jun 16, 2026
bd84c32
fix(web): persist docs language selection (#32551)
rekram1-node Jun 16, 2026
25cb2be
fix(mcp): default tool schema properties (#32568)
rekram1-node Jun 16, 2026
88f5b9a
experiment: better web picker using @pierre/tree (#31208)
Hona Jun 16, 2026
1c2c2d6
chore: generate
opencode-agent[bot] Jun 16, 2026
e772664
chore: update nix node_modules hashes
opencode-agent[bot] Jun 16, 2026
3b811bd
feat(app): make session timelines much faster AND without flicker or …
Hona Jun 16, 2026
273efde
chore: generate
opencode-agent[bot] Jun 16, 2026
8fd5753
fix(provider): pass apiKey to createUnified for Cloudflare AI Gateway…
keefetang Jun 16, 2026
3ab3d04
chore: update nix node_modules hashes
opencode-agent[bot] Jun 16, 2026
213ff3f
fix(opencode): sanitize OpenAI MCP tool schemas (#32489)
jquense Jun 17, 2026
1e63e76
fix(stats): scope model pages to go
adamdotdevin Jun 17, 2026
417ad24
chore: generate
opencode-agent[bot] Jun 17, 2026
5c9e4ff
feat(app): add v2 home tab toggle (#32191)
Hona Jun 17, 2026
85a7929
fix(stats): map lab aliases
adamdotdevin Jun 17, 2026
10b6672
go: glm 5.2
fwang Jun 17, 2026
8716c43
sync release versions for v1.17.8
Jun 17, 2026
ec50db3
fix(opencode): pass configured headers to Copilot models (#32815)
rekram1-node Jun 18, 2026
62c746f
zen: budget
fwang Jun 18, 2026
2892e97
fix(tui): gate background shortcut by capability (#32837)
rekram1-node Jun 18, 2026
355a0bc
chore: generate
opencode-agent[bot] Jun 18, 2026
0f6c9b3
chore(stats): update data seo metadata
adamdotdevin Jun 19, 2026
10ec856
chore: generate
opencode-agent[bot] Jun 19, 2026
c6083a4
test(app): add manual performance diagnostics (#32937)
Hona Jun 19, 2026
3f1fffe
fix(core): fix command docs in customize-opencode skill (#32718)
Grantmartin2002 Jun 19, 2026
f092baf
tweak: remove steering wrapper that can bust cache (#33039)
rekram1-node Jun 19, 2026
e6cdc54
fix(tui): render console org load errors inline (#33040)
rekram1-node Jun 19, 2026
95237a9
fix(stats): align model peers ranking
adamdotdevin Jun 20, 2026
009f379
refactor(tui): simplify inline tool spacing (#33097)
thdxr Jun 20, 2026
babe507
fix(opencode): use toLowerCase for Devstral model detection (#33109)
Robin1987China Jun 20, 2026
2d993cd
fix(experimental llm pkg): forward topK to Converse via additionalMod…
kimnamu Jun 20, 2026
24c70ec
feat(stats): add unique user charts
adamdotdevin Jun 20, 2026
1c76587
chore: generate
opencode-agent[bot] Jun 20, 2026
503309d
fix(stats): tolerate pending user column
adamdotdevin Jun 20, 2026
4f1a9d7
fix(core): honor configured agent step limits (#33142)
kitlangton Jun 20, 2026
0b7ec51
chore: generate
opencode-agent[bot] Jun 20, 2026
22cc758
feat(opencode): expose High/Max thinking variants for GLM-5.2 (#32446)
imranshaiedi-byte Jun 20, 2026
d99f86b
fix(tui): separate subagent tool rows (#33158)
thdxr Jun 20, 2026
4f1ae16
chore: upgrade Effect to beta 83 (#32340)
kitlangton Jun 20, 2026
e84d94d
sync release versions for v1.17.9
Jun 21, 2026
5606d2b
chore: update nix node_modules hashes
opencode-agent[bot] Jun 21, 2026
d59619f
test(opencode): simplify git layer wiring (#33156)
jlongster Jun 21, 2026
468f425
test(opencode): simplify session retry layer wiring (#33155)
jlongster Jun 21, 2026
d3bbfff
test(opencode): simplify message pagination layer wiring (#33157)
jlongster Jun 21, 2026
f12ac6f
fix(tui): reduce noisy MCP autocomplete matches (#33176)
thdxr Jun 21, 2026
233d065
feat(stats): show model users metric
adamdotdevin Jun 21, 2026
6f0e934
fix(stats): make unique users migration idempotent
adamdotdevin Jun 21, 2026
d4d841b
chore: generate
opencode-agent[bot] Jun 21, 2026
ffcb754
fix(stats): run production migration safely
adamdotdevin Jun 21, 2026
24ea4dd
chore: generate
opencode-agent[bot] Jun 21, 2026
a97c6de
fix(stats): support planetscale cli variants
adamdotdevin Jun 21, 2026
bd8ce5e
chore(stats): remove deploy migrations
adamdotdevin Jun 21, 2026
418a9e4
fix(stats): restore model page rendering
adamdotdevin Jun 21, 2026
c0dc6e5
fix(stats): restore worker runtime
adamdotdevin Jun 21, 2026
a0aee82
fix(stats): inline worker runtime import
adamdotdevin Jun 21, 2026
1a111be
fix(stats): run worker effects directly
adamdotdevin Jun 21, 2026
c6f719e
fix(stats): restore worker data exports
adamdotdevin Jun 21, 2026
f96e6aa
fix(stats): bypass worker runtime crash
adamdotdevin Jun 21, 2026
7a9337d
chore: generate
opencode-agent[bot] Jun 21, 2026
c780d7c
feat(plugin): add v2 effect host (#33111)
thdxr Jun 21, 2026
02687b6
chore: generate
opencode-agent[bot] Jun 21, 2026
1b8bab3
fix(ci): avoid Playwright Chromium install hang
thdxr Jun 21, 2026
8396395
fix(stats): update defect schemas
thdxr Jun 21, 2026
ca006a2
chore: update nix node_modules hashes
opencode-agent[bot] Jun 21, 2026
fb43c15
refactor(core): simplify event model (#33238)
thdxr Jun 21, 2026
82d9cab
chore: generate
opencode-agent[bot] Jun 21, 2026
823d327
fix(core): handle missing read paths (#33255)
kitlangton Jun 21, 2026
69f1ec2
fix(core): bound web tool failures (#33259)
kitlangton Jun 21, 2026
4c6750d
fix(stats): unblock stats sync
adamdotdevin Jun 21, 2026
ff837fe
fix(core): handle read file failures (#33260)
kitlangton Jun 21, 2026
49593c1
fix(core): settle interrupted assistant steps (#33266)
kitlangton Jun 21, 2026
7d204b5
feat(stats): show model unique users
adamdotdevin Jun 21, 2026
06dae38
chore: generate
opencode-agent[bot] Jun 21, 2026
9dadc24
fix(tui): render skill load errors inline (#33298)
rekram1-node Jun 22, 2026
35b3fc8
feat(core): expose session switching endpoints
thdxr Jun 22, 2026
cdc6d01
chore: generate
opencode-agent[bot] Jun 22, 2026
2bb4311
refactor(core): simplify integration test fixtures (#33292)
thdxr Jun 22, 2026
cd292a4
chore: generate
opencode-agent[bot] Jun 22, 2026
932024d
WIP(sync): upstream v1.17.9 — manual conflict resolution required
github-actions[bot] Jun 22, 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
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.git
.opencode
.sst
.turbo
.wrangler
node_modules
**/node_modules
**/.output
**/dist
**/.turbo
**/.vite
**/coverage
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
packages/core/migration/**/snapshot.json linguist-generated
packages/core/src/database/migration.gen.ts linguist-generated
6 changes: 2 additions & 4 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# web + desktop packages
packages/app/ @adamdotdevin
packages/tauri/ @adamdotdevin
packages/desktop/src-tauri/ @brendonovich
packages/desktop/ @adamdotdevin
packages/app/ @Hona @Brendonovich
packages/desktop/ @Hona @Brendonovich
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Bug report
description: Report an issue that should be fixed
description: Report an issue that should be fixed (avoid pasting giant AI generated summaries or your issue may be closed/ignored)
body:
- type: textarea
id: description
Expand Down
1 change: 1 addition & 0 deletions .github/TEAM_MEMBERS
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ rekram1-node
thdxr
simonklee
vimtor
starptech
14 changes: 11 additions & 3 deletions .github/actions/setup-bun/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ runs:
fi

- name: Setup Bun
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: ${{ !steps.bun-url.outputs.url && 'package.json' || '' }}
bun-download-url: ${{ steps.bun-url.outputs.url }}
Expand All @@ -33,8 +33,9 @@ runs:
shell: bash
run: echo "dir=$(bun pm cache)" >> "$GITHUB_OUTPUT"

- name: Cache Bun dependencies
uses: actions/cache@v4
- name: Restore Bun dependencies
id: bun-cache
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.cache.outputs.dir }}
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
Expand All @@ -56,3 +57,10 @@ runs:
bun install ${{ inputs.install-flags }}
fi
shell: bash

- name: Save Bun dependencies
if: steps.bun-cache.outputs.cache-hit != 'true' && github.event_name != 'pull_request' && github.event_name != 'pull_request_target'
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.cache.outputs.dir }}
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
2 changes: 1 addition & 1 deletion .github/actions/setup-git-committer/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ runs:
steps:
- name: Create app token
id: apptoken
uses: actions/create-github-app-token@v2
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2.2.2
with:
app-id: ${{ inputs.opencode-app-id }}
private-key: ${{ inputs.opencode-app-secret }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/beta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 0

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/close-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ jobs:
contents: read
issues: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- uses: oven-sh/setup-bun@v2
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: latest

Expand Down
50 changes: 50 additions & 0 deletions .github/workflows/close-prs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: close-prs

on:
schedule:
- cron: "0 22 * * *" # Daily at 10:00 PM UTC
workflow_dispatch:
inputs:
dry-run:
description: "Log matching PRs without closing them"
type: boolean
default: true
max-close:
description: "Maximum matching PRs to close"
type: string
required: false
default: "50"

jobs:
close:
runs-on: ubuntu-latest
timeout-minutes: 240
permissions:
contents: read
issues: write
pull-requests: write
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: latest

- name: Close old PRs without enough positive reactions
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
max_close="${{ inputs['max-close'] }}"
if [ -z "$max_close" ]; then
max_close="50"
fi

args=("--threshold" "2" "--age-months" "1" "--sleep-ms" "20000" "--max-close" "$max_close")

if [ "${{ github.event_name }}" = "schedule" ]; then
args+=("--execute")
elif [ "${{ inputs['dry-run'] }}" = "false" ]; then
args+=("--execute")
fi

bun script/github/close-prs.ts "${args[@]}"
2 changes: 1 addition & 1 deletion .github/workflows/compliance-close.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
if: github.repository == 'anomalyco/opencode'
steps:
- name: Close non-compliant issues and PRs after 2 hours
uses: actions/github-script@v7
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
with:
script: |
const { data: items } = await github.rest.issues.listForRepo({
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@ jobs:
REGISTRY: ghcr.io/${{ github.repository_owner }}
TAG: "24.04"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

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

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0

- name: Login to GHCR
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand Down
27 changes: 16 additions & 11 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,33 @@ on:

concurrency: ${{ github.workflow }}-${{ github.ref }}

permissions:
contents: read
id-token: write

jobs:
deploy:
if: github.repository == 'anomalyco/opencode' && (github.ref_name == 'dev' || github.ref_name == 'production')
runs-on: ubuntu-latest
<<<<<<< HEAD
if: github.repository == 'anomalyco/opencode'
=======
environment: ${{ github.ref_name }}
>>>>>>> upstream/dev
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0

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

- uses: actions/setup-node@v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: "24"

# Workaround for Pulumi version conflict:
# GitHub runners have Pulumi 3.212.0+ pre-installed, which removed the -root flag
# from pulumi-language-nodejs (see https://github.com/pulumi/pulumi/pull/21065).
# SST 3.17.x uses Pulumi SDK 3.210.0 which still passes -root, causing a conflict.
# Removing the system language plugin forces SST to use its bundled compatible version.
# TODO: Remove when sst supports Pulumi >3.210.0
- name: Fix Pulumi version conflict
run: sudo rm -f /usr/local/bin/pulumi-language-nodejs
- uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
with:
role-to-assume: ${{ vars.AWS_DEPLOY_ROLE_ARN }}
role-session-name: opencode-${{ github.run_id }}
aws-region: us-east-1

- run: bun sst deploy --stage=${{ github.ref_name }}
env:
Expand All @@ -38,7 +44,6 @@ jobs:
PLANETSCALE_SERVICE_TOKEN: ${{ secrets.PLANETSCALE_SERVICE_TOKEN }}
STRIPE_SECRET_KEY: ${{ github.ref_name == 'production' && secrets.STRIPE_SECRET_KEY_PROD || secrets.STRIPE_SECRET_KEY_DEV }}
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
INCIDENT_API_KEY: ${{ secrets.INCIDENT_API_KEY }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ vars.SENTRY_ORG }}
SENTRY_PROJECT: ${{ vars.WEB_SENTRY_PROJECT }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs-locale-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
fetch-depth: 0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 0 # Fetch full history to access commits

Expand All @@ -43,7 +43,7 @@ jobs:

- name: Run opencode
if: steps.commits.outputs.has_commits == 'true'
uses: sst/opencode/github@latest
uses: sst/opencode/github@2c14fc5586fe0b88e5c04732d2e846769cc35671 # latest
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/duplicate-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 1

Expand Down Expand Up @@ -125,7 +125,7 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 1

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/generate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- name: Setup Bun
uses: ./.github/actions/setup-bun
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/nix-eval.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
timeout-minutes: 15
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Nix
uses: nixbuild/nix-quick-install-action@v34
uses: nixbuild/nix-quick-install-action@2c9db80fb984ceb1bcaa77cdda3fdf8cfba92035 # v34

- name: Evaluate flake outputs (all systems)
run: |
Expand Down
30 changes: 20 additions & 10 deletions .github/workflows/nix-hashes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Nix
uses: nixbuild/nix-quick-install-action@v34
uses: nixbuild/nix-quick-install-action@2c9db80fb984ceb1bcaa77cdda3fdf8cfba92035 # v34

- name: Compute node_modules hash
id: hash
Expand All @@ -56,14 +56,24 @@ jobs:
BUILD_LOG=$(mktemp)
trap 'rm -f "$BUILD_LOG"' EXIT

# Build with fakeHash to trigger hash mismatch and reveal correct hash
nix build ".#packages.${SYSTEM}.node_modules_updater" --no-link 2>&1 | tee "$BUILD_LOG" || true
HASH=""
MAX_ATTEMPTS=3
for ((ATTEMPT = 1; ATTEMPT <= MAX_ATTEMPTS; ATTEMPT++)); do
# Build with fakeHash to trigger hash mismatch and reveal correct hash
nix build ".#packages.${SYSTEM}.node_modules_updater" --no-link 2>&1 | tee "$BUILD_LOG" || true

# Extract hash from build log with portability
HASH="$(nix run --inputs-from . nixpkgs#gnugrep -- -oP 'got:\s*\Ksha256-[A-Za-z0-9+/=]+' "$BUILD_LOG" | tail -n1 || true)"
HASH="$(nix run --inputs-from . nixpkgs#gnugrep -- -oP 'got:\s*\Ksha256-[A-Za-z0-9+/=]+' "$BUILD_LOG" | tail -n1 || true)"

[ -n "$HASH" ] && break

if [ "$ATTEMPT" -lt "$MAX_ATTEMPTS" ]; then
echo "::warning::Attempt ${ATTEMPT}/${MAX_ATTEMPTS} produced no hash for ${SYSTEM}; retrying in $((ATTEMPT * 10))s"
sleep $((ATTEMPT * 10))
fi
done

if [ -z "$HASH" ]; then
echo "::error::Failed to compute hash for ${SYSTEM}"
echo "::error::Failed to compute hash for ${SYSTEM} after ${MAX_ATTEMPTS} attempts"
cat "$BUILD_LOG"
exit 1
fi
Expand All @@ -72,7 +82,7 @@ jobs:
echo "Computed hash for ${SYSTEM}: $HASH"

- name: Upload hash
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: hash-${{ matrix.system }}
path: hash.txt
Expand All @@ -85,7 +95,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
fetch-depth: 0
Expand All @@ -102,7 +112,7 @@ jobs:
git pull --rebase --autostash origin "$GITHUB_REF_NAME"

- name: Download hash artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
path: hashes
pattern: hash-*
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/notify-discord.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ jobs:
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Send nicely-formatted embed to Discord
uses: SethCohen/github-releases-to-discord@v1
uses: SethCohen/github-releases-to-discord@24d166886aee4646d448c8a389ff9e1ebcab3682 # v1.20.0
with:
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
4 changes: 2 additions & 2 deletions .github/workflows/opencode.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ jobs:
issues: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

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

- name: Run opencode
uses: anomalyco/opencode/github@latest
uses: anomalyco/opencode/github@2c14fc5586fe0b88e5c04732d2e846769cc35671 # latest
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
OPENCODE_PERMISSION: '{"bash": "deny"}'
Expand Down
Loading