Find the lost thread. Keep the uncertainty.
Search local Codex, Claude Code, and Hermes sessions. Keep transcript claims separate from current evidence when you build a recovery card or bundle.
Follow the trail.
Search, bound the claim, then verify the source.
Search with limits visible.
Why are coverage and freshness separate?
A cached index can be complete for the last refresh and still be stale now. ChatLens keeps source availability, parse completeness, and refresh timing visible so a missing result is not mistaken for complete coverage.
Carry context without calling it proof.
Recover the next useful move
Source: claude:demo-trace-02 · mode: brief · bounded text
The transcript says the redaction pass completed. Not verified.
A tool call mentions a timeout investigation.
Verification boundary
Current repository, owner, and runtime state still need a fresh check.
No verified outcome attached to this historical card.
Partial source coverage; missing native reasoning stays missing.
What does this page prove?
Only that the UI keeps historical transcript claims separate from verified outcomes. Every row above is fictional browser data; the page never reads a private session store or calls the ChatLens CLI.
Pack a snapshot. Stop on source drift.
Preview a fictional bundle match or the stop-on-drift path.
chatlens bundle codex:SESSION_ID --out recovery.json --json
chatlens verify-bundle recovery.json --jsonRun the real CLI.
The guide is illustrative; these are the independent install and tagged demo paths.
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install 'git+https://github.com/jonah-ux/chatlens.git@v0.4.0'
chatlens --versiongit clone --branch v0.4.0 https://github.com/jonah-ux/chatlens.git
cd chatlens
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install .
python3 demos/demo.py