A cross-tool timeline of what an agent tried, rejected, and decided — so 'why did we reject X' is answerable in seconds.
Price: $9 one-time
Included free
Manual 'Log This Decision' command
Searchable sidebar timeline (local JSON log)
Unlocked with a license
Auto-capture from Claude Code transcripts (best-effort, pattern-based)
Resume Briefing notification after time away
Roadmap
vscode.lm-powered summarization (cleaning up raw auto-captured text into a tighter entry) is a v3 stretch idea, not implemented here — everything in this version is local, heuristic pattern-matching with no model calls.
Getting a license
Open the HandoffLog sidebar (activity bar icon) and click Get License. After purchase you'll receive a license key — paste it into the sidebar and click Activate License. Keys are machine-locked; use Move to another machine… in the sidebar before reinstalling on a new device.
Implementation notes
The log lives at .handofflog/log.jsonl in the workspace root — one JSON object per line, each tagged source: "manual" or source: "auto".
"Searchable sidebar timeline" is implemented as a panel (HandoffLog: Show Timeline) with a client-side text filter, not a literal activity-bar sidebar view — the sidebar slot is already used for license status. The panel gives the same "type to filter" experience.
With a license, HandoffLog scans the most recently modified Claude Code session transcript on activation for lines whose text contains simple trigger phrases ("instead", "rejected", "decided to", "let's go with", "won't work because") and appends matches automatically. This is best-effort pattern matching, not comprehension — it can miss real decisions and occasionally flag unrelated lines. Already-scanned lines are tracked per session file so re-activating the extension doesn't duplicate entries.
The Resume Briefing (license-gated) fires once per activation if the newest log entry — manual or auto — is older than handofflog.resumeBriefingHours (default 4).