Skip to content

chore: release v0.82.0 - #584

Merged
stamp-build[bot] merged 1 commit into
mainfrom
agent/cindy/release-0.82.0
Oct 31, 2026
Merged

stamp-build[bot] merged 1 commit into
mainfrom
agent/cindy/release-0.82.0

Conversation

@stamp-build

@stamp-build stamp-build Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Cindy from open-agent-runtime opened this pull request through Stamp
View in Stamp →


Minor release: OpenCode 2.2.5 now shares one process between sessions under auto, with the same rules as 2.2.3.

Behavior changes for hosts

OpenCode 2.2.5 shares a process under auto (#581)

opencodeRuntime now admits exactly two OpenCode versions for shared placement: 2.2.3 (since 0.81.0) and 2.2.5. A host that runs OpenCode 2.2.5 on Linux x64, macOS arm64 or Windows x64 (as reported by the host's Node process.platform and process.arch) and opens sessions under auto, the default, now gets one shared native process when the 0.81.0 conditions below are met, instead of one process per session. Session.placement then reports shared, resources() describes the whole process (scope: "shared_process"; null on Windows), and disposal records released, as described in the 0.81.0 notes. An explicit shared request on 2.2.5 is now accepted instead of refused.

The 0.81.0 rules now apply to both versions:

  • The installed version must be 2.2.3 or 2.2.5 (2.2.5, v2.2.5 and opencode v2.2.5 are accepted), and the running process must report exactly "2.2.3" or "2.2.5" as agentInfo.version in initialize. The two need not match: an installation snapshot of 2.2.3 that launches an upgraded 2.2.5 executable still shares. Any other value, including 2.2.4, 2.2.6 or a pre-release such as 2.2.5-dev, keeps sessions isolated under auto and is refused for explicit shared.
  • Only sessions opened from the same Runtime instance with the same launch configuration share a process, and each canonical directory serves at most one session for the whole life of a shared process, including after release. In one directory, a later session's MCP server replaces an earlier one with the same name, and that registration stays until the process exits, on 2.2.5 as on 2.2.3. Reusing a directory starts a separate process under auto and is refused for explicit shared.
  • The other fallbacks and refusals are unchanged: custom launchArgs, a relative executable path, a relative home or XDG directory, a relative OPENCODE_CONFIG or OPENCODE_CONFIG_DIR, any relative or empty PATH entry (including the ./node_modules/.bin entry pnpm adds under pnpm run), and other platforms.
  • Hosts that select runtime.execution === "process" ? runtime.withPlacement("isolated") : runtime, as Raft, Ferry and rowrow do, keep isolated OpenCode sessions on every version.
  • The UnsupportedOptionError messages for the version, platform and initialize refusals now name both versions; match on option: "placement", not on the text.

The admission rests on a complete three-platform evidence run for 2.2.5: all seven native observations, cross-directory project discovery and user-configuration refresh pass on each platform, and in these samples ten shared sessions used less memory and idle CPU than ten separate processes (admission decisions) (#580). OpenCode's concurrent cold-start database race between separate processes, and its missing MCP tools after a cold resume, still reproduce on 2.2.5 (Linux x64 check) and remain known native limitations.

Tests and CI

  • The check job now installs OpenCode 2.2.5 for the shared session behavior suite, the real shared and isolated lifecycle checks, and the isolated tool-cleanup check. CI no longer runs native OpenCode 2.2.3; its admission rests on its recorded evidence and on unit tests, with a scripted agent, of the version gate for both versions (feat(opencode): admit measured 2.2.5 shared placement #581).
  • The ACP and stream-json cancellation cleanup tests now wait on Windows for the background process-table warm-up before their first abort, require both pre-cancel reads to succeed, and report each read and the exit reason when they fail. A new test on every platform holds a background read and checks both outcomes: an abort whose one-second read expires in the queue leaves the first turn's tool running after disposal and reports unverified cleanup, and an abort after the read completes cleans up everything (test(cleanup): distinguish prepared cancellation from queued expiry #582).
  • Three tests that wait for the final exited or terminal cleanup record now allow 15 seconds instead of one or five, room for three five-second Windows process-table reads, and print the session records when they fail (test(cleanup): wait for final asynchronous exit records #583).

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stamp-build
stamp-build Bot merged commit 865126b into main Oct 31, 2026
36 checks passed
@stamp-build
stamp-build Bot deleted the agent/cindy/release-0.82.0 branch October 31, 2026 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants