Root Cause of Claude Code VS Code Extension Session Title Corruption Identified

Session Title Corruption Bug in Claude Code Extension
A persistent bug in the Claude Code VS Code extension causes session titles in Past Conversations to become corrupted—showing wrong titles, reverting to last-prompt text, or disappearing entirely. A developer has identified the architectural root cause and collected 20+ related GitHub issues that all stem from the same underlying problem.
Root Cause Analysis
The extension's session list reads titles by performing a raw string search for "customTitle" in the last 64KB of each .jsonl session file. This approach creates three specific failure modes:
- 64KB eviction — In long sessions (common with agentic workflows), the custom-title entry gets pushed outside the 64KB tail window, causing the title to be lost.
- Cross-session content contamination — The scanner doesn't distinguish between real custom-title JSONL entries and the string "customTitle" appearing inside tool results or conversation content, causing one session's title to appear on a completely different session.
- Overwrite on resume — When a session is resumed and new content is appended, any custom-title from /rename gets buried. The extension then falls back to lastPrompt or picks up a stale match from tool output.
Affected Issues
The developer has collected 20+ GitHub issues related to this problem:
- Title lost: #33165, #32150, #25090, #23610, #26240, #29194
- Wrong title: #29801, #9668, #29342, #27751
- Sessions invisible: #9898, #31813, #29088, #22215, #18619, #11232
- Feature requests (workarounds): #11956, #9198, #11694, #7441
Many of these issues were auto-closed as duplicates by the bot without a fix landing. Partial fixes in v2.1.47 and v2.1.71 addressed specific symptoms but not the underlying architecture.
Proposed Solution and Workaround
The developer proposes storing titles in a separate lightweight index (e.g., title-registry.json) rather than scanning conversation content. This approach would survive session growth, be immune to content contamination, and enable cross-client sync.
For a current workaround, the developer has been running a UserPromptSubmit hook + systemd timer + persistent title registry that re-asserts the correct title on every prompt and every 2 minutes. Implementation details are available in issue #32150.
This bug affects anyone using Claude Code for task-based workflows where matching sessions to work items matters. The full root cause analysis with all 20 issues linked is available in the GitHub discussion.
📖 Read the full source: r/ClaudeAI
👀 See Also

Mnemos: Open-Sourced Local-First Memory Layer for Coding Agents
Mnemos is a local-first memory layer for solo coding-agent workflows that addresses common memory system failures like scope bleed, stale facts, and unbounded transcript growth. The public beta includes SQLite starter profiles, MCP support for Claude Code/Desktop, and a biomimetic pipeline with components like SurprisalGate and MutableRAG.

Crow: Open-Source MCP Platform Adds Persistent Memory and P2P Sharing to LLM Frontends
Crow is an open-source, self-hosted MCP server platform that provides LLM frontends with SQLite-backed persistent memory, structured research tools, and encrypted peer-to-peer sharing. It works with any MCP-compatible client like Claude Desktop, Cursor, or Windsurf and requires no cloud dependency by default.

Logic Virtual Machine: A Prompt-Based System to Halt LLM Reasoning Collapses
A researcher has developed a Logic Virtual Machine (LVM) prompt that forces LLMs to halt and report specific collapse modes when they encounter paradoxes or reasoning drift, based on a single stability law: K(σ) ⇒ K(β(σ)). The prompt is substrate-independent and works on models like Grok and Claude.

Selfware: Rust-based local AI agent framework with PDVR architecture
Selfware is an open-source AI agent framework built in Rust for local inference, implementing a PDVR cognitive cycle with 54 built-in tools and designed for long-running tasks on consumer hardware.