Skip to content

feat(opencode): accept OpenCode 1.19+ 1.x releases - #23

Open
felipecrs wants to merge 1 commit into
xhluca:mainfrom
felipecrs:feat/opencode-1-19-support
Open

felipecrs wants to merge 1 commit into
xhluca:mainfrom
felipecrs:feat/opencode-1-19-support

Conversation

@felipecrs

@felipecrs felipecrs commented Oct 23, 2026 •

Copy link
Copy Markdown

Fixes #22

Problem

OpenCode 1.x is still maintained: 1.19.4 is the newest release on npm. The version gates only accepted the exact 1.17.20 pin or a validated 2.0.x release, so any transfer touching a 1.19.x CLI failed with:

OpenCode source CLI version mismatch: expected 1.17.20 or supported 2.0.x, observed 1.19.4

Resulting behavior

Any 1.19+ 1.x release is now accepted, since the public export, import, and session-list shapes are unchanged within the family, alongside the existing validated 2.0.x. The pinned integration target moves from 1.17.20 to 1.19.4, so writer metadata, the unvalidated-version baseline, and the CI-installed binary follow the newest 1.x release. Releases other than the exact pin still emit the existing unvalidated_source_version / unvalidated_target_version warnings.

One decision to confirm: raising the floor means 1.17.20 and 1.18.x are now rejected. I kept a floor rather than a wider window because the corpus and native evidence are validated against one pinned binary per major line. If you'd rather keep 1.17.20 accepted as well, say so and I'll rebase.

How I tested it

  • uv run ruff check . and uv run ruff format --check src tests scripts .github/scripts .github/tests
  • python3 -m unittest discover .github/tests
  • uv run pytest -q: 1749 passed, 61 skipped
  • Live smigrate transfer --dry-run on a real 1.19.4 OpenCode session: 18 portable records, clean exit, and no version mismatch
  • Gate boundary cases in test_version_schema_gate: 1.19.0 and 1.19.4 accepted, 1.17.20, 1.18.9 and 1.0.0 rejected, 2.0.x unchanged

Notes

  • The native corpus captures were produced by a 1.17.20 binary. The route oracle now expects the source-version notice exactly when a capture predates the pin, so recapturing with 1.19.4 needs no oracle change.
  • On macOS, the machine-level /Library/Application Support/opencode enabled_providers whitelist cannot be redirected with environment variables and can hide the synthetic test provider. The loopback tests probe for this and skip when it happens.

@github-actions

Copy link
Copy Markdown

🟢 Contributor eligibility requirements met for @felipecrs.

  • 🟢 Account created: 2017-06-20; age: 3412 days (required: at least six calendar months).
  • 🟢 Contributions dated on or before 2026-09-23: 1808 or more (required: at least 100).

Pull request authors must have a GitHub account at least six calendar months old and at least 100 GitHub contributions dated on or before the date one calendar month before the check.

See the contributor eligibility policy.

@felipecrs
felipecrs force-pushed the feat/opencode-1-19-support branch from 0ea8d72 to b5a49b4 Compare October 23, 2026 23:28
@felipecrs
felipecrs marked this pull request as ready for review October 23, 2026 23:32
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.

Please support newer OpenCode 1.x versions (1.19.x)

1 participant