Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Version

## [Unreleased]

## [0.19.2] — 2026-10-14

### Added

- Added separate PR CI guards via `just test-int` for harness integration and `just test-e2e` for cache-installed OpenCode v1/v2 E2E editing, with exact prompt checks and no-plugin controls; local runs remain on demand and outside the unit suite.
Expand Down Expand Up @@ -393,7 +395,8 @@ First release. Modal editing for the OpenCode prompt.

> `g` fires immediately as buffer-home instead of waiting for `gg`. The `yy` line tracker drifts on clicks and arrow keys. Visual mode and text objects aren't feasible without cursor position access.

[Unreleased]: https://github.com/oribarilan/vimcode/compare/v0.19.1...HEAD
[Unreleased]: https://github.com/oribarilan/vimcode/compare/v0.19.2...HEAD
[0.19.2]: https://github.com/oribarilan/vimcode/compare/v0.19.1...v0.19.2
[0.19.1]: https://github.com/oribarilan/vimcode/compare/v0.19.0...v0.19.1
[0.19.0]: https://github.com/oribarilan/vimcode/compare/v0.18.1...v0.19.0
[0.18.1]: https://github.com/oribarilan/vimcode/compare/v0.18.0...v0.18.1
Expand Down
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Add your change

## Host support policy

OpenCode v2 support is rolling out gradually and remains experimental in vimcode v0.19.1. Future maintenance will move to v2 only; v1 compatibility remains in this release. The recommended v1 pin stays at `v0.18.1`. Do not automatically advance that legacy recommendation when preparing a v2-focused release.
OpenCode v2 support is rolling out gradually and remains experimental in vimcode v0.19.2. Future maintenance will move to v2 only; v1 compatibility remains in this release. The recommended v1 pin stays at `v0.18.1`. Do not automatically advance that legacy recommendation when preparing a v2-focused release.

## Release process

Expand All @@ -88,19 +88,19 @@ Releases are manual.

Both host versions load the same `./tui` package entry via a Git URL. Pin a tag or commit so upgrades use a new cache entry.

On OpenCode **v1**, use `tui.json`. The recommended legacy pin is `v0.18.1`; `v0.19.1` includes v1 compatibility and the subagent-navigation fix for users who opt in:
On OpenCode **v1**, use `tui.json`. The recommended legacy pin is `v0.18.1`; `v0.19.2` includes v1 compatibility plus the subagent-navigation and question-answer fixes for users who opt in:

```json
{ "plugin": ["vimcode@git+https://github.com/oribarilan/vimcode.git#v0.18.1"] }
```

On OpenCode **v2**, use `cli.json` and pin `v0.19.1`. v2 support is experimental; the v1-only `v0.18.1` release does not work on v2:
On OpenCode **v2**, use `cli.json` and pin `v0.19.2`. v2 support is experimental; the v1-only `v0.18.1` release does not work on v2:

