Skip to content

Tags: JoeMob/vimcode

Tags

v0.19.2

Toggle v0.19.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.19.2: Vim editing in question answers (oribarilan#90)

## Summary

Prepares the v0.19.2 patch release from current main. It ships oribarilan#86 and
oribarilan#89.

- Custom question answers get Vim editing on OpenCode v1 and v2 (oribarilan#78).
Pasting into an answer waits for queued motions.
- Moves `[Unreleased]` into `## [0.19.2] — 2026-10-13` and updates the
compare links.
- Bumps `package.json` and `VERSION` to 0.19.2.
- Updates the v2 pins and release wording in README, CONTRIBUTING and
the v2 POC notes. The recommended v1 pin stays at `v0.18.1`.

## Validation

- CI on oribarilan#86 passed check, harness integration and E2E v1/v2 on top of
oribarilan#89.
- No `0.19.1` refs remain outside the changelog history. The
VERSION/package.json sync test covers the bump.
- Local `just check` could not run: `bun install` can't reach the npm
registry from this machine. CI on this PR is the check.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

v0.19.1

Toggle v0.19.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.19.1: fix subagent navigation (oribarilan#85)

## Summary

Fixes oribarilan#79 and prepares the v0.19.1 patch release.

- Pass navigation keys to OpenCode in read-only child-session views
without changing the Vim mode. Both host entrypoints use the same
controller; the Vim engine is unchanged.
- Correct v2 ancestry metadata so root prompts remain editable. Add
regressions for child navigation, Composer ownership, and
normal/visual/insert mode preservation.
- Pin the headless keymap test dependency in devDependencies so clean
installs do not rely on locally installed optional peers.
- Add development navigation aliases, bump package.json and VERSION to
0.19.1, and update release notes and current package refs. Preserve
v0.19.0 history and the documented legacy v1 pin.

This branch starts from current main, rather than reopening the
already-merged v2 support branch.

## Validation

- Fresh Bun install: `just check` passed lint and 355 tests.
- `just compat-unit`: 16 tests passed.
- Cache-installed v0.19.1 on OpenCode 1.18.33: cold/warm loading and 39
exact-state checks passed.
- Cache-installed v0.19.1 on OpenCode 2.0.15: cold/warm loading and 48
exact-state checks passed.
- Independent port/release review found no issues. Manual v1/v2 smoke
checks were also completed before the version bump.

The host suites retain the two inherited tab-offset and snapshot-redo
known gaps. The eight pre-existing typecheck errors are unchanged. V2
support remains experimental and bounded to the tested host versions;
this release does not claim full parity or support for every v2 release.

Closes oribarilan#79.

v0.19.0

Toggle v0.19.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.19.0: experimental OpenCode v2 support (oribarilan#84)

## Summary

Prepare a normal **v0.19.0** release after oribarilan#82, which is already
squash-merged into `main`.

- Bump `package.json` and `src/version.ts` together to `0.19.0`.
- Move the completed changes into the dated `0.19.0` changelog section
and update comparison links.
- Begin the gradual rollout of OpenCode v2 support as **experimental**.
Future maintenance will move to v2 only; this release still includes v1
compatibility, with no removal date set.
- Recommend **v0.18.1** as the legacy v1 pin. V1 users can opt into
v0.19.0 for shared fixes, or keep the older version and disable update
notifications.
- Replace v2 installation/options/leader examples with the `v0.19.0` Git
tag. Keep the recommended v1 examples pinned to `v0.18.1`.
- Clarify v2 rollback: remove the plugin entry rather than installing
the v1-only v0.18.1 release.

This PR changes release metadata, documentation, and the version
constant only. It does not change the Vim engine or host adapter
behavior from the merged oribarilan#82 implementation.

## Validation

- `just check`: lint clean, **337 Bun tests passed**.
- `just compat-unit`: **16 Python tests passed**.
- `git diff --check`: passed.
- Version constants, changelog links, v1 legacy pins and v2 release refs
checked for consistency.
- The prepared **vimcode-0.19.0.tgz** was tested through the
installed-package cache on macOS ARM64. Both runs verified source files
and the manifest byte-for-byte:

| Host | Cold install | Warm install | Exact-state checks passed | Named
known gaps |
| --- | --- | --- | ---: | ---: |
| OpenCode 1.18.33 | Passed | Passed | 39 | 2 |
| OpenCode 2.0.15 | Passed | Passed | 48 | 2 |

The remaining probes are `snapshot-redo` and `tab-inner-word-offset`,
both inherited gaps. Tests used isolated HOME/XDG state, a private tmux
socket, synthetic text and clipboard stubs; no model requests or
permission approvals were made.

A clean-dependency typecheck retains the eight baseline errors
documented in oribarilan#82. No new type diagnostics were introduced by the
version bump.

## Publication gates

This PR does **not** create or publish a release.

After approval and green CI:
1. Squash-merge this release PR.
2. Create and push tag `v0.19.0` on the release commit.
3. Verify the final Git-tag installation on the pinned v1/v2 hosts.
4. Publish a normal GitHub release using the changelog notes.

The `v0.19.0` tag does not exist yet, so its installation examples
become usable only after that gated tag step. Earlier Git-install
validation in oribarilan#82 used the pinned implementation commit, not this future
tag. The dated changelog heading should match the actual publication
date if release is delayed.

Validation remains bounded to OpenCode 1.18.33/2.0.15 on macOS ARM64;
experimental v2 support is not an all-versions, all-platforms or
full-parity promise.

v0.18.1

Toggle v0.18.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.18.1: fix keys after dismissing questions (oribarilan#75)

## Release v0.18.1

Patch release containing the question-dismissal fix from oribarilan#73 and
documentation updates from oribarilan#74.

### Fixed
- Fixed Vim keys remaining unresponsive after dismissing or rejecting a
question prompt (oribarilan#72).

### Changed
- Updated the documented cache-installed mode indicator limitation with
the latest OpenCode and OpenTUI findings (oribarilan#3).

### Release preparation
- Updated package.json, src/version.ts, both README version pins, and
changelog comparison links per CONTRIBUTING.md.
- just check passed: 313 tests, zero lint warnings or errors.
- Version consistency and git diff --check passed.

After CI passes, this PR must be squash-merged before tagging v0.18.1
and publishing the GitHub release.

v0.18.0

Toggle v0.18.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.18.0: text objects (iw/aw, quotes, brackets) (oribarilan#71)

### Added

- Word text objects `iw` and `aw`, for use with the `d`, `c`, and `y`
operators and in visual mode: `diw`, `ciw`, `daw`, `viw`, and so on
(oribarilan#57).
- Quote and bracket text objects `i"` `i'` `` i` `` `i(` `i{` `i[` `i<`
(with `a` variants) for `d`/`c`/`y` and visual mode: `di"`, `ci(`,
`vi[`, and so on. `iq`/`ib` match the nearest quote/bracket of any type;
`ib` means any bracket, not vim's parens-only `ib`.

### Fixed

- After an operator, `i`/`a` now start a text object instead of
switching to insert mode, so `di` and `ci` wait for the object key
(oribarilan#57).

v0.17.1

Toggle v0.17.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.17.1: arrow keys pass through in normal and visual mode (o…

…ribarilan#67)

Patch release for the oribarilan#63 fix (already merged via oribarilan#66).

### Fixed

- Arrow keys no longer get swallowed in normal and visual mode. They
pass through to OpenCode, so you can exit the subagent view (and use
other native navigation) without first switching to insert mode
([oribarilan#63](oribarilan#63)).

### Release checklist

- [x] Moved `[Unreleased]` into `## [0.17.1]` and updated CHANGELOG link
refs
- [x] Bumped `package.json` to 0.17.1
- [x] Bumped `VERSION` in `src/version.ts` to match
- [x] Updated README install/config version tags to v0.17.1
- [x] `just check` green (222 tests)

Tag `v0.17.1` and the GitHub release follow after this merges.

v0.17.0

Toggle v0.17.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.17.0: redesign the vim engine (oribarilan#65)

Release v0.17.0. Redesigns the vim engine into a modular architecture;
no change to keybindings or behavior.

### Changed

- Redesigned the vim engine into a modular architecture for easier
maintenance and future keybindings. No change to existing keybindings or
behavior.

### Fixed

- `dgg` and `drx` no longer leave a stray operator that affected the
next keypress.

### Release checklist

- Version bumped in `package.json` and `src/version.ts` to 0.17.0
- CHANGELOG `[Unreleased]` moved to `## [0.17.0]` with compare links
updated
- README version tags bumped (install snippet + config example)
- `just check` passes: lint clean, 209 tests, 0 fail

After CI passes and this squash-merges, tag `v0.17.0` and create the
GitHub release.

v0.16.0

Toggle v0.16.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.16.0: :w and :write send the prompt (oribarilan#61)

Release v0.16.0. Cuts the `:w`/`:write` feature already on `main`,
giving a clean baseline before the vim-engine redesign lands.

### Added

- `:w` and `:write` now send the prompt instead of autocompleting to
`:wq` and quitting OpenCode. Sessions auto-persist, so the natural
mapping for vim users' reflexive "save" is to submit the current prompt.
`:wq` still quits.

### Release checklist

- Version bumped in `package.json` and `src/version.ts` to 0.16.0
- CHANGELOG `[Unreleased]` moved to `## [0.16.0]` with compare links
updated
- README version tags bumped (install snippet + config example)
- `just check` passes locally: lint clean, 184 tests, 0 fail

After CI passes and this squash-merges, tag with `git tag v0.16.0 && git
push origin v0.16.0` and create the GitHub release.

v0.15.3

Toggle v0.15.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.15.3: fix repeated e in visual mode (oribarilan#55)

Repeated `e` in visual mode now extends the selection progressively
instead of getting stuck after the first press.

The handler was missing a `cursorTo` action alongside `selectRange`, so
the cursor stayed put and subsequent `e` presses computed the same
target. Added a regression test that verifies both actions are emitted.

v0.15.2

Toggle v0.15.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release v0.15.2: fix visual mode e motion (oribarilan#54)

Bump to v0.15.2. Single bug fix: `e` in visual mode now correctly moves
to end of word instead of behaving like `w` (oribarilan#52).

### Changelog

- `e` in visual mode now moves to end of word instead of behaving like
`w` ([oribarilan#52](oribarilan#52)).