Skip to content

fix(cli): accept OpenCode 1.19.4 and Qwen 0.26.2 under Seatbelt (TASK-319) - #2902

Merged
lilyshen0722 merged 1 commit into
mainfrom
rivet/task319-tested-versions
Oct 27, 2026
Merged

lilyshen0722 merged 1 commit into
mainfrom
rivet/task319-tested-versions

Conversation

@lilyshen0722

Copy link
Copy Markdown
Contributor

Written by Rivet, a Commonly agent — https://commonly.me/v2/pods/6a8f6dc7a1dccf2e02f31015 (TASK-319)

Tier 1 (cli/, two version-list entries plus tests). One code gate plus the connector-ops cli lane review. Publishes to npm on merge; no prod deploy.

Why

The D146 prod walk on 10-27 (cli 0.1.190, macOS) ran today's releases on a public Seatbelt seat, the BYO default. OpenCode 1.19.4 passed in 10.2 s (reply 96312) and Qwen Code 0.26.2 in 16.5 s (reply 96318). Both passed only with COMMONLY_OPENCODE_ALLOW_UNTESTED_VERSION=1 / COMMONLY_QWEN_ALLOW_UNTESTED_VERSION=1, because the tested lists stopped at OpenCode 1.19.0 and Qwen 0.25.1. Without the override, a new user on the latest opencode or qwen is refused on their first turn.

Change

  • cli/src/lib/adapters/opencode.js:68: TESTED_OPENCODE_VERSIONS gains 1.19.4, appended last because the mismatch message reads the newest entry from the end.
  • cli/src/lib/adapters/qwen.js:20: TESTED_QWEN_VERSIONS gains 0.26.2. The header comment names both versions.
  • Tests: each list is pinned exactly. A public seat accepts each new version without the override and without a warning. The next untested patch is still refused (OpenCode 1.19.5 as "newer than", Qwen 0.26.3). The existing OpenCode refusal messages now list three versions.

cli/package.json version is untouched.

Proof

  • adapters.opencode + adapters.qwen: 91/91 locally (Node 22).
  • Mutation: removing 1.19.4 turns 12+ opencode tests red, including the accept case; removing 0.26.2 turns 4 qwen tests red, including the accept case.
  • Full cli suite: only mention-event-types.contract fails locally, because it needs backend deps that aren't installed in this worktree. It doesn't touch these files; CI is the authority.

Not in this PR

  • Docs that name the old lists: docs-site/bring-your-own/opencode.mdx:7 ("tested OpenCode versions 1.18.35 and 1.19.0"), the sample warning at docs/cli/opencode.md:135, and the claim-table row docs/audits/claim-table.md:114 that quotes opencode.js:68. Kept out to keep this the smallest change; they're a docs follow-up.
  • From the row: the adapters ignore an operator's own model config, and that is intended. OpenCode drops inherited OPENCODE_CONFIG* and writes its own per spawn (opencode.js:560-567, commented: a parent launcher's injected config must not reach a seat). Public Qwen keeps only the PUBLIC_SAFE_ENV allowlist, with a fresh HOME and settings (qwen.js:24, :135-145), so an env.sh model config is ignored. Both take the provider from environment.provider with a keyFile.

🤖 Generated with Claude Code

Written by Rivet, a Commonly agent — https://commonly.me/v2/pods/6a8f6dc7a1dccf2e02f31015 (TASK-319)

The D146 prod walk on 10-27 (cli 0.1.190, macOS) ran the current
releases, OpenCode 1.19.4 and Qwen Code 0.26.2, end to end on a public
Seatbelt seat. Both passed, but only with the untested-version override,
because the tested lists stopped at OpenCode 1.19.0 and Qwen 0.25.1. A
new user on today's releases was refused on their first turn.

Both versions join their tested lists. Tests pin each list, accept each
new version on a public seat without the override, and still refuse the
next untested patch (OpenCode 1.19.5, Qwen 0.26.3). Removing either new
entry turns those tests red.

TASK-319

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: rivet <WyJyaXZldCIsImRlZmF1bHQiXQ@agents.commonly.invalid>
Agent-Model: claude/claude-opus-5-5/default
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between f0d609f and fdb3ba5.

Files selected for processing: 4
  • cli/__tests__/adapters.opencode.test.mjs
  • cli/__tests__/adapters.qwen.test.mjs
  • cli/src/lib/adapters/opencode.js
  • cli/src/lib/adapters/qwen.js

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.

Walkthrough

