v0.2.3 — resilient large-session resume
Highlights
- Safely resumes large Claude JSONL sessions without fixed-tail truncation.
- Uses bounded metadata windows for listing and a private stable file snapshot for full recovery.
- Streams up to 50,000 transcript records into a lightweight graph and loads only the selected lineage.
- Accepts semantic replay duplicates with envelope-only changes while failing closed on content, type, cycle, UUID, JSON, or non-finite-number corruption.
- Uses the first recorded primary cwd so subagent/worktree rows do not misclassify the parent session.
Security
- Descriptor-relative no-follow reads.
- Repeated content/stat/directory-membership verification.
- Private 0700 directories and 0600 snapshot files.
- Bounded directory enumeration, immutable ceilings, retry-on-mutation, and unconditional cleanup.
Verification
- 211 tests passing.
- Secret/path gate clean.
- Self-verify passing.
- Installed runner matrix 36/36.
- Real 21 MB Claude session: 13,370 records, 415 rendered turns, no broken-chain or unknown-record warning.
- GitHub Actions run 29890453185: Ubuntu/macOS × Python 3.11/3.12 all green.
Host UI natural-language/picker activation remains not-run and is not claimed by this release.