opencode 1.0.42
Stable release from main branch. Goal execution now preserves user intent across concurrent turns, and Hooks enforce their execution, decision, and cancellation contracts.
馃幆 Features
- Goal turn budgets: use
/goal --max-turns N <objective>to set a total budget and/goal resume --max-turns Nto increase it while preserving turns already used (#572).
馃悰 Bug Fixes
- Goal verdict races: serialize judgment commits with user, loop, shell, and control-command admission; recheck the current message boundary, Goal revision, and automation lease before accepting a delayed result (#568).
- Uninterrupted Goal progress: autonomous questions return without waiting for interactive input; ordinary user turns keep normal questions. Repeated status queries and subgoal edits no longer replace work boundaries, consume extra turns, or strand a continuation (#569, #570).
- Production Goal commands and reconnects: explicitly provide Goal to the production prompt runtime. Preserve the last known Goal after a reconnect error, clearing it only on a confirmed 404 (#571, #575).
- Hooks enforcement and feedback: honor prompt stop/block and permission denials, retain valid siblings after malformed configuration, preserve feedback from failed tools and MCP calls, and claim one-shot hooks atomically (PR #567).
- Hooks lifecycle: constrain inspection commands to validated read-only operations, propagate timeout/cancellation to child work, preserve interrupted Bash output, and carry file-change events and asynchronous rewake across runtime boundaries (PR #567).
鈿欙笍 CI / Engineering
-
SpecGit record updates: reuse successful verification for identical product content, suite, platform, runner label, and UTC day. Only the root
.specgit.yamlrecord is excluded; source, policy, workflow, dependency, and documentation changes remain inputs. Cache misses and manual runs execute the full checks (#578). -
PTY environment verification: wait for the output assertion before allowing the shell to exit, removing the fixed five-second connection window. A six-second delayed connection passes with the new handshake (#574).
-
Branch reconciliation: review all 100 existing local branches and seven origin branches. Restore the 17 main-only commits to dev alongside the Goal delivery. Remaining historical differences are obsolete delivery metadata or an already-integrated HttpAPI fix; see the candidate branch audit (#576).
馃И Test Summary
opencode suite: 4571 pass, 0 fail, 23 existing skips, 1 existing todo
other workspaces: 1760 pass, 0 fail
Goal TUI reconnect: 6 pass, 0 fail
DAG coverage gate: 820 pass, all existing per-file floors met
typecheck: 29/29 packages green
lint: 4842 warnings, 0 errors, unchanged 4850 cap
HttpAPI composite: 3 x 230 pass, 0 fail, 0 skip, 0 missing
馃攳 Verification
Local verification used Bun 1.3.14. Real AppRuntime and SessionPrompt/GoalLoop integration tests cover production dependency wiring, delayed done/blocked/continue verdicts, 25 consecutive status queries, subgoal edits, concurrent user/loop/shell admission, and both autonomous and interactive questions. The final dependency grouping was separately rechecked with 88 passing production/prompt tests and the workspace typechecks. Standards and Spec reviews found no remaining blockers.
The release candidate includes the already-accepted Hooks delivery from PR #567. Each integration and promotion is gated by current-head CI and SpecGit acceptance. The official release workflow validates the reference templates against the releasing runtime, builds Linux/macOS/Windows archives, verifies macOS installation behavior, and publishes SHA256SUMS with the release assets. Live external model providers and MCP services are not claimed as validated.
Full changelog: graphagent-v1.0.41...graphagent-v1.0.42