v0.4.5 — opencode adapter
Fourth adapter — and the second agent that can close the loop.
- opencode adapter. Reads the global
~/.local/share/opencode/opencode.db(XDG_DATA_HOMEhonoured,RUNGRAPH_OPENCODE_HOMEoverrides). Root sessions are runs; subagent sessions are lanes, paired by the child session id the task part records, so there is no dispatch-order guessing. File attribution is exact (absolute paths) and the agent that ran each session is recorded rather than inferred. opencode speaks MCP, so its users get both ends of the loop: ask in the TUI, watch the dashboard light up. IRNode.reverted— a new additive core field (irVersionstays 1). Reverted work renders as a mark (struck label + badge), never as opacity. Work-quality signals skip reverted nodes; interventions inside a reverted region still fire.src/sqlite.js— the onenode:sqlitetouchpoint (version gate, readonly open, crash-recovery copy, schema-tolerance helpers), extracted from the Hermes adapter so two copies of the recovery policy cannot disagree.- Calibrated against a real 17-session corpus: cumulative per-step tokens are taken as a max, not a sum (the naive sum was 4.9× too big); the tool-node status invariant (
erroriff every call failed) is now one cross-adapter test over all four corpora. - Site: leads with the loop; the nav is a table of contents; FAQ answers when the graph is computed and what a run costs in tokens.