[BUG] AI-generated session titles override user renames and customTitle entries (v2.1.78+)

Resolved 💬 5 comments Opened Mar 19, 2026 by interconnectedMe Closed May 28, 2026

Title

[BUG] AI-generated session titles override user renames and customTitle entries (v2.1.78+)

Body

Problem

As of Claude Code extension v2.1.78 (and/or VS Code 1.112), the extension generates AI-summarized titles for sessions that override:

  1. Manual renames via the sidebar pencil icon
  2. custom-title entries written to the session .jsonl file
  3. The user's actual first message

The AI title generator rewrites titles unpredictably, stripping task numbers and context that users rely on for session identification.

Evidence

AI rewrites user input into "clean" summaries

| User's first message (verbatim) | Extension displays |
|---|---|
| "Task 399.10.47 - We need these titles to stick" | "Make session titles persistent" |
| "This is a Test Chat to see if this gets picked up by whatever is automatically doing whatever it is doing" | "Test chat session for automatic detection" |

The user typed these exact strings. The extension discarded them and generated its own summary.

Manual renames don't persist

  1. User renames session via sidebar pencil icon to "Chat Session Titles - Past Conversations"
  2. Extension immediately or on next reload overwrites it with "I've thought of some words that might refine the one-pager..." (a quote from inside the conversation content)
  3. This happens repeatedly — the AI title regenerates on every Developer Reload

customTitle JSONL entries ignored

The session .jsonl file contains correct custom-title entries (both compact and spaced JSON format) as the last lines of the file. The extension ignores them in favour of its own AI-generated title.

Impact

  • Task tracking broken: Users who name sessions by task/issue number (e.g., "Task 215.0.0 - Mechanical Scripting") lose that mapping when the AI renames it to something generic
  • Manual renames pointless: The sidebar rename feature doesn't persist — the AI overwrites it
  • Cross-session contamination: The AI sometimes picks up quoted text from conversation content rather than the user's actual first message, causing sessions to display titles from other conversations

Steps to Reproduce

  1. Open Claude Code extension v2.1.79+ in VS Code 1.112+
  2. Start a new session
  3. Type a specific first message like: Task 123 - Fix login bug
  4. Wait for the session to appear in Past Conversations
  5. Observe: title is an AI summary, not your message
  6. Rename via pencil icon to "Task 123 - Fix login bug"
  7. Do a Developer Reload (Ctrl+Shift+P → Developer: Reload Window)
  8. Observe: title reverts to the AI-generated version

Expected Behaviour

  1. The user's first message (or manual rename) should be the session title
  2. Manual renames should persist across reloads
  3. custom-title entries in the .jsonl file should be respected
  4. AI title generation, if used, should be opt-in and never override explicit user choices

Environment

  • Claude Code extension: v2.1.79
  • VS Code: 1.112
  • OS: Ubuntu Linux
  • Platform: Linux 6.17.0-19-generic

Related Issues

This is the latest escalation in a long-running family of session title bugs:

  • #33165 — customTitle entries lost outside 64KB tail window
  • #32150 — Session titles corrupted by last-prompt overwrites (earlier report with full root cause analysis and workaround implementation)
  • #29801 — Titles differ between VS Code and Claude for Windows
  • #9898 — Poor session indexing design (auto-closed without fix)
  • #9668 — "Warmup" titles overwrite everything
  • #11956, #9198, #7441 — Feature requests for reliable session renaming

The common root cause across all of these: the extension does not have a persistent, user-controllable title registry. Each version introduces a new title resolution strategy that breaks in a new way.

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