The OpenCode and Qwen adapters add versions to their smoke-tested version lists. Their tests cover accepted versions and version-drift refusals.

Changes: CLI version coverage

Layer / File(s) Summary
OpenCode version coverage
cli/src/lib/adapters/opencode.js, cli/__tests__/adapters.opencode.test.mjs
The adapter adds OpenCode 1.19.4 to its smoke-tested versions. Tests cover version acceptance, refusal messages, and an unknown-version message for announcements containing multiple versions.
Qwen version coverage
cli/src/lib/adapters/qwen.js, cli/__tests__/adapters.qwen.test.mjs
The adapter adds Qwen Code 0.26.2 to its smoke-tested versions. Tests cover acceptance of both listed versions and refusal of versions 0.26.0 and 0.26.3.

Priority: Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related PRs

  • Team-Commonly/commonly#2858: Adds a CLI compatibility matrix with the OpenCode and Qwen versions updated here, and tests version acceptance and next-patch refusal boundaries.
Merge Risk: Minimal · up to fdb3b

The new versions have corresponding acceptance and refusal tests. No actionable merge risk is identified beyond normal checks.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title names the two version-list changes (OpenCode 1.19.4 and Qwen 0.26.2 accepted under Seatbelt), which match the diff's main purpose. It also carries the TASK-319 reference and a conventional-c…
Description check Passed The description states the motivation (public Seatbelt seat refusals without untested-version overrides), the exact list changes in opencode.js and qwen.js, the added tests, and the local test evidenc…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the two version-list changes (OpenCode 1.19.4 and Qwen 0.26.2 accepted under Seatbelt), which match the diff's main purpose. It also carries the TASK-319 reference and a conventional-commit prefix. The title is specific and accurate, so it passes.

Full details: Description check

Explanation

The description states the motivation (public Seatbelt seat refusals without untested-version overrides), the exact list changes in opencode.js and qwen.js, the added tests, and the local test evidence. It also notes documentation left out of scope. It is clearly related to the changeset, so it passes.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@lilyshen0722 lilyshen0722 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gate on #2902 at fdb3ba5. I read the diff and the adapter code at that head. I did not run the CLI test suite.

  1. PASS. The source change is the two list entries, opencode.js:68 (1.19.4 added last) and qwen.js:20 (0.26.2 added), plus the qwen.js:1 header comment. OpenCode's "newer than" boundary reads the last entry (opencode.js:633-636), so 1.19.4 sets it. The Gemini gate reads only [0] (opencode.js:718-720), so the order change does not touch it.

  2. PASS. The public-accept tests clear the override env and assert console.warn is never called. The OpenCode one is adapters.opencode.test.mjs:1080-1112 and the Qwen one is adapters.qwen.test.mjs (the accepts smoke-tested Qwen %s without the override block). Both run for each new version.

  3. PASS. The next patches are refused. OpenCode 1.19.5 is covered by the new untested next-patch case, and Qwen 0.26.0 and 0.26.3 by the public version drift table. Removing 1.19.4 from TESTED_OPENCODE_VERSIONS fails the "records every" test, the accept test and the message regexes, because each one names the list. Removing 0.26.2 from TESTED_QWEN_VERSIONS fails the Qwen "records every" test and the accept case.

The walk claim ("both passed the D146 prod walk on a public Seatbelt seat") is outside this diff, so I did not verify it.

Written by Sable, a Commonly agent — https://commonly.me/v2/pods/6a692a1be833c668acdb84cf

GATE: PASS

@lilyshen0722 lilyshen0722 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Connector-ops CLI lane review at fdb3ba5.

  • Scope. Only the two smoke-tested version lists change: opencode 1.19.4 is added to 1.18.35, 1.19.0, and qwen 0.26.2 is added to 0.25.1. These are exactly the versions that passed end to end on prod on 10-27 (D146) under the override. No sandbox, Seatbelt or proxy logic changes.
  • Version line. cli/package.json is untouched (rule 57).
  • Tests.
    • The new versions are accepted on a public seat with no override and no warning.
    • The next untested patch is still refused with the override hint: opencode 1.19.5; qwen 0.26.0 and 0.26.3.
    • The existing older/newer/unknown refusals carry the new list.
  • CI is green at this head.

GATE: PASS

@lilyshen0722
lilyshen0722 added this pull request to the merge queue Oct 27, 2026
Merged via the queue into main with commit 587b1d2 Oct 27, 2026
28 checks passed
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.

1 participant