v0.5.4 — SVG banner + docs/ deep-dives
Visual + docs patch. No code changes.
SVG banner
New assets/banner-{dark,light}.svg rendered via <picture> in the README — GitHub, npm, and IDE previews now switch automatically by theme. The visual encodes the editable-timeline differentiator: a 14-dot session timeline with a curved arrow looping back from a newer session to a hollow "superseded" one. Wordmark in ui-monospace, ~3KB per file, no embedded fonts.
docs/
Three deep-dives, GitHub-only (not in the npm tarball):
- docs/supersedence.md — the editable timeline. Four session statuses (
active/idle/closedderived from transcript mtime;supersededpersisted and overriding), how supersedence is recorded atomically on insert, why superseded sessions still surface in recall, entity-level retire/snooze/label overlays as separate from session status. - docs/hooks.md — full lifecycle for the five hooks (UserPromptSubmit, SessionStart, Stop, PreCompact, SubagentStart). Selection caps pulled from source. Pointer-block format. Mode toggle, Bearer auth, fail-open semantics, the digest liveness canary.
- docs/methodology-recall-baseline.md — where R@5 = 97.2% comes from. LongMemEval-S public-dataset harness (reproducible by anyone) distinguished from the 14-month personal-corpus baseline. Field-weighting table from
match-fields.ts. The without-classifier-output failure mode is called out so the number isn't misread.
README accuracy
The differentiator bullet previously said "sessions can be superseded, retired, or marked aborted" — but there's no aborted or retired session status in code (only superseded). Tightened to "sessions can be superseded by newer ones; entities can be retired," and linked the new docs/supersedence.md from the same line.
612/612 tests passing. Pure docs/assets patch — no migration.