v0.19.0
OpenCode v2 rollout
v0.19.0 begins the gradual rollout of OpenCode v2 support. It is experimental today; future maintenance will move to v2 only. This release still includes v1 compatibility, and no v1 removal date is set.
- OpenCode v1: the recommended legacy pin remains
v0.18.1. You can opt intov0.19.0for the shared fixes, or keep the older pin and setupdateCheck: falseto suppress upgrade notifications. - OpenCode v2: install
v0.19.0throughcli.json. For a custom leader, the plugin'sexperimentalV2Leadermust match the host keybind. To roll back, remove the plugin entry; the v1-onlyv0.18.1release does not work on v2.
See the version-specific installation instructions.
Added
- Experimental OpenCode v2 TUI support through one dual v1/v2 package entry, without duplicating the Vim engine or adding runtime dependencies.
- An optional installed-package compatibility harness with exact editor-state checks; lightweight harness regressions run in CI.
just dev2for pinned OpenCode v2 development with isolated settings and history.
Fixed
- Visual
h/lselection now includes the cursor on both tested hosts, including backward motions and empty-buffer/EOF/EOL boundaries, while preserving the native anchor for subsequent word and line motions. - Visual mode re-anchors when the focused prompt editor changes.
- The v2 form leader guard and Vim controller share the same per-activation disabled setting.
- Compatibility checks reject JSONC project-config ancestors, ignore user tmux configuration and retain bounded form/permission completion and cleanup-failure evidence.
- Selection normalization forwards host-owned colors without requiring an installed
@opentui/coretype dependency.
Validation and limits
The final v0.19.0 Git tag passed cold and warm installation on macOS ARM64, including byte-for-byte verification of installed source files and the package manifest:
| Host | Exact-state checks passed | Named known gaps |
|---|---|---|
| OpenCode 1.18.33 | 39 | 2 |
| OpenCode 2.0.15 | 48 | 2 |
CI passed with 337 Bun tests and 16 Python tests. Tests used isolated state and synthetic text, with no model requests or permission approvals.
This is not a full-parity or all-platforms support promise. v2 still relies on raw renderer listener ordering and explicit leader mirroring. Shared tab/wide/combining-character offset issues, snapshot-backed redo, and native nonhorizontal selection differences remain. The harness reports its tab-offset and snapshot-redo probes as known gaps rather than passes. Newer v2 versions and non-macOS runtime behavior have not been validated.