Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
260 commits
Select commit Hold shift + click to select a range
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
a9dd300
docs: document project indexing guard
Krablante Jun 22, 2026
a3801ca
feat: show progress during opencodez update
Krablante Jun 22, 2026
c7efbe6
run: inline files for attached servers (#33317)
simonklee Jun 22, 2026
4ecc3ac
chore: generate
opencode-agent[bot] Jun 22, 2026
57ce1b9
fix(cli): increment ports from default (#33282)
thdxr Jun 22, 2026
595cc91
feat(server): stream events across locations
thdxr Jun 22, 2026
1b91b5d
fix(core): constrain event schema services
thdxr Jun 22, 2026
b13a2d7
fix(server): isolate event schema types
thdxr Jun 22, 2026
639c94a
chore: generate
opencode-agent[bot] Jun 22, 2026
e50261e
fix(core): format generated migrations
thdxr Jun 22, 2026
7b750a8
fix(ci): preserve test log groups
thdxr Jun 22, 2026
36264cc
fix(stats): format market share tokens
adamdotdevin Jun 22, 2026
79b55d4
fix(tui): use bridged event stream for data
thdxr Jun 22, 2026
cf31029
fix(core): batch plugin shutdown
thdxr Jun 22, 2026
0d32d1f
cli: add --mini (#33353)
simonklee Jun 22, 2026
41d1279
fix(opencode): preserve request logger context (#33381)
kitlangton Jun 22, 2026
d5980b4
feat(llm): add video and audio media support to Gemini protocol (#31889)
remorses Jun 22, 2026
f9f2280
fix(core): defer session model validation (#33377)
kitlangton Jun 22, 2026
c6ee511
refactor(core): simplify session context epochs (#33378)
kitlangton Jun 22, 2026
4d5efba
chore: generate
opencode-agent[bot] Jun 22, 2026
adebb87
test(opencode): use EventV2 location contract (#33383)
kitlangton Jun 22, 2026
9bceb8e
test(opencode): synchronize websocket retry failures (#33387)
kitlangton Jun 22, 2026
f50e4ac
test(opencode): synchronize shell cancellation (#33386)
kitlangton Jun 22, 2026
fe840d4
refactor(core): simplify session run coordination (#33388)
kitlangton Jun 22, 2026
494123a
chore: generate
opencode-agent[bot] Jun 22, 2026
39d7394
fix(stats): hide unique users tooltip total
adamdotdevin Jun 22, 2026
c5a4a82
fix: dont show gpt-5.5-pro when using codex oauth (#33400)
rekram1-node Jun 22, 2026
1309572
fix(llm): preserve structured tool errors (#33405)
kitlangton Jun 22, 2026
1787fa4
refactor(core): drop legacy compaction event (#33404)
kitlangton Jun 22, 2026
a0a5003
zen: new inference
fwang Jun 22, 2026
34b3d59
ignore: update agents.md (#33446)
rekram1-node Jun 22, 2026
f48f24e
refactor(core): simplify session input promotion (#33443)
kitlangton Jun 22, 2026
dc468bd
fix(core): reset steps for promoted prompts (#33452)
kitlangton Jun 22, 2026
909a1a6
feat(plugin): add namespaced hook API (#33416)
thdxr Jun 22, 2026
49d3f86
chore: generate
opencode-agent[bot] Jun 22, 2026
23fd590
fix(opencode): normalize CLI test line endings
thdxr Jun 22, 2026
cd97de7
refactor(plugin): consolidate internal registration
thdxr Jun 22, 2026
975b113
refactor(plugin): use direct runtime registry
thdxr Jun 23, 2026
ef23579
fix(tui): scope file autocomplete to session (#33458)
thdxr Jun 23, 2026
fbf889d
fix(tui): preserve worker rejection handling (#33448)
rekram1-node Jun 23, 2026
d29f5eb
refactor(core): remove shell description input (#32823)
rekram1-node Jun 23, 2026
237595e
chore: generate
opencode-agent[bot] Jun 23, 2026
d2c866b
test(core): speed up test setup
thdxr Jun 23, 2026
4a710e4
fix(core): await plugin readiness
thdxr Jun 23, 2026
af14fef
test(opencode): relax compaction readiness timeout
thdxr Jun 23, 2026
ed75ce9
fix(core): prioritize reference plugin registration
thdxr Jun 23, 2026
6ea3e66
fix(opencode): scope reference readiness wait
thdxr Jun 23, 2026
3c5632e
test(opencode): stabilize Windows CLI subprocesses
thdxr Jun 23, 2026
81851ca
test(opencode): stabilize Windows async readiness
thdxr Jun 23, 2026
9b01f15
test(opencode): retry Windows CLI cleanup
thdxr Jun 23, 2026
40db33c
chore: generate
opencode-agent[bot] Jun 23, 2026
0c4f508
feat(app): add server-keyed session routes (#32570)
Brendonovich Jun 23, 2026
09757c6
chore: generate
opencode-agent[bot] Jun 23, 2026
597f47b
fix(app): improve mobile home layout (#32789)
Brendonovich Jun 23, 2026
d111812
fix(app): restore review line comments (#33481)
Hona Jun 23, 2026
bffc593
chore: generate
opencode-agent[bot] Jun 23, 2026
726b2d7
zen: remove unused fields
fwang Jun 23, 2026
ea17d9b
zen: glm 5.2
fwang Jun 23, 2026
3f3f120
feat(mcp): add resource read tools (#33483)
nexxeln Jun 23, 2026
f0849a6
fix(app): reject stale timeline range indexes (#33488)
Hona Jun 23, 2026
3cc626b
feat(app): collapsible servers (#33384)
arvsrn Jun 23, 2026
52eae83
fix(app): add server button dropdown (#33358)
arvsrn Jun 23, 2026
a379c79
chore: generate
opencode-agent[bot] Jun 23, 2026
bbc88eb
fix(app): refine mobile session layout (#32796)
Brendonovich Jun 23, 2026
7752269
chore: generate
opencode-agent[bot] Jun 23, 2026
b006370
feat(app): add mobile bottom navigation (#32797)
Brendonovich Jun 23, 2026
fc95a84
chore: generate
opencode-agent[bot] Jun 23, 2026
a21e747
fix(app): improve iOS PWA shell (#32798)
Brendonovich Jun 23, 2026
d248483
feat(app): new session progress indicator (#32662)
arvsrn Jun 23, 2026
58a8d9f
chore: generate
opencode-agent[bot] Jun 23, 2026
d568fed
fix(app): tighten mobile utility UI (#32799)
Brendonovich Jun 23, 2026
428ae6d
feat(stats): add user ids to inference metrics
adamdotdevin Jun 23, 2026
e0ff4fd
Revert "feat(stats): add user ids to inference metrics"
adamdotdevin Jun 23, 2026
f416f52
Reapply "feat(stats): add user ids to inference metrics"
adamdotdevin Jun 23, 2026
ef4500d
fix(data): ignore table changes
adamdotdevin Jun 23, 2026
3cdd431
fix(tui): make move session command bindable (#33508)
simonklee Jun 23, 2026
e3edbba
test(opencode): stabilize prompt concurrency tests (#33522)
rekram1-node Jun 23, 2026
e439456
chore: generate
opencode-agent[bot] Jun 23, 2026
e0c0411
fix: Skip bun version check for nix version (#33166)
ReStranger Jun 23, 2026
a382528
test(core): avoid models cache recovery race (#33525)
rekram1-node Jun 23, 2026
8e2d422
fix(acp): preserve resource text source (#33524)
nexxeln Jun 23, 2026
976e5d4
ci: route support questions (#33527)
opencode-agent[bot] Jun 23, 2026
a131811
feat(mcp): use mcp__server__tool naming convention (#33533)
rekram1-node Jun 23, 2026
e04c5e7
fix(app): prompt persistence and draft sessions (#33528)
Brendonovich Jun 23, 2026
2ba18b8
fix(app): use correct server sdk for titlebar session lookup (#33536)
Brendonovich Jun 23, 2026
5152150
fix(opencode): make ACP resource text sourcing cross-platform (#33534)
rekram1-node Jun 23, 2026
dcf7b4e
fix(opencode): handle snapshot paths from subdirectories (#33506)
kitlangton Jun 23, 2026
c6cc13e
feat(mcp): add resource template listing (#33546)
nexxeln Jun 23, 2026
d2305d4
chore: generate
opencode-agent[bot] Jun 23, 2026
b8cfd69
feat(tui): redesign crash screen (#33549)
rekram1-node Jun 23, 2026
10f6bb7
chore: generate
opencode-agent[bot] Jun 23, 2026
c17b955
fix(core): preserve structured error messages (#33530)
rekram1-node Jun 23, 2026
cf80b5c
feat(core): add opencode integration (#33555)
thdxr Jun 23, 2026
cfddb24
chore: generate
opencode-agent[bot] Jun 23, 2026
c556bdd
feat(core): add opencode integration (#33560)
thdxr Jun 24, 2026
4898263
feat(core): map providers to integrations (#33562)
thdxr Jun 24, 2026
1490752
chore: generate
opencode-agent[bot] Jun 24, 2026
fed4f4d
feat(app): keep prompt state in tabs (#33566)
Brendonovich Jun 24, 2026
f8c9bfd
fix(app): mount shortcuts per titlebar tab (#33567)
Brendonovich Jun 24, 2026
5307699
fix(tui): normalize autocomplete attachments
thdxr Jun 24, 2026
e8610d8
refactor(core): drop filesystem entry mime
thdxr Jun 24, 2026
60aba62
fix(app): use fixed titlebar tab widths (#33572)
Brendonovich Jun 24, 2026
516cfe4
refactor(schema): extract shared public schemas (#33571)
kitlangton Jun 24, 2026
5202bf1
chore: update nix node_modules hashes
opencode-agent[bot] Jun 24, 2026
6298db7
fix(app): throttle directory tree loading (#33576)
Brendonovich Jun 24, 2026
5789558
refactor(core): remove schema forwarding facades (#33577)
kitlangton Jun 24, 2026
a4b9351
fix(app): create scoped drafts from home (#33578)
Brendonovich Jun 24, 2026
784eea3
feat(cli): add API request command
thdxr Jun 24, 2026
c416ede
fix(tui): sort model picker by release date (#33558)
rekram1-node Jun 24, 2026
556337d
chore: generate
opencode-agent[bot] Jun 24, 2026
51eb87b
fix(app): clear viewed session notifications (#33574)
Brendonovich Jun 24, 2026
5303ab0
fix(app): route new sessions through tabs (#33582)
Brendonovich Jun 24, 2026
af31e97
fix(mcp): bind oauth callback to IPv4 loopback (#30022)
he-yufeng Jun 24, 2026
5647ed8
fix(opencode): restore v1 account config (#33590)
opencode-agent[bot] Jun 24, 2026
800d41d
refactor(app): simplify layout hierarchy (#33588)
Brendonovich Jun 24, 2026
947e001
fix(mcp): restore legacy tool names (#33593)
rekram1-node Jun 24, 2026
246d40d
fix(skill): emit base directory as filesystem path, not file:// URL (…
shyuan Jun 24, 2026
fbfd725
chore: generate
opencode-agent[bot] Jun 24, 2026
6c12c32
fix(mcp): prevent resource key collisions (#33596)
rekram1-node Jun 24, 2026
8aff7b8
feat(app): update all components to use v2 tokens (#33598)
arvsrn Jun 24, 2026
67e8b85
chore: generate
opencode-agent[bot] Jun 24, 2026
8cc79f7
deps: update OpenTUI to 0.4.2 (#33610)
simonklee Jun 24, 2026
abcfeb3
chore: update nix node_modules hashes
opencode-agent[bot] Jun 24, 2026
a4551a9
fix(app): make session navigation stable and fast (#33569)
Hona Jun 24, 2026
d465cd4
chore: generate
opencode-agent[bot] Jun 24, 2026
2312a15
fix(app): share synced session data (#33624)
Brendonovich Jun 24, 2026
cacb7d0
refactor(app): rename cached context accessors (#33627)
Brendonovich Jun 24, 2026
633fc6f
ci: notify the current Discord alert role
vimtor Jun 24, 2026
ad3651d
feat(console): add support actions (#33492)
vimtor Jun 24, 2026
05f335c
feat(tui): add diff viewer keybind (#33365)
vimtor Jun 24, 2026
fe655b7
chore: generate
opencode-agent[bot] Jun 24, 2026
0016dfd
fix(app): always apply safe area insets (#33619)
Brendonovich Jun 24, 2026
6eec983
feat(tui): add main branch source to diff mode (#30942)
vimtor Jun 24, 2026
bd149f0
fix(enterprise): use delete for remove share
vimtor Jun 24, 2026
6281e35
tui: fix multi-day duration formatting (#33651)
simonklee Jun 24, 2026
36501a8
docs(llm): propose AI library design (#33666)
nexxeln Jun 24, 2026
1ef0fd5
chore: generate
opencode-agent[bot] Jun 24, 2026
04c1730
refactor(ui): isolate session components (#33670)
vimtor Jun 24, 2026
e45f55d
chore: update nix node_modules hashes
opencode-agent[bot] Jun 24, 2026
db7c28b
zen: migrate to new inference
fwang Jun 24, 2026
69f3b63
fix(stats): strip locale prefixes from data routes
adamdotdevin Jun 24, 2026
2e90933
refactor(stats): simplify locale prefix stripping
adamdotdevin Jun 24, 2026
e8e83af
feat(mcp): append server instructions to context (#32490)
Arcadi4 Jun 24, 2026
2684293
chore: generate
opencode-agent[bot] Jun 24, 2026
116ac93
fix(mcp): hide denied resource template tool (#33686)
rekram1-node Jun 24, 2026
17f312d
refactor(core): simplify model requests
thdxr Jun 24, 2026
42bb793
feat(core): generate model variants
thdxr Jun 24, 2026
31b58b4
chore: generate
opencode-agent[bot] Jun 24, 2026
ea5dd9d
zen: track model tier in stats
fwang Jun 24, 2026
1ddb75d
fix: restore dev CI (#33701)
rekram1-node Jun 24, 2026
20750a3
tui: remove logo animation (#33633)
simonklee Jun 24, 2026
858f35f
sync release versions for v1.17.10
Jun 24, 2026
24b0132
refactor(schema): extract public event definitions (#33579)
kitlangton Jun 24, 2026
121decf
chore: generate
opencode-agent[bot] Jun 24, 2026
4b83f5d
chore: update nix node_modules hashes
opencode-agent[bot] Jun 24, 2026
142c5c1
docs: add GMI Cloud provider entry to providers directory (#32914)
isaachuangGMICLOUD Jun 24, 2026
49ea8a9
fix(opencode): always print MCP OAuth URL (#33716)
rekram1-node Jun 24, 2026
68260ea
fix(core): scope fff broad scanning
thdxr Jun 24, 2026
e9ee212
fix(core): disable fff broad scanning
thdxr Jun 24, 2026
bba7498
fix(core): handle unavailable fff index
thdxr Jun 24, 2026
f4afb2c
fix(core): preserve unconfigured console models
thdxr Jun 24, 2026
25c6abc
fix(core): lower OpenAI text verbosity
thdxr Jun 24, 2026
9bb5370
feat(core): add session snapshot and revert system (#33226)
thdxr Jun 24, 2026
3730125
chore: generate
opencode-agent[bot] Jun 24, 2026
f9dac26
fix(app): remove session loading stripe (#33649)
opencode-agent[bot] Jun 25, 2026
56a37c3
refactor(protocol): extract server contracts (#33708)
kitlangton Jun 25, 2026
3b4aaaf
refactor(app): centralize session state (#33641)
Brendonovich Jun 25, 2026
5ca1994
chore: generate
opencode-agent[bot] Jun 25, 2026
ba2ba77
fix(app): clear late session notifications (#33753)
Brendonovich Jun 25, 2026
c45d1db
chore: update nix node_modules hashes
opencode-agent[bot] Jun 25, 2026
cdd67cf
feat(sdk): add HttpApi clients and embedded host (#33445)
kitlangton Jun 25, 2026
546527b
chore: generate
opencode-agent[bot] Jun 25, 2026
dc569b5
chore: update nix node_modules hashes
opencode-agent[bot] Jun 25, 2026
cfd75d6
fix(app): separate provider lifetimes and reactive ownership (#33739)
Hona Jun 25, 2026
259e153
chore: generate
opencode-agent[bot] Jun 25, 2026
fed8f01
refactor(app): lift parent session navigation (#33782)
Brendonovich Jun 25, 2026
5d4f160
chore: generate
opencode-agent[bot] Jun 25, 2026
d5aa5ff
feat(app): draggable tabs (#31364)
arvsrn Jun 25, 2026
4c0af7c
chore: generate
opencode-agent[bot] Jun 25, 2026
1bcb9d7
feat(app): ui improvements (#32438)
arvsrn Jun 25, 2026
9c0d813
chore: generate
opencode-agent[bot] Jun 25, 2026
bdee94c
fix(app): close missing session tabs (#33785)
Brendonovich Jun 25, 2026
d13779b
fix(app): preserve todo dock across sessions (#33778)
Brendonovich Jun 25, 2026
71402bc
fix(app): remove produce default values in server session state (#33793)
Brendonovich Jun 25, 2026
40ddede
fix(app): update all v1 new-session icons (#32017)
arvsrn Jun 25, 2026
6ec6db4
fix(storybook): support prompt state capture (#33798)
Brendonovich Jun 25, 2026
aee262f
feat(app): no sesssions empty state (#33315)
arvsrn Jun 25, 2026
1b10730
chore: generate
opencode-agent[bot] Jun 25, 2026
b2c688f
feat(app): restyle v2 jump-to-latest button (#33809)
arvsrn Jun 25, 2026
717b740
fix(app): improve home action availability (#33805)
Brendonovich Jun 25, 2026
b44af11
fix(app): restore tab layout consistency (#33804)
Brendonovich Jun 25, 2026
5471d2a
fix(app): reveal tab avatar on hover (#33824)
opencode-agent[bot] Jun 25, 2026
0149d46
feat(app): add Chrome tab cycle shortcuts (#33838)
opencode-agent[bot] Jun 25, 2026
98dcea0
Revert "deps: update OpenTUI to 0.4.2 (#33610)" (#33842)
simonklee Jun 25, 2026
78234fa
fix(app): use project server for prompt drafts (#33850)
Brendonovich Jun 25, 2026
f55d8fa
chore: update nix node_modules hashes
opencode-agent[bot] Jun 25, 2026
67aec22
release: v1.17.11
Jun 25, 2026
1990aa6
chore: update opencodez to opencode v1.17.11
Krablante Jun 26, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ blank_issues_enabled: false
contact_links:
- name: 💬 Discord Community
url: https://discord.gg/opencode
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
about: For support, troubleshooting, how-to questions, and real-time discussion.
10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/question.yml

This file was deleted.

8 changes: 4 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
workflow_dispatch:
inputs:
release_version:
description: "Release version, without leading v. Example: 1.17.8+opencodez.2"
description: "Release version, without leading v. Example: 1.17.11+opencodez.4"
required: true
type: string
binary_version:
Expand Down Expand Up @@ -63,15 +63,15 @@ jobs:

semver='^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$'
if [[ ! "$release_version" =~ $semver ]]; then
echo "release_version must be semver-like, for example 1.17.8+opencodez.2" >&2
echo "release_version must be semver-like, for example 1.17.11+opencodez.4" >&2
exit 1
fi
if [[ "$release_version" != *opencodez* ]]; then
echo "release_version must be OpenCodez-specific, for example 1.17.8+opencodez.2" >&2
echo "release_version must be OpenCodez-specific, for example 1.17.11+opencodez.4" >&2
exit 1
fi
if [[ ! "$binary_version" =~ $semver ]]; then
echo "binary_version must be semver-like, for example 1.17.8" >&2
echo "binary_version must be semver-like, for example 1.17.11+opencodez.4" >&2
exit 1
fi

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/storybook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
- "bun.lock"
- "packages/storybook/**"
- "packages/ui/**"
- "packages/session-ui/**"
pull_request:
branches: [dev]
paths:
Expand All @@ -17,6 +18,7 @@ on:
- "bun.lock"
- "packages/storybook/**"
- "packages/ui/**"
- "packages/session-ui/**"
workflow_dispatch:

concurrency:
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,15 @@ jobs:

- name: Run unit tests
timeout-minutes: 20
run: bun turbo test --output-logs=errors-only --log-order=grouped --log-prefix=task
run: GITHUB_ACTIONS=false bun turbo test
env:
OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: ${{ runner.os == 'Windows' && 'true' || 'false' }}

- name: Check generated client
if: runner.os == 'Linux'
working-directory: packages/client
run: bun run check:generated

- name: Run HttpApi exerciser gates
if: runner.os == 'Linux'
working-directory: packages/opencode
Expand Down Expand Up @@ -99,7 +104,8 @@ jobs:
- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: "24"
# Playwright 1.59 hangs while extracting Chromium with Node 24.16.
node-version: "24.15"

- name: Setup Bun
uses: ./.github/actions/setup-bun
Expand Down
7 changes: 4 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Examples: `fix(tui): simplify thinking toggle styling`, `docs: update contributi
- Rely on type inference when possible; avoid explicit type annotations or interfaces unless necessary for exports or clarity
- Prefer functional array methods (flatMap, filter, map) over for loops; use type guards on filter to maintain type inference downstream
- In `src/config`, follow the existing self-export pattern at the top of the file (for example `export * as ConfigAgent from "./agent"`) when adding a new config module.
- In Effect generators, bind services to named variables before calling methods. Do not use nested service yields such as `yield* (yield* Foo.Service).bar()`.

Reduce total variable count by inlining when a value is only used once.

Expand Down Expand Up @@ -137,7 +138,7 @@ const table = sqliteTable("session", {

## Testing

- Avoid mocks as much as possible
- Avoid mocks as much as possible, you shouldn't be using globalThis.\* at all unless it's the only option.
- Test actual implementation, do not duplicate logic into tests
- Tests cannot run from repo root (guard: `do-not-run-tests-from-root`); run from package dirs like `packages/opencode`.

Expand All @@ -152,7 +153,7 @@ const table = sqliteTable("session", {
- Keep `SessionExecution` process-global and Session-ID based. Its local implementation owns the process-local Session coordinator and discovers placement through `SessionStore` plus `LocationServiceMap.get(session.location)` only when a drain starts; no layer should take a Session ID. V2 interruption targets the active process-local ownership chain for that Session; idle or missing interruption is a no-op.
- Keep `SessionRunner`, model resolution, tool registry, permissions, and filesystem Location-scoped. Omitted `Location.workspaceID` means implicit-local placement; explicit workspace identity remains reserved for future placement semantics.
- Preserve one explicit `llm.stream(request)` call per provider turn and reload projected history before durable continuation. Do not bridge through legacy `SessionPrompt.loop(...)` or delegate orchestration to an in-memory tool loop.
- Keep local Session drains process-local until clustering is implemented. `SessionRunCoordinator` joins explicit same-Session resumes, coalesces prompt wakeups, and allows different Sessions to run concurrently. Advisory wakes drain eligible durable inbox rows only; post-crash activity recovery requires a separate explicit design before it may retry provider work.
- Keep delivery vocabulary explicit. Prompts steer by default and coalesce into the active activity at the next safe provider-turn boundary. Explicit `queue` inputs open FIFO future activities one at a time after the active activity settles.
- Keep local Session drains process-local until clustering is implemented. `SessionRunCoordinator` joins explicit same-Session resumes, coalesces prompt wakeups, and allows different Sessions to run concurrently. Advisory wakes drain eligible durable inbox rows only; post-crash continuation recovery requires a separate explicit design before it may retry provider work. A drain has no durable identity or transcript boundary.
- Keep delivery vocabulary explicit. Prompts steer by default and promote at the next safe provider-turn boundary while the current drain requires continuation. An explicit `queue` input remains pending until the Session would otherwise become idle; promote one queued input at that boundary, then reevaluate continuation before promoting another. Promoting any new user input resets the selected agent's provider-turn allowance; a batch of steers resets it once.
- Keep EventV2 replay owner claims separate from clustered Session execution ownership.
- Keep the System Context algebra, registry, and built-ins in `src/system-context`; keep Context Source producers with their observed domains, and keep Session History selection plus Context Epoch persistence Session-owned.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 1.17.11+opencodez.4

Merged upstream OpenCode `1.17.11` into OpenCodez.

Kept the OpenCodez release/update path, branding, web server seeding, prompt controls, and project discovery/indexing safety guards. Fixed the OpenCodez updater to treat release build metadata such as `+opencodez.4` as a real update target.

Upstream changes include server-aware session routes, session snapshots/revert controls, MCP resource/template support, plugin API v2, desktop/web polish, and provider integration updates.

## 1.17.8+opencodez.2

Web can seed default server connections from environment config.
Loading
Loading