Skip to content
Merged
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
29 changes: 29 additions & 0 deletions docs/releases/v0.1.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# opencode-offpeak v0.1.1

Released 2026-10-11. This is the repaired release. `v0.1.0` remains at its own tag and is not modified.

## Fix

- **Root cause of the live `Keymap.Provider is missing` failure:** a long-running OpenCode TUI process that still executed OpenCode 2.0.18 host code after an in-place upgrade. OpenCode releases before 2.0.26 activate TUI plugins outside the Solid keymap provider owner, so the documented `context.keymap.layer()` call in `setup` fails there. The same call works on 2.0.26, verified in the live TUI and in an isolated clean install.
- **Compatibility enforcement:** `package.json` now declares `engines.opencode: ">=2.0.26 <2.1.0"`, and both entrypoints check `context.app.version` at startup. Unsupported hosts fail with an explicit upgrade message instead of the confusing keymap error.
- **TUI package shape:** the `./tui` entrypoint uses the documented `Plugin.define(...)` form and imports `@opencode/plugin/tui`. No `tui.json`/`cli.json` workaround is involved; no duplicate registration exists.
- **Queue hygiene:** `/offpeak remove <task-id>` deletes a terminal (`COMPLETED`, `FAILED`, `CANCELLED`) record. Active tasks must be cancelled first, and OpenCode sessions are never deleted.

## Regression protection

- Manifest compatibility declaration, TUI export resolution, `Plugin.define` entrypoint shape, server/TUI separation, and clean packed-install loading tests.
- Compatibility-guard tests for in-range, out-of-range, and unknown host versions.
- A real OpenCode v2 TUI smoke test that packs the repository, loads the packed package into an isolated OpenCode configuration with `--standalone`, asserts the reconciliation has no `Keymap.Provider is missing` failure, and drives `/offpeak status` in the live TUI. It skips when the `opencode` CLI or `tmux` is unavailable and never contacts a model provider.

## Install

```sh
opencode plugin add git+https://github.com/lutzkind/opencode-offpeak.git#v0.1.1
```

Then restart OpenCode (a long-running TUI keeps its old code until it restarts).

## Checks

- `npm run lint`, `npm run typecheck`, `npm test` (39 tests), `npm pack --dry-run`.
- Live validation on the supported OpenCode 2.0.26 TUI: `/offpeak status`, `/offpeak on`, `/offpeak pricing`, `/offpeak list`, queue execution of a smoke task, persistence across reload, and removal of the smoke record.
Loading