v0.4.3 — coverage
"Nothing went wrong" and "I could not read part of this" used to look identical.
- Coverage. Every adapter now counts what it examined alongside what it could not read, surfaced as
meta.coverage = {records, unrecognized, sourcesUnread}. A newsrc/coverage.jsis the single classifier (no imports, likefind.js), so the strip badge on the canvas and the note on the MCP read tools fire on exactly the same verdicts. Loud drift (< 75% read and ≥ 25 unrecognized records) leads the signal strip; quiet drift sits inline; both are sticky and undismissable. The inspector always showsrecords N / N. - Why now: a new Claude Code record type (
atis-latch) had silently pushed 14 recent sessions to 4–6% unread with an empty signal strip. It is now recognized by shape, so a future version that populates the field cannot be swallowed. - Thresholds are calibrated against 224 runs / 129k records; the fixture corpus gains two drift runs, and the clean run now asserts zero unread records.
- Docs: the MCP agent loop is documented for clients beyond Claude Code; the sharing section of the site explains what a bundle is for.