Skip to content

Commit 2fd3179

Browse files
committed
chore: release v0.1.0
1 parent 22f8f8c commit 2fd3179

2 files changed

Lines changed: 17 additions & 45 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,47 +4,10 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7-
- **Native diff viewer for Cursor edits (blocks mode).** A Cursor `edit` tool
8-
call is now surfaced under opencode's registered `edit` tool with its real
9-
unified diff in `metadata.diff`, so opencode renders its built-in diff viewer
10-
instead of a generic block. The required `oldString`/`newString` (which Cursor
11-
does not expose) are reconstructed from the diff; the call is provider-executed
12-
so they are never applied to disk. Any edit without a usable diff (errors,
13-
unexpected shapes, or a host without a registered `edit` tool) falls back to a
14-
safe `cursor_edit` block. Other Cursor tools (shell/read/mcp/…) remain
15-
prefixed `cursor_*` blocks.
16-
- **`toolDisplay` now defaults to `"blocks"`.** Cursor's internal tool activity
17-
renders as structured, provider-executed tool blocks out of the box (was
18-
`"reasoning"`). `"reasoning"` remains available as the fallback for
19-
older/non-V3 opencode hosts via `provider.cursor.options.toolDisplay:
20-
"reasoning"`; `"blocks"` requires a V3-native host (opencode 1.16+).
21-
- `0.1.0-rc.2` — pre-release on the npm `next` dist-tag. Fixes found while
22-
validating rc.1 against opencode 1.16.2:
23-
- **Plugin now loads when installed by package name.** Added the
24-
`exports["./server"]` entry opencode uses to resolve a plugin's entrypoint;
25-
rc.1 exposed the plugin only at `./plugin`, which opencode does not read, so
26-
the package installed but registered no hooks (no provider, no models).
27-
- **Self-heal the `sqlite3` native binding.** opencode installs plugins with
28-
Bun, which skips sqlite3's install script, so `@cursor/sdk`'s
29-
`require("sqlite3")` failed with "Could not locate the bindings file". The
30-
plugin now runs sqlite3's `prebuild-install -r napi` under the system Node
31-
before loading the SDK (once per process, never throws).
32-
- **Stream ordering.** The final answer no longer renders above the reasoning
33-
blocks that preceded it — the open text part is closed when reasoning
34-
resumes and each resume opens a fresh text part.
35-
- **Model variants reach the picker.** Variants are seeded on the
36-
config-injected models (opencode discards the `provider.models()` hook for
37-
providers outside its models.dev catalog). Variant naming reworked against
38-
the real catalog: boolean params (e.g. `thinking`) collapse to one
39-
param-named variant instead of literal `true`/`false`; enum params key by
40-
value. The synthetic `plan` variant was removed.
41-
- **Plan agent → Cursor plan mode.** opencode's plan agent (`Tab`) is mapped
42-
to Cursor's plan mode via the `chat.params` hook; an explicit variant/option
43-
mode still wins.
44-
- `0.1.0-rc.1` — first pre-release of the 0.1.0 surface below, published to the
45-
npm `next` dist-tag for validation ahead of the stable `0.1.0`.
7+
## [0.1.0] — 2026-06-10
468

47-
## [0.1.0] — unreleased
9+
> Pre-releases: `0.1.0-rc.1` and `0.1.0-rc.2` were published to the npm `next`
10+
> dist-tag for validation ahead of this stable release.
4811
4912
Initial public release. A complete opencode integration for Cursor built on the
5013
official `@cursor/sdk`: a streaming chat provider, an auth/config/model plugin,
@@ -65,11 +28,16 @@ and a permission-gated delegation tool surface.
6528
session via `Agent.resume()` across turns, with automatic fallback to a fresh
6629
agent. A run wedged by a crashed/duplicate process is recovered by retrying
6730
the send once with the SDK's `local.force` escape hatch.
31+
- **Native diff viewer for Cursor edits (blocks mode).** A Cursor `edit` tool
32+
call is now surfaced under opencode's registered `edit` tool with its real
33+
unified diff in `metadata.diff`, so opencode renders its built-in diff viewer
34+
instead of a generic block. The required `oldString`/`newString` (which Cursor
35+
does not expose) are reconstructed from the diff; the call is provider-executed
36+
so they are never applied to disk. Any edit without a usable diff (errors,
37+
unexpected shapes, or a host without a registered `edit` tool) falls back to a
38+
safe `cursor_edit` block. Other Cursor tools (shell/read/mcp/…) remain
39+
prefixed `cursor_*` blocks.
6840
- **`toolDisplay` provider option** (`"blocks"` default | `"reasoning"`):
69-
- `"reasoning"` renders Cursor's internal tool activity (including the real
70-
MCP tool name) as concise `[tool] …` reasoning lines. Always safe — tool
71-
calls never cross opencode's tool-execution boundary; the fallback for
72-
older/non-V3 hosts.
7341
- `"blocks"` (default) emits structured, provider-executed **dynamic** `tool-call` /
7442
`tool-result` parts so opencode renders native tool blocks. Names are
7543
`cursor_`-prefixed and sanitized (`shell``cursor_shell`,
@@ -81,6 +49,10 @@ and a permission-gated delegation tool surface.
8149
errored/cancelled mid-tool) is closed with a synthetic error result so the
8250
block never dangles as "Tool execution aborted", and a run that ends with
8351
status `error` surfaces the failure instead of finishing silently.
52+
- `"reasoning"` renders Cursor's internal tool activity (including the real
53+
MCP tool name) as concise `[tool] …` reasoning lines. Always safe — tool
54+
calls never cross opencode's tool-execution boundary; the fallback for
55+
older/non-V3 hosts (`provider.cursor.options.toolDisplay: "reasoning"`).
8456

8557
### Node sidecar (Bun compatibility)
8658

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@stablekernel/opencode-cursor",
3-
"version": "0.1.0-rc.2",
3+
"version": "0.1.0",
44
"description": "opencode provider plugin backed by the official Cursor SDK (@cursor/sdk) — adds a Cursor provider and lists its models",
55
"type": "module",
66
"license": "MIT",

0 commit comments

Comments
 (0)