Repository navigation
build: package a pinned OpenCode v2 experiment - #8
Merged
EricWvi merged 3 commits intoOct 21, 2026
Merged
Conversation
This was referenced Oct 20, 2026
wanglongan587
force-pushed
the
build/297-opencode-v2-probe
branch
from
October 21, 2026 03:42
bfe23a6 to
4cc6d86
Compare
wanglongan587
marked this pull request as ready for review
October 21, 2026 03:42
ObsisMc
approved these changes
Oct 21, 2026
ObsisMc
left a comment
Collaborator
There was a problem hiding this comment.
Approving at 4cc6d860c82a91d296f1d81fcc92e9f7783b3120.
Checked:
- Every changed file is a deliverable (code, tests, CI, README, lock, version); no tag, release, or marketplace change.
- ADR status is stated (no ADR behavior change; the shared runtime and plugin-owned model adapter ADRs are not completed here).
- npm pinning:
resolveNpmUpstreamrequires each platform package to be listed in the parent'soptionalDependenciesat the same version, with aregistry.npmjs.orgtarball and a well-formed SHA-512 SRI. Packaging verifies the SRI before writing or extracting, and rejects lock/config drift or mixed npm/GitHub integrity sources. Network access forpackageis limited toregistry.npmjs.org. --cwdremoval: both spawn sites now runopencode acpwith the host-provided cwd; no extra spawn path. Model discovery's existingsession/deletecapability check matches the new README note.
Non-blocking:
- Merging switches
mainto the v2 experiment. With a fixed npm pin, nightlysync --checkalways reports current, so v1 users stop receiving upstream updates, and a 0.6.x hotfix can no longer be cut frommain. Whether and when this lands onmainis a maintainer decision; the Merge Danger section already notes it. - Stale comments for the npm path in
scripts/package.ts: the digest comment still refers to GitHub's Releases API, and the extraction comment still says the CLI is the sole entry at the archive root. The header of.github/workflows/upstream.yml("Watches GitHub releases") is also outdated. upstream.yml's patch bump does$((PATCH + 1)), which fails on a suffixed version like0.7.0-opencode2.1. It only runs when the lock is behind the config, so it is unreachable today.- The summary calls OpenCode 2.0.32 a "prerelease"; the prerelease is the plugin version (
0.7.0-opencode2.1). Worth wording precisely.
This was referenced Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Package an explicitly pinned OpenCode 2.0.32 prerelease and start ACP using the host process working directory. V2 rejects the former
--cwdargument before the ACP handshake.Adds npm archive support while retaining GitHub Release packaging, and lets the host simulator exercise an extracted package. Version:
0.7.0-opencode2.1. No marketplace update or release is included.Refs ora-space/circus#297
ADR status: no ADR behavior change. Packaging and CLI invocation preserve the existing host-owned process/ACP boundary. Host history and UI changes are outside this PR; this prerelease does not complete the shared runtime ADR or the approved plugin-owned model adapter ADR.
Rebased onto main
e518360Rebased over #11 (the Agent declaration behind
--agent-configuration). The two changes compose instead of replacing each other:buildBundledPackagekeeps bothincludeDeclarationandnpmAsset, and the call site passesincludeDeclarationtogether withpinned.npm. Packaging without the flag is unchanged; with the flag the declaration is still staged into every package, read back, and bound intodist/manifest.toml.Evidence
Unrecognized flag: --cwd, so ACP initialize times out.After: packaged entrypoint passes initialize, session creation, model discovery, Effect coordination/readiness/restart, and stop in the host simulator.
deno task check,deno task lint,deno test scripts/upstream.test.ts(archive integrity),deno task test(packaging), anddeno task sync --check(upstream.lock.json is current: anomalyco/opencode@2.0.32) pass, and GitHub Actions CI is green.opencode v2.0.32.Merge Danger
Door: two-way
Blast Radius: packaging
Merging changes the bundle configuration to an explicit v2 prerelease pin; nightly synchronization will check that fixed npm version instead of following new v1 GitHub releases. Publishing or replacing the marketplace package requires a separate release decision. Host history must preserve metadata before child text can reliably survive reload.