```json
{
"plugins": [
{
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.1"
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.2"
}
]
}
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ OpenCode v2 support is rolling out gradually, starting with experimental support

| OpenCode version | Recommended vimcode pin | Status |
|------------------|-------------------------|--------|
| v1 | `v0.18.1` | Previous v1-only release. Opt into `v0.19.1` for the subagent-navigation fix and shared v1/v2 updates. |
| v2 | `v0.19.1` | Experimental; validated on OpenCode 2.0.15 on macOS. |
| v1 | `v0.18.1` | Previous v1-only release. Opt into `v0.19.2` for the subagent-navigation and question-answer fixes plus shared v1/v2 updates. |
| v2 | `v0.19.2` | Experimental; validated on OpenCode 2.0.15 on macOS. |

V1 users can stay on an older pinned release instead of following the v2 rollout. We have not set a date for removing v1 support.

Expand All @@ -38,7 +38,7 @@ Use the instructions for your OpenCode major version. Both versions use the same

### OpenCode v1

We recommend pinning `v0.18.1` for existing v1 users who want the previous v1-only behavior. To get the subagent-navigation fix and shared updates in `v0.19.1`, change the Git ref to `v0.19.1`; revert to the older pin if you encounter a regression.
We recommend pinning `v0.18.1` for existing v1 users who want the previous v1-only behavior. To get the subagent-navigation and question-answer fixes plus shared updates in `v0.19.2`, change the Git ref to `v0.19.2`; revert to the older pin if you encounter a regression.

Add to your `tui.json` (or `.opencode/tui.json`):

Expand All @@ -54,13 +54,13 @@ By default, you'll see a toast when a newer vimcode version is available. If you

### OpenCode v2 (experimental)

Pin `v0.19.1` in your global `cli.json`. The older `v0.18.1` release does **not** support v2.
Pin `v0.19.2` in your global `cli.json`. The older `v0.18.1` release does **not** support v2.

```json
{
"plugins": [
{
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.1"
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.2"
}
]
}
Expand Down Expand Up @@ -88,7 +88,7 @@ Put `options` alongside `package` in `cli.json`:
{
"plugins": [
{
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.1",
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.2",
"options": { "updateCheck": false }
}
]
Expand Down Expand Up @@ -157,7 +157,7 @@ On **v2**, set both the host keybind and the plugin option in `cli.json`:
"keybinds": { "leader": "space" },
"plugins": [
{
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.1",
"package": "vimcode@git+https://github.com/oribarilan/vimcode.git#v0.19.2",
"options": { "experimentalV2Leader": "space" }
}
]
Expand Down
6 changes: 3 additions & 3 deletions docs/opencode-v2-poc.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Experimental OpenCode v2 POC

These notes record the v2 proof of concept and compatibility evidence. v2 support is experimental in vimcode v0.19.1; this is not a full-parity or all-versions support declaration. The same `./tui` entry has v1 `tui(api, options)` and v2 `setup(context)` callbacks. v1 still uses its existing API; v2 adapts the host UI, storage, commands and events to the same Vim controller and engine.
These notes record the v2 proof of concept and compatibility evidence. v2 support is experimental in vimcode v0.19.2; this is not a full-parity or all-versions support declaration. The same `./tui` entry has v1 `tui(api, options)` and v2 `setup(context)` callbacks. v1 still uses its existing API; v2 adapts the host UI, storage, commands and events to the same Vim controller and engine.

## Local development

Expand All @@ -23,15 +23,15 @@ The root `tui.ts` re-exports `src/index.ts` for v2's local-directory loader. Thi

The v2 public `keymap` has no key intercept or configured-leader lookup. The POC uses `context.renderer.keyInput.prependListener("keypress", ...)` to intercept prompt keys **before** the host keymap. It calls both `preventDefault()` and `stopPropagation()` on consumed keys. This raw OpenTUI ordering is not a documented OpenCode plugin guarantee; do not rely on it as production compatibility without testing against installed packages and future host releases.

The [README](../README.md#opencode-v2-experimental) shows the release Git install pinned to `v0.19.1`. The earlier Git experiment below used commit `d8050f765b6c2c4e7fdc700d8345c1c5752644cb`. Use the global `cli.json` on v2, not v1's `tui.json`.
The [README](../README.md#opencode-v2-experimental) shows the release Git install pinned to `v0.19.2`. The earlier Git experiment below used commit `d8050f765b6c2c4e7fdc700d8345c1c5752644cb`. Use the global `cli.json` on v2, not v1's `tui.json`.

To test local changes instead, create a fresh artifact directory and build a tarball with `npm pack --ignore-scripts --pack-destination /absolute/path/to/artifacts`. Configure that artifact in `cli.json`:

```json
{
"plugins": [
{
"package": "vimcode@file:/absolute/path/to/artifacts/vimcode-0.19.1.tgz",
"package": "vimcode@file:/absolute/path/to/artifacts/vimcode-0.19.2.tgz",
"options": { "updateCheck": false, "experimentalV2Leader": "ctrl+x" }
}
]
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "vimcode",
"version": "0.19.1",
"version": "0.19.2",
"description": "Vim keybindings for the OpenCode prompt",
"author": "Ori Bar-ilan",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion src/version.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Keep in sync with package.json on each release.
export const VERSION = "0.19.1";
export const VERSION = "0.19.2";

// GitHub API returns fresh content immediately; raw.githubusercontent.com
// is CDN-cached for up to 5 minutes which delays update detection.
Expand Down
Loading