VS Code extension hard-deletes conversation transcript on update/restart (no soft-delete, bypasses Recycle Bin)
Status Open
Reported on v2.1.211
Maintainer reply None cached
Activity 2 comments · opened Jul 17, 2026
Summary
After the VS Code extension auto-updated from 2.1.211 → 2.1.212, the window relaunched into a fresh session instead of resuming the active one, and the prior conversation's transcript was permanently deleted. The resume picker was blank after the restart. The deleted .jsonl transcript did not go to the Recycle Bin and is unrecoverable.
Environment
- OS: Windows 11 Pro
- Extension:
anthropic.claude-code, updated 2.1.211 → 2.1.212 (both versions present under~/.vscode/extensions) - Model: Opus 4.8
- Storage: local SSD, TRIM enabled
Evidence
- Lost session ID
96c6a1e1-88f7-469a-8abc-67b408ddf52a(cwd...\cmc-it-admin-tool), confirmed via surviving MCP connection logs underAppData\Local\claude-cli-nodejs\Cache\<project>\mcp-logs-*. The transcript96c6a1e1-*.jsonlno longer exists in~/.claude/projects/<project>/. - Timing ties the loss to the update: the old session's MCP log was last touched at 12:01, and the new replacement session began at 12:03.
- Full-disk scan across all local drives found no copy. Not in the Recycle Bin (verified at the raw
$I/$Rlevel). No Volume Shadow Copies. SSD + TRIM → file-carving/undelete not viable. - The extension keeps only a single current session pointer per workspace (
memento/webviewView...instate.vscdb) — no durable list of past sessions, so once the file is gone there is no in-app reference to it either.
Impact
A large, multi-week, important conversation was lost with no recovery path.
Root issues / requests
- Transcripts are hard-deleted (Node
fsunlink), which bypasses the Windows Recycle Bin. Please soft-delete instead — move to a.trash/recycle-aware location — so high-value history is recoverable. cleanupPeriodDaysdefault of 30 days is too aggressive for low-volume, high-value data like chat history. Consider a much longer default, or exempt transcripts from silent hard-deletion.- Extension update/restart should resume the prior session, not spawn a fresh one and prune the old transcript.
- Blank resume picker after an update — the picker read an empty project folder with no fallback/warning.
Suggested mitigation for other users (until fixed)
- Set
"cleanupPeriodDays": 3650in~/.claude/settings.json. - Periodically back up
~/.claude/projectsto versioned storage. - After any extension update, use the resume/history picker (or
claude --resume) before starting new work.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