v0.2.3 — parallel mining · opencode idle-reconcile · discovery
Highlights
- Parallel mining + self-draining worker (#22). Distillation now mines many sessions at once (bounded map-reduce pool,
mine_concurrencydefault 4, capped at min(16, GOMAXPROCS)); a full-history backfill drops from ~28h → ~7h (Haiku, conc=4). Newwitness distill start --allforeground backfill. Removed the old 1 Hz wakeup cascade + respawn/debounce machinery — the worker now re-checks its own queue under the lock. OpenCode distillation is parallel too (narrowed the serve mutex). Adversarially reviewed twice (internal 3-lens audit + a maintainer PR review that caught 3 more real issues, all fixed). - OpenCode reconcile on
session.status=idle(#41, closes #33). Retires the dead event-driven capture path (the SQLite store is the only complete source of truth), makesCaptureran optional platform capability, adds targeted--sessionreconcile that doesn't advance the global watermark, single-flights imports in both plugins with graceful dispose, and resolves the DB viaXDG_DATA_HOME. Thanks @ChangeHow. - Agent discoverability + metadata fixes (#46). Corrected stale/wrong plugin & marketplace metadata (version, "pure tool" framing, global lenses), the MCP handshake now reports the real build version, and descriptions/keywords/README/
llms.txtseed the vocabulary an agent uses to find the tool.
Install
- Claude Code:
witness install claude· OpenCode:witness install opencode - npm (OpenCode):
@witness-ai/opencode@0.2.3 - Binaries below (darwin/linux amd64+arm64, Windows self-contained zips), verify with
SHA256SUMS.txt.
Single pure-Go binary, CGO_ENABLED=0. Windows Claude Code support is smoke-tested; OpenCode-on-Windows is not yet at parity.