Repository navigation
Releases: kido5217/opencode-agent-chat
Release list
v0.6.0
The 0.6.0 trustworthy-eval release.
What's new
- The reworked eval instrument: per-run outcome classification (completed / killed_at_cap / crashed) with a completion floor (≥3 of 5 per arm per scenario, else a distinct data-quality RED); behavior is asserted over completed runs only — a killed or crashed run is never "did not ask".
- The baseline arm is alive:
node_modulesis hard-linked into the baseline worktree. The 0.4.1 arm was structurally dead since 0.5.0 (the plugin never loaded there), so this is the first release whose lift-vs-baseline is a real measurement. - New S4
delegatescenario: main composes the peer-required briefing itself — it measures the task-design guidance's lift, with the 0.4.1 arm (no guidance doc) as the one-shot control. - S1's child task is bounded (concrete file + concrete missing value) — fixes the unbounded-
find /timeout artifact. - Advisory LLM judge (Qwen3.8-27B): scores question/answer quality and the noise guard on gradable runs, reports only — never a gate. Per-run artifacts are retained under
$XDG_DATA_HOME/opencode/eval/(last 3 evals). - The second injected agent-facing doc,
docs/task-design.md: the peer-required task test, the shaping patterns, the anti-patterns, worked example pairs. - The tuning-loop norm: README "Evaluation" section + AGENTS.md rule — the eval is a hard local gate on protocol text, the baseline rolls to each release, and instrument changes are release-level events.
Release-run eval (one-shot, vs 0.4.1; the baseline ref rolls to v0.6.0 after this release)
PASS — 40 runs (4 scenarios × 5 runs × 2 arms):
| scenario | new (0.6.0) | baseline (0.4.1) |
|---|---|---|
| ask | 3/3 asked (3/5 completed, 2 cap) | 0/5 asked |
| answer | 2/5 answered | 2/5 answered |
| noise | 0/5 noised | 0/5 noised |
| delegate (new) | 3/3 asked (3/5 completed, 2 cap) | 0/4 asked (1 crash) |
Advisory judge: 35/40 gradable — question avg 0.86/14 scored, answer avg 0.89/9 scored, noise pass 10/10. The delegate row is the task-design guidance's lift measured directly: the new arm's main composes peer-required briefings (child asks in 3/3 completed runs); the 0.4.1 arm never does (0/4).
Also
- SDK range re-proof (per §13):
@opencode/plugin@2.0.14(range top) — 161/161 tests + typecheck in a scratch worktree. - Out of scope for 0.6.0 (the map's fog/out-of-scope): multi-model eval, structural delivery, Nix packaging, CI.
0.5.0
The 0.5.0 ask/answer release.
What's new
- The new agent-facing prompt text + tool descriptions: the exception ladder (post a question when blocked on a fact a peer can settle), the worked ask/answer examples, and the host-norm override (#83).
- The richer open-question block in the digest/join briefing: id · asker → addressee · age (stale) — body, with the addressee flagged, compact age, staleness (≥30m), and addressed-to-you ordering first (#84).
- The two-arm non-imperative eval scenario (bun smoke/run.ts --scenario eval), measuring the ask/answer behavior against the 0.4.1 baseline (#85).
- The strengthened answer obligation (scan the open-question block at the start and after each chat_read).
Version: 0.4.1 → 0.5.0 (manual semver).
0.4.0
0.4.0 — windowed TUI transcript with an on-demand full view.
New: the in-TUI /agent-chat command no longer dumps the whole chat. It posts the last 10 messages (system lines included) under the label agent-chat transcript for <root> · showing last 10 of N · /agent-chat full; chats of 10 messages or fewer post the full notice. The full form opens on demand with /agent-chat full (slash argument, also in the command palette): a fullscreen panel rendering the complete transcript through the same renderer, headed agent-chat transcript for <root> · N messages, closed with Esc, refreshed on re-invocation. The CLI agent-chat view remains a full dump.
Also: the plugin now publishes its resolved chat directory through a marker file (opencode/agent-chat.json under the XDG data dir) — the v2.0.12 host passes options: {} to the TUI context, so the TUI's /agent-chat could not see chats outside the default dir. The @opencode/plugin ceiling is raised to ~2.0.12.
Install:
opencode plugin add opencode-agent-chat
Release checks: ceiling check with @opencode/plugin 2.0.12 on current main (131 tests + typecheck clean, 142160b); smoke PASS. Live TUI verification is automated by tui-verify.sh (all checks passed, driven against the v2.0.12 host).
0.3.0
0.3.0 — timestamps and unique subagent names.
New: every human-facing chat line now carries a full yyyy-mm-dd HH:MM:SS local-time timestamp — the TUI /agent-chat transcript, the CLI agent-chat <session> view/follow, and the last column of agent-chat list.
Also: subagents are now named <agent_type>-<8 random a-z0-9> (the root keeps main), so names are unique per execution instead of -2/-3 collision counters; SENDER_MAX widened 16→24 so the 18-char subagent-<8> fallback never truncates. Historical chat logs keep their original names (no migration).
Install:
opencode plugin add opencode-agent-chat
Release checks: ceiling check with @opencode/plugin 2.0.12 on current main (107 tests + typecheck clean, cb0060f). Smoke suite not executed (the opencode binary is not on PATH in the dev environment); the smoke/run.ts probe-child assertions moved to the new name pattern and are verified by typecheck.
0.2.0
0.2.0 — read the chat from inside opencode.
New: the in-TUI /agent-chat command — it appends the current session's chat to the conversation as one subdued notice: same format as agent-chat view, no model turn starts, and the transcript stays out of the model's context (the synthetic message is filtered by the plugin). The fullscreen session panel remains the fallback surface.
Also: the viewer renderer moved into the core (src/core/view.ts) so the CLI and the TUI share one renderer — the format is frozen byte-identical by tests.
Install:
opencode plugin add opencode-agent-chat
Release checks: ceiling check with @opencode/plugin 2.0.12 (107 tests + typecheck clean), smoke chat + config against the opencode v2.0.12 host, isolated-XDG registry install (auto-install, plugin load, all three chat tools).
v0.1.2
0.1.2 — opencode 2.0.x support.
The @opencode/plugin dependency is now the ~2.0.8 range (floor 2.0.8), and the docs state the supported line: opencode v2 on the 2.0.x line. Compatibility was re-checked from 2.0.8 through 2.0.11 — every SDK surface the plugin uses is unchanged, and the smoke chat scenario passes against the 2.0.11 host binary (docs/research/012-compat-surface.md).
Install:
opencode2 plugin add opencode-agent-chat
v0.1.1
Patch release: clears every deferred review finding from 0.1.0.
- Core: safer protocol internals, character-capped join briefings, immediate transactions, consistent membership semantics, guarded file permissions.
- Adapter: ancestor-chain hydration, registered namespace description, setup cleanup, per-run guard eviction, 100-character
tocap. - Viewer: hard 100-column contract, stable follow padding, fewer footguns; the open-questions footer is capped at 5 with a
+N moretail. - Smoke harness and docs: honest failures, temp cleanup, corrected DESIGN/README statements.
Install: opencode2 plugin add opencode-agent-chat. Requires opencode v2 (opencode2 2.0.8); @opencode/plugin pinned exactly 2.0.8. MIT.
v0.1.0
First release: a shared, SQLite-backed chat for the agents of one opencode v2 session.
The main agent and its subagents post statuses, findings, questions, blockers, handoffs, and answers to a per-session chat (chat_post, chat_read, chat_roster); each model request carries an unread digest or a join briefing. A read-only agent-chat viewer lets the human follow along.
Install:
opencode2 plugin add opencode-agent-chat
Requires opencode v2 (opencode2 2.0.8); @opencode/plugin is pinned exactly 2.0.8. MIT. See the README for options and docs/chat-protocol.md for what agents see.