Repository navigation
Description
TL;DR: Nothing breaks. @opencode/plugin 2.2.3 and OpenTUI 0.8.0 need a pin bump only in all five V2 plugins, and the V1-only prompt-inheritance plugin is unaffected. No published version breaks for users on OpenCode 2.2.3. No peer range needs tightening. One thing to watch: @opencode/plugin 2.2.3 now has @opentui/{core,solid} >=0.8.0 as a peer, so bump the three dev pins together. The prompt sync is still broken, as reported in #96, and upstream V1 prompts haven't changed since that report.
Base: main @ cb6d3dde2. Bumps: @opencode/plugin 2.2.0 → 2.2.3 (compare), @opentui/core + @opentui/solid 0.7.0 → 0.8.0 (release, compare). The 2.2.1 delta is already covered in #96, so this report focuses on 2.2.2 and 2.2.3.
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 |
real V2 host-resolve tests pass |
opencode-adversarial-review (2.0.2) |
needs pin bump only | >=2.0.2 <3: OK |
bun run smoke passes |
opencode-double-tap-timeline (2.0.1) |
needs pin bump only (@opencode/plugin + both OpenTUI pins) |
@opentui/* >=0.5.10: OK |
uses only useKeyboard + keymap.dispatch; the Node Host.resolve regression test passes |
opencode-output-styles (2.2.0) |
needs pin bump only (all three) | @opentui/* >=0.6.6: OK |
bun run smoke passes (server + TUI) |
opencode-ram-monitor (2.1.1) |
needs pin bump only (all three) | @opentui/* >=0.6.6: OK |
the only ScrollBox user; see below |
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 clone with the dev pins bumped in 5 packages. bun install moved @opencode/{plugin,ai,client,…} to 2.2.3, @opentui/{core,solid} to 0.8.0 and solid-js to 1.9.17. Run on Bun 1.4.4 with Node 24.
| Gate | 2.2.0 / 0.7.0 (baseline) | 2.2.3 / 0.8.0 |
|---|---|---|
bun run typecheck |
✅ | ✅ |
bun run lint |
✅ | ✅ |
bun run test |
✅ guard 61/61; packages 331/331 | ✅ 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 on adversarial-review / output-styles / ram-monitor (Bun 1.4.4) |
— | ✅ / ✅ / ✅ |
same smokes on Bun 1.3.12 (repo packageManager) |
— | ✅ / ❌ / ❌: same issue as before, documented in #96 (not caused by this bump) |
Loader and timeline have no smoke script. Their built-entry checks through the real @opencode/plugin/host resolver run inside bun test (they need node on PATH), and they pass.
Upstream changes that matter
@opencode/plugin 2.2.3: TUI plugins require OpenTUI 0.8 (#60385). The @opentui/core and @opentui/solid peers moved from 0.7.0 to >=0.8.0 (both still optional), and OpenCode's own catalog now ships OpenTUI 0.8.0 / solid-js 1.9.17. Apart from that, the npm tarball diff from 2.2.0 to 2.2.3 changes only .d.ts files and package.json: the shipped runtime JS and the dist/tui/* types are identical.
- Type changes since Upstream: @opencode/plugin@2.2.1 compatibility report #96:
SessionHooks/SessionDomaindocs for the 2.2.1 experimental moves, and GUI-only additions (#60164 composer notetitle/subtitle, composer-pillmenupopover). Nothing here uses the GUI SDK. - #60097 keeps model variants that plugins supply, an internal session fix. No plugin here supplies variants.
OpenTUI 0.8.0 breaking changes (notes) and how they apply here:
- ScrollBox
wrapper/viewport/content/ scrollbars are now facades, not renderables. Scrollbars loseslider/ arrows, and options on parts outside each part's supported fields are ignored (#1805, #1798). Onlyopencode-ram-monitor's/rammodal uses ascrollbox, withscrollX,scrollY,contentOptions: { minHeight: 0 }andscrollbarOptions: { visible: false }. It never reaches into the parts.minHeightis a supported layout field, andvisibleis inScrollBoxBar.keys, so both still apply. The modal render test (testRender, now withnativeSceneVerifyon by default) passes on 0.8.0. The published 2.1.1 bundle uses the same options. RenderContextnow requiresclock/onAnimationTick(#1803). No plugin implements a customRenderContext.- The
_hasFocusedDescendantfield was removed and native scene renames landed (#1778). Not used here. - solid:
solid-jspeer is now^1.9.12. Seroval advisory GHSA-p6vx-979v-rg4c is fixed with solid-js ≥ 1.9.16 (#1786). The lockfile resolves 1.9.17 after the bump.
Config / policy / commands:
- Managed policy (#60315): plugins are now controlled by a new
plugin.useaction. A bareintegration.userule no longer applies to plugins, and oldplugin:prefixes convert automatically. This only matters for MDM-managed installs, and needs no plugin change. - No keymap, command-registry, plugin-loader or package-resolution changes in 2.2.2 or 2.2.3.
packages/tui/src/{plugin,keymap}have no commits in range, andhost.jsis unchanged. Neither release note adds new built-in slash commands, so/ram,/output-style,/adversarial-reviewand/constructive-reviewstill don't collide with any. @opencode/aibreaking changes (experimental media moved,tool(...)unification): these only affect direct@opencode/aiimports. Not used here.
Are published versions broken on OpenCode 2.2.3?
No. The runtime JS in @opencode/plugin didn't change, and every TUI build marks @opentui/* / solid-js as --external, so the published TUI plugins run on the host's OpenTUI 0.8. None of them uses an API that 0.8 removed or changed. Caveat: I checked this with the 0.8 test renderer and resolver smokes, not a live OpenCode 2.2.3 TUI session.
Peer ranges
No tightening needed. The plugin code runs on both OpenTUI 0.7 (OpenCode 2.2.0–2.2.2) and 0.8 (2.2.3), so >=0.5.10 / >=0.6.6 stay correct. Raising them to >=0.8.0 would wrongly exclude 2.2.0–2.2.2 hosts.
Two watch items for the pin-bump PR:
- Move
@opencode/plugin2.2.3together with@opentui/core+@opentui/solid0.8.0in timeline, ram-monitor and output-styles. The new SDK's peer is>=0.8.0, so bumping only the SDK (which Dependabot might do) leaves dev pins that don't satisfy that peer. - Keep the peer strings distinct from the new dev pins, per the AGENTS.md Dependabot rule. The current peers already are.
Suggested change for the bump (not applied):
// packages/{opencode-double-tap-timeline,opencode-ram-monitor,opencode-output-styles}/package.json → devDependencies
"@opencode/plugin": "2.2.3",
"@opentui/core": "0.8.0",
"@opentui/solid": "0.8.0",
// packages/{opencode-agents-loader,opencode-adversarial-review}/package.json → devDependencies
"@opencode/plugin": "2.2.3",Vendored prompt sync (opencode-agent-prompt-inheritance)
Did upstream prompts change? No, not since #96. I ran bun run sync:prompts in the scratch clone:
- default ref
dev: still fails (Failed to fetch gpt.txt: 404).devno longer haspackages/opencode/. OPENCODE_UPSTREAM_REF=v1: fails oncopilot-gpt-5.txt: 404, which was removed upstream in b01498d3f / #59669.- The last V1 prompt-dir commit is still b01498d3f (2026-10-27). Compared with
v1:default.txtstill differs (the 548648a3d verbosity examples), and anthropic / beast / codex / gemini / gpt / kimi / trinity are identical. No vendored file changed. - The Sync OpenCode Prompts workflow is still failing daily (Oct 27–29). The suggested fix in Upstream: @opencode/plugin@2.2.1 compatibility report #96 (default ref
v1, dropcopilot-gpt-5.txtfromALLOWED_FILES) still applies.
Method: npm tarball diff of @opencode/plugin 2.2.0 vs 2.2.3. Upstream release notes plus per-path commit history (packages/plugin, packages/tui/src/{plugin,keymap}, packages/core/src/{plugin,config}) for v2.2.0..v2.2.3. A read of the OpenTUI 0.8.0 ScrollBox types. Gates and smokes ran in a throwaway clone that has since been deleted. Nothing was pushed.
Activity