v0.10.0 — hardening pass: 10x faster listing, conversion fidelity, MCP trust model
A full security-and-quality audit of the codebase, reviewed change by change.
Faster
- Listing is ~10x faster: providers scan concurrently and each session file is parsed in a single head+tail pass. Measured on a real 716-session store: ~14s → ~1.4s, byte-identical results.
More faithful
- Conversions no longer flatten your code. Transcript text used to pass through the preview cleaner, which folds whitespace — multiline code blocks in converted sessions lost their newlines. Transcript extraction now preserves layout exactly.
Safer
- MCP
get_transcriptredacts credential-like values (passwords, API keys, bearer/JWT tokens, private keys) by default before text reaches a model; start the server with--allow-secretsfor verbatim values, or--read-onlyto drop the writing tools entirely. - ANSI/OSC escape and bidi-override injection via crafted session content is stripped at parse and render boundaries.
- Converted sessions are written 0600 with a parent-dir fsync; deletes clean up Claude's sessions-index entries (best-effort, never blocking) and jcode sidecar files.
- Self-update gains size caps, timeouts, and managed-install detection (a brew- or go-installed copy now points you at the right upgrade command instead of overwriting itself).
Sturdier
- CI enforces coverage floors (80% total / 75% per package), runs govulncheck, actionlint and shellcheck, and builds linux/arm64 too. Releases verify tag format and main ancestry. CONTRIBUTING/SECURITY/templates/Dependabot added — security reports welcome via GitHub private vulnerability reporting.
Thanks to an external Codex audit for the findings; two of its choices were adjusted in review (best-effort index cleanup, per-package coverage floor).