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
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ vimcode is a TUI plugin for [OpenCode](https://opencode.ai). Before working on i
- `dispatchCommand()` from inside a `key:before` intercept doesn't work for cursor movement. Wrap in `setTimeout(..., 0)` to break out of the intercept stack.
- `registerLayer` with `activeWhen` using SolidJS signals requires `reactiveMatcherFromSignal` from `@opentui/keymap/solid`. Plain `() => signal()` doesn't trigger re-evaluation. We chose intercepts instead of layers to avoid this.
- **SolidJS imports work in distributed plugins** as of mid-2026. The plugin uses top-level `import { createSignal } from "solid-js"` and `@jsxImportSource @opentui/solid`. This requires `"type": "module"` in package.json and `solid-js`/`@opentui/solid`/`@opentui/core` as peer dependencies. Tests need a preload (`test/preload.ts`) to mock the JSX runtime since it's only available inside the OpenCode host.
- **Do NOT add `solid-js`, `@opentui/solid`, or `@opentui/core` as dependencies or peerDependencies.** If they're in `package.json`, Bun installs them into the plugin's `node_modules/`, and the local `.d.ts` stubs shadow the host's runtime module intercepts. The host provides these at runtime via `ensureRuntimePluginSupport`. Keep them only in `devDependencies` (via `@opencode-ai/plugin` which pulls them in for type-checking).

### Editor widget API

Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Version

## [Unreleased]

## [0.12.1] — 2026-06-08

### Fixed

- Plugin failed to load when installed via git URL. Peer dependencies (`solid-js`, `@opentui/solid`, `@opentui/core`) were getting installed into the plugin's `node_modules/`, and their `.d.ts` stubs shadowed the host's runtime modules. Removed peer deps — the host provides these at runtime.

## [0.12.0] — 2026-06-08

### Added
Expand Down Expand Up @@ -242,7 +248,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.12.0...HEAD
[Unreleased]: https://github.com/oribarilan/vimcode/compare/v0.12.1...HEAD
[0.12.1]: https://github.com/oribarilan/vimcode/compare/v0.12.0...v0.12.1
[0.12.0]: https://github.com/oribarilan/vimcode/compare/v0.11.0...v0.12.0
[0.11.0]: https://github.com/oribarilan/vimcode/compare/v0.10.0...v0.11.0
[0.10.0]: https://github.com/oribarilan/vimcode/compare/v0.9.0...v0.10.0
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Add to your `tui.json` (or `.opencode/tui.json`):

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

Expand All @@ -40,7 +40,7 @@ To pass options, use the tuple form in `tui.json`:

```json
{
"plugin": [["vimcode@git+https://github.com/oribarilan/vimcode.git#v0.12.0", { "updateCheck": false }]]
"plugin": [["vimcode@git+https://github.com/oribarilan/vimcode.git#v0.12.1", { "updateCheck": false }]]
}
```

Expand Down
8 changes: 1 addition & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "vimcode",
"version": "0.12.0",
"version": "0.12.1",
"description": "Vim keybindings for the OpenCode prompt",
"author": "Ori Bar-ilan",
"license": "MIT",
Expand Down Expand Up @@ -31,11 +31,5 @@
"@biomejs/biome": "2.4.15",
"@opencode-ai/plugin": "^1.15.4",
"tsx": "^4.22.1"
},
"peerDependencies": {
"@opencode-ai/plugin": "*",
"@opentui/core": "*",
"@opentui/solid": "*",
"solid-js": "*"
}
}
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.12.0";
export const VERSION = "0.12.1";

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