Skip to content

OpenCode Desktop — Context Governor + Abort Handling

Choose a tag to compare

@kianwoon kianwoon released this 29 Aug 17:25
· 532 commits to main since this release

OpenCode Desktop — Context Governor + Abort Handling

Follows v1.18.25-fork.2 · Commits 0b8be202fd..3f3475a5d8

This release adds the context governor slice — token-efficient turns
through per-agent budgets and repository-aware context — and fixes the
"operation was aborted" misclassification investigated earlier today.
It contains all harness enhancements from fork.1 and fork.2.

New in This Build

🪟 Context Governor (core)

Token-efficient turns via four coordinated slices:

  • Context governor slice — per-turn token discipline for the runner
  • Per-agent tool catalog visibility — agents see only the tool surface
    their config allows, trimming schema overhead from every request
  • Repo-index system context source — repository structure surfaced as
    context the same way environment/instructions are (delta-updated,
    epoch-persisted)
  • Per-agent context budget for compaction — compaction targets resolve
    per agent instead of one global number

🔇 Abort handling fixed (core)

The "operation was aborted" turns are now what they always were — aborts —
instead of mysterious UnknownError failures:

  • Bun's fetch rejects aborts as a plain Error; error classification now
    recognizes aborts by shape and reports MessageAbortedError
  • The LLM stream scope logs a warning when it closes while the stream is
    still live, so any early teardown is diagnosable in server.log
  • Investigation note: the suspected "per-turn output limit" was disproven —
    zero length finishes; max observed output was 4,166 of 131,072 tokens

🖥️ App

  • Review pane resizes properly (resize handle visibility, 100px minimum)

Still Included (from earlier fork releases)

  • ⚡ Workflow DAG engine (default ON) — parallel subagent pipelines,
    admission validation, failure propagation, deadlock detection
  • 🧠 Task assessor + effort governor — heuristic task profiles,
    pre-escalated reasoning effort, request_effort
  • 🗜️ Context optimizer — KV-cache-aware pruning (~90% hit rate)
  • ✅ Verification gate (opt-in) — risk-gated reviewer passes
  • ⏰ Followup delivery + 💾 durable background job records
  • Review hardening from fork.2 (poison-part fix, job-record serialization,
    dispatch-side e2e gates)

Verification

  • Full test sweep green (prompt loop, workflow e2e + unit, verification,
    job records, effort router, error classification); typecheck clean across
    schema, core, opencode
  • CLI binary 0.0.0-main-202608291721 (smoke-tested)
  • Desktop assets packaged via the full OPENCODE_CHANNEL=prod chain with the
    acceptance gate passing:
    ✅ Verified prod build: node-BfLt17kg.js embeds channel "prod" and uses opencode.db

Downloads (macOS arm64, prod channel)

  • opencode-desktop-mac-arm64.dmg
  • opencode-desktop-mac-arm64.zip