Repository navigation
deps: bump @opencode/codemode to 2.2.7 - #7
Merged
Merged
Conversation
Keep Effect 4.1.0 and Acorn 8.15.0. The legacy engine now passes an idempotency key into plain tool execute; the Pi bridge still forwards only decoded input. for...in and require stay rejected. Co-authored-by: hyein.sophia.cho <hyein.sophia.cho@gmail.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
Contributor
There was a problem hiding this comment.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
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
Bump the exact
@opencode/codemodepin from 2.2.6 to 2.2.7. Effect stays 4.1.0 and Acorn stays 8.15.0, matching the published exact dependencies. The default engine remains the legacy interpreter.engine: "vm",Tool.idempotent,Tool.durable, and extension snapshot hooks are not enabled.2.2.7 passes each legacy
executea<runId>:<callId>idempotency key. This bridge still forwards only the decoded input to Pi, counts each admitted call once, and does not store the key.for...inandrequirebehavior is unchanged and stays rejected before runtime construction or host effects.7bf2f4c7ff4102a86edef55b56b39504b1dfd21b770c79767b4775add7c3ab2e2298bc3bc2c05aa3Artifacts
Registry
https://registry.npmjs.org/.npm view @opencode/codemode dist-tags.latest --json --prefer-onlinereturned"2.2.7"at 2026-11-10T15:01:02Z (exact stable semver; semver 7.8.6compare("2.2.7", "2.2.6") === 1; no prerelease). Published 2026-11-10T10:31:48.196Z. The published package has nogitHead,engines, peerDependencies, or peerDependenciesMeta. Repository:git+https://github.com/anomalyco/opencode.git(packages/codemode).@opencode/codemode(old)sha512-pOV+PwhZbcVySVgKY29LThmdhVSkx/HC3/A+a9KbrhZx/sgxQTXMXthu6P/hWCcER5hGKiGU6g8P7m6bV/kKMg==@opencode/codemode(new)sha512-O5SEXzL2MimhIsIJ644YVFYjBHN20KMdjuWXkFMOeUG1VZ2eEd360YubUiUbzr6SzUEQM6Jy+IkHVg2zGDR+QA==effectsha512-lGx2MJJyrXA8RZb2UpQ/0Nkb5Utaimby7oD92+18noBxLPE85IFOvptdzau8dvcxAOwfwHo9iqapbKeFzqQM/Q==Both tarballs were integrity-checked and extracted with path-escape rejection. The lockfile diff is only the CodeMode version, tarball, and integrity. One Effect module is loaded by the extension and by CodeMode.
There is no package
gitHead. The published package diff is the comparison baseline. The v2.2.7 notes do not describe this package's runtime change.Effect
2.2.7 depends on
effectexactly4.1.0, the same exact dependency as 2.2.6. The extension pin stays 4.1.0 so both sides share one Effect runtime. It is not widened and not upgraded past the published dependency. Acorn stays the shared exact8.15.0. Pi/TUI peer ranges and the Node>=22.19.0engine stay unchanged. The default lockfile host remains Pi/TUI 1.5.0.Change-to-test map
execute(input, { key })(dist/tool.js,dist/tool-runtime.js). A plain tool is not tagged idempotent or durable. One run shares a UUID and assigns:0,:1, ….toolCallsstay{ name }andmaxToolCallsstill counts every admission. The extension'sexecuteignores the extra argument, so Pi receives only the decoded input and stored call records stayname/args/status/durationMs. New assertion:legacy host calls receive an idempotency key without changing input or call accounting. A direct probe of 2.2.6 sawcontextomitted; no production change was required, so there is no fail-before/pass-after of a source fix.key;hookedgains an optional detach flag. This extension does not pass CodeMode hooks. Existing Pi permission/result hook and nested-call tests still cover the public host path. VM detach behavior is out of scope.CodeMode.makewithoutenginestill exposes onlycatalogandexecute. Existingprogram/resumeabsence assertions still apply. VMProgramOptions, durable/idempotent suspend, and extensionsnapshothooks are out of scope and not enabled.for...inandrequire/ dynamicimport()are unchanged in the published interpreter sources. Existing preflight, no-host-effects, and installed-runtime probes still apply. Direct comparison of the two artifacts reproduced the same key lists and the samerequire("crypto")/import("url")results. The allowlist is not expanded.Interruptionmoved fromrunner.jstocallback.jswith the same stated semantics. Existing early-return, race-loser, cancellation, and literal deadline tests cover it. A directPromise.raceprobe still aborted the loser (start, thenabort) on both versions.typesbeforeimport) and the newProgramOptionstype export do not change the ESM entry. Out of scope beyond confirming the installed entry still loads.Verification
Local scope only. Linux 6.12.113+ x86_64. CodeMode 2.2.7, Effect 4.1.0, one shared Effect instance, Acorn 8.15.0.
PI_OPENCODE_UPSTREAM_VERSIONandPI_OPENCODE_TEST_VERSIONwere unset.PI_OPENCODE_SDKwas set only to the isolated install under test. Scripted assistant stream; no live model API.npm ci --ignore-scriptsin a fresh copynpm test(noPI_OPENCODE_SDK)PI_OPENCODE_SDK=$PWD/node_modules/@earendil-works/pi-coding-agent npm testnpm run test:pi-versionsnpm run test:pi-versionsnpm run test:pi-versionsnpm pack --dry-run --jsonpi-opencode-mode-0.2.0.tgz, 11 files. No lockfile,node_modules, or secretsgit diff --checkParent matrix counts are the 3 Pi cells. Inner-suite counts are the 116-test
npm testruns. The literal deadline probe still runs inside each SDK suite. The clean-copy harness audits the default Pi/TUI 1.5.0 tree before installing each older pair.Verified for that local Node/OS/Pi/TUI scope. Pending: hosted Modal CI (Node 22.19.0 and 24.x × Pi 0.99.0, 1.3.0, 1.4.0) has not run on
770c79767b4775add7c3ab2e2298bc3bc2c05aa3. macOS was not exercised. No live-provider run and no new benchmark.Docs
README compatibility text, the Unreleased changelog entry, and the current TESTING baseline now name CodeMode 2.2.7. Effect stays 4.1.0. Historical changelog entries, the published 0.2.0 section, and dated verification records still name the versions they measured.