Skip to content

Upstream: @opencode/plugin@2.2.5 + @opentui/core@0.8.0 + @opentui/solid@0.8.0 compatibility report #98

Open

Description

@devin-ai-integration

TL;DR: Nothing breaks. All five V2 plugins need only a pin bump (@opencode/plugin 2.2.5, plus @opentui/{core,solid} 0.8.0 where pinned). The V1-only prompt-inheritance plugin is unaffected. No published version breaks for users on OpenCode 2.2.5, and no peer range needs tightening. The prompt sync is still broken (#96), and upstream V1 prompts haven't changed since #97.

Base: main @ cb6d3dde2. Bumps: @opencode/plugin 2.2.0 → 2.2.5 (v2.2.4, v2.2.5, compare v2.2.3...v2.2.5), @opentui/core + @opentui/solid 0.7.0 → 0.8.0 (release). #96 covers 2.2.1 and #97 covers 2.2.2–2.2.3 and OpenTUI 0.8.0, so this report only covers the 2.2.4 and 2.2.5 delta. OpenTUI 0.8.0 is still the latest release, so the #97 analysis still applies.

Per-plugin verdict

Package (published latest) Verdict Peer range Notes
opencode-agents-loader (2.0.2) needs pin bump only >=2.0.2 <3: OK host-resolve tests pass
opencode-adversarial-review (2.0.2) needs pin bump only >=2.0.2 <3: OK smoke passes
opencode-double-tap-timeline (2.0.1) needs pin bump only (all three) @opentui/* >=0.5.10: OK
opencode-output-styles (2.2.0) needs pin bump only (all three) >=2.2.0 <3, @opentui/* >=0.6.6: OK smoke passes (server + TUI)
opencode-ram-monitor (2.1.1) needs pin bump only (all three) >=2.1.0 <3, @opentui/* >=0.6.6: OK smoke passes
opencode-agent-prompt-inheritance (1.0.1, V1) unaffected @opencode-ai/plugin >=1.19.3 <2 doesn't depend on either package

Gate results

Scratch copy of main with the dev pins bumped in 5 packages. bun install resolved @opencode/plugin 2.2.5 (and its @opencode/* 2.2.5 deps), @opentui/{core,solid} 0.8.0 and solid-js 1.9.17. Run on Bun 1.4.4 with Node 24.19.

Gate Result
bun run typecheck ✅
bun run lint ✅
bun run test ✅ guard 61/61; loader 28, timeline 18, output-styles 99, ram-monitor 77, adversarial-review 70, prompt-inheritance 39; 0 fail
bun run build ✅
smoke: adversarial-review / output-styles / ram-monitor (Bun 1.4.4) ✅ / ✅ / ✅
same smokes on Bun 1.3.12 (repo packageManager) ✅ / ❌ / ❌: the ResolveMessage not-instanceof Error issue from #96 (Cannot find module '…/rpc' / '…/server'). Not caused by this bump.

Upstream changes that matter (2.2.4, 2.2.5)

Plugin SDK: the npm tarball diff from 2.2.3 to 2.2.5 is additive only. The OpenTUI peers stay >=0.8.0 (optional).

  • New ctx.experimental.artifact.{transform, reload} for Effect and Promise plugins, plus new dist/{effect,promise}/artifact.* and an Artifact re-export (#60351). In promise/adapter.js the only change is the new artifact block. host.js (the package resolver) and dist/tui/* are unchanged. No plugin here uses artifacts.
  • Host side (packages/core/src/plugin/host.ts): wiring for the artifact service, and four new built-in tools artifact_create / artifact_read / artifact_update / artifact_delete, opt-in via experimental.artifacts. No plugin here registers a tool with these names.

Tools / commands / keymaps:

  • A call to a tool named bash now runs as shell, and a plugin tool actually named bash still wins (#60687). No plugin here registers a bash tool. opencode-agents-loader already maps bash → shell for permissions (agent-source.ts), so the two agree.
  • No commits in range touch packages/tui/src/plugin, packages/tui/src/keymap or packages/core/src/command. There are no new built-in slash commands. The new shortcuts (Ctrl+Alt+./O/B, Ctrl+Shift+X) are Desktop-only (#60579, #60713). /ram, /output-style, /adversarial-review and /constructive-review still don't collide with anything.

TUI:

  • Prompt cursor styles that plugins set now survive theme or prompt-state changes (new useCursorStyle memo, #60599). This is a host bug fix. No plugin here sets cursor styles.

Config loading:

  • New experimental.artifacts key, and compaction.buffer now accepts a percentage ("20%") (#60647). Local config can now override Console-supplied provider settings (5759491ca). None of this touches plugin entries or the plugins key. Package resolution didn't change.

Are published versions broken on OpenCode 2.2.5?

No. The only runtime change in @opencode/plugin is the additive experimental.artifact domain, and the resolver and TUI runtime are unchanged. The published TUI bundles mark @opentui/* and solid-js as external, and #97 already checked them against OpenTUI 0.8. Caveat: this rests on tests, the built-artifact smokes and tarball diffs. I didn't run a live OpenCode 2.2.5 TUI session.

Peer ranges

No tightening needed. Nothing new is used. Raising the @opentui/* peers to >=0.8.0 would exclude OpenCode 2.2.0–2.2.2 hosts, which ship OpenTUI 0.7.

For the pin-bump PR (not applied):

// packages/{opencode-double-tap-timeline,opencode-ram-monitor,opencode-output-styles}/package.json → devDependencies
"@opencode/plugin": "2.2.5",
"@opentui/core": "0.8.0",
"@opentui/solid": "0.8.0",
// packages/{opencode-agents-loader,opencode-adversarial-review}/package.json → devDependencies
"@opencode/plugin": "2.2.5",

Bump all three together. The SDK's >=0.8.0 OpenTUI peer isn't met by the current 0.7.0 dev pins, and a Dependabot bump of the SDK alone would hit that. Keep the peer strings different from the dev pins (AGENTS.md Dependabot rule); they already are.

Vendored prompt sync (opencode-agent-prompt-inheritance)

Did upstream prompts change? No. I ran bun run sync:prompts in the scratch copy:

  • default ref dev: fails with a 404, because dev has no packages/opencode/ any more.
  • OPENCODE_UPSTREAM_REF=v1: fails on copilot-gpt-5.txt: 404, deleted in #59669.
  • The last commit to the V1 prompt dir is still b01498d3f (2026-10-27). Compared byte for byte with v1, anthropic / beast / codex / gemini / gpt / kimi / trinity are identical. default.txt still has the known drift (548648a3d). No vendored file changed.
  • The Sync OpenCode Prompts workflow is still failing daily (Oct 27–30). The fix suggested in Upstream: @opencode/plugin@2.2.1 compatibility report #96 still applies:
// scripts/sync-upstream-prompts.ts
const ref = process.env.OPENCODE_UPSTREAM_REF ?? "v1"; // `dev` is V2-only
// and drop "copilot-gpt-5.txt" from ALLOWED_FILES (removed upstream in #59669)

Method: npm tarball diff of @opencode/plugin 2.2.3 vs 2.2.5. Upstream release notes and per-path commit history for v2.2.3..v2.2.5. Gates and smokes ran in a throwaway copy that has since been deleted. Nothing was pushed or committed.

Written by Devin

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions