Skip to content

0.16.0 — 2026-10-12 — every harness, every version, every affordance

Choose a tag to compare

@github-actions github-actions released this 12 Oct 08:26

Release Notes

cv now carries a corpus of real sessions written by 17 harnesses at the versions in use and their
latest releases, re-read by a golden test, so a format change shows up as a test diff and old
formats keep reading. Building it found sessions cv could not see at all (OpenCode 2.x, Qwen Code
0.25, the Cline CLI store) and data it silently dropped (OpenClaw 10's compressed events, kimi-cli's
rotated segments, Grok reasoning). On top of it, one vocabulary for what swarms run on: plans,
goals, schedules, background jobs, sub-agent spawns and returns, skills, hooks, questions, branches,
forks and model changes, queried the same way on every harness with cv show --kind <affordance>
and -q has:<affordance>.

What reads differently: turns that spawn a sub-agent are subagent_spawn (and synchronous
results subagent_return) where they were reply/tool_result; Claude task-notifications and
interrupt/meta rows are no longer prompt; Hermes and OpenClaw tool_call wrappers read as the
tool they call. --json consumers keying on those kinds should update.

Run cv index once after upgrading: it counts every session's affordances so has: answers
from the catalog (minutes on a large fleet, incremental after).

All changes

  • The cvd and cv-mcp shims are gone, as 0.15 announced: cv archive|watch|serve and cv mcp. A launchd job or MCP registration that names them needs the new spelling.

  • has:plan and the other affordance flags answer from per-session counts in the catalog (filled by cv index and any full read); only uncounted sessions are parsed.

  • cv tools --timeline shows each call's tool_use_id (in --json too), the id cv cat <session> <id> takes.

  • cv tools --timeline shows one line per tool call, matching cv tools counts; a multi-file patch's other files are in more_targets.

  • cv port --harness qwen writes Qwen Code 0.25 session JSONL under ~/.qwen/projects; it wrote the gemini-cli shape 0.25 no longer reads.

  • cv show <id> --kind plan,schedule,background_job,… (affordances for all) lists plans, goals, schedules, jobs, spawns, skills, hooks and forks across harnesses, side stores included.

  • -q has:plan, has:schedule, has:background_job, …: select sessions by affordance on any harness (cv ls, MCP, cv serve).

  • Turns that spawn a sub-agent are subagent_spawn, and synchronous results subagent_return, in Claude, OpenCode, Hermes, OpenClaw, Goose, Grok, Kimi, Roo, Cline, Devin, Continue.

  • Claude: task-notifications are subagent_return (agents, workflows) or injected_context (commands); interrupt markers and isMeta rows are injected_context, not prompt.

  • Hermes and OpenClaw 10.1: a tool_call reads as the tool it calls, namespace tool_call; their emitters wrap it back.

  • Side stores read: Claude tasks/, Grok plan.json, OpenCode todo, Gemini tracker/ and plans/, Goose's todo extension, Hermes goals, loops and heartbeats.

  • A reply that spawns a sub-agent counts as a turn and stays in dataset, distill and lane message counts.

  • The compact hook names the command that reads back the session's plan, schedules and background jobs.

  • Qwen Code 0.25: sessions in ~/.qwen/projects/*/chats/*.jsonl and their sub-agent transcripts are read; cv previously found none.

  • Gemini: tool results and thoughts no longer appear twice after a resume, and a resumed 0.46 session is no longer hidden by its empty twin.

  • Gemini: hook context is its own turn; invoke_agent calls are sub-agent spawns and returns.

  • Gemini and Qwen corpus: real stores from Gemini CLI 0.46.0 and 0.63.0 and Qwen Code 0.25.1 in the golden test.

  • Codex 0.161/0.162: turn_aborted notes keep the abort error and root_turn_id; cv formats names carried records event_msg.<type> as the manifest does.

  • Codex corpus: real rollouts from Codex 0.161.0 and 0.162.1, re-read by a golden test so every recorded format keeps reading.

  • cv index merges its segments itself, by size, to completion: no more abandoned ~1 GB background merge on long runs.

  • cv show --last N and cv export --last N read the session once instead of counting it first: about half the time.

  • Kimi discovery reuses the scan cache: an unchanged transcript costs a stat, not a full read.

  • A follower of a Codex session holds only the new messages, not the whole parsed rollout (595 MB to 124 MB on a 708 MB rollout).

  • A cv search miss checks index staleness against the catalog instead of rescanning every harness: 0.53 s to 0.21 s.

  • cv ls --enrich keeps only each session's user turns while reading it: 720 MB to 80 MB peak on the largest sessions.

  • cv cat stops reading at the tool call it prints instead of holding the whole session.

  • OpenCode 2.x: sessions in its new session_v2/session_message tables are read (2.x databases looked empty before); a migrated 1.x database shows each session once.

  • OpenCode corpus: real stores from 1.18.20 and 2.0.25, plus 2.0.25's migration of the 1.18.20 store.

  • kimi-cli: sessions read every context_N.jsonl segment, not just the live file; /clear is a branch; subagents/ parse as child sessions.

  • Kimi Code 2.x: subagent.spawned/completed are spawn/return turns, /undo is a branch, kimi fork sets lineage.forked_from.

  • Kimi corpus: real stores from kimi-cli 1.48.0/1.51.0, Kimi Code 0.39.1/2.1.1, and a 0.39.1 store reopened by 2.1.1.

  • Cline: sessions from the CLI 3.x and the 4.x extension (~/.cline/data/sessions/) are read, including spawned sub-agents and teammates.

  • Roo: Roo CLI tasks (~/.vscode-mock/global-storage/tasks/) are found; reasoning blocks, condense summaries and new_task parents are read.

  • Continue: the cn CLI's tool results (toolCallStates) and per-turn usage and model are read; they were missing.

  • Devin: a run_subagent child, which has no subagent_heads row, is listed as its own session.

  • Corpora for Cline 3.0.70, Roo CLI 0.1.17, Continue cn 1.5.47 and Devin 3000.11.3; schema snapshots for Zed 1.16.1 and LM Studio 0.4.21.

  • Claude Code 2.1.296: ScheduleWakeup turns read as origin: scheduler; its corpus (18 sessions, 6 sub-agents, a workflow) joins the golden test.

  • Grok 1.0.50: reasoning records read as thinking; forks and sub-agents carry their parent; its corpus joins the golden test.

  • Goose: a real compaction (agent-visibility flip plus agent-only summary) reads as a compaction boundary; delegate results keep the child session id.

  • Goose corpus: real stores from Goose 1.51.0 and 1.54.0, covering every persisted affordance a headless run can drive.

  • OpenClaw 2026.10: zstd-compressed transcript events are read; before, every event of 1 KiB or more (most tool results) was silently dropped.

  • OpenClaw: sub-agent sessions name their parent (lineage.parent); cron and sub-agent prompts get scheduler/subagent origin; sub-agent announces are subagent_return.

  • OpenClaw corpus: real stores from 2026.1.29 (JSONL) and 2026.10.1 (sqlite), re-read by the golden test.

  • Hermes 0.21: a failed_turn row (a turn that got no reply) reads as an error; v29–v31 identity and source columns ride in extra.hermes.

  • Hermes corpus: real state.db stores from Hermes 2026.8.31 and 0.21.6, re-read by the golden test.

Install clustervision 0.16.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/emberian/cv/releases/download/v0.16.0/clustervision-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/emberian/cv/releases/download/v0.16.0/clustervision-installer.ps1 | iex"

Download clustervision 0.16.0

File Platform Checksum
clustervision-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
clustervision-x86_64-apple-darwin.tar.xz Intel macOS checksum
clustervision-i686-pc-windows-msvc.zip x86 Windows checksum
clustervision-x86_64-pc-windows-msvc.zip x64 Windows checksum
clustervision-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
clustervision-i686-unknown-linux-gnu.tar.xz x86 Linux checksum
clustervision-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum