VS Code: externally-appended custom-title isn't re-read on tab activation (only a window reload applies it)

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 0 comments · opened Jul 29, 2026

Summary. When a {"type":"custom-title",...} record is appended to a session transcript (~/.claude/projects/<proj>/<sid>.jsonl) by an external process, the VS Code extension does not apply it to the tab label until the whole window is reloaded. Even activating the tab (clicking it, or switching away and back) does not trigger a re-read for a tab that was opened via the vscode://anthropic.claude-code/open?prompt=... deep link.

Environment. VS Code (stable) + Claude Code extension 2.1.220, Windows 11.

Steps to reproduce.

  1. Open a Claude Code tab via the vscode://anthropic.claude-code/open?prompt=... deep link (the tab gets a prompt-derived title).
  2. Append a {"type":"custom-title","customTitle":"<new title>","sessionId":"<sid>"} line to that session's .jsonl.
  3. The tab label does not change - not on its own, and not when the tab is activated.
  4. Only Developer: Reload Window makes the extension pick up the new title.

What I verified (UI-Automation-driven experiment on Windows):

  • A genuine tab activation - confirmed by VS Code's tab selection moving (SelectionItemPattern.IsSelected flipped) - does not cause a re-read.
  • 6 rounds of fresh custom-title writes followed by real activations left the rendered tab label unchanged (0/6).
  • The record sits ~28 KB from EOF, well inside the last 64 KB, so this is not a tail-scan eviction.
  • The installed extension contributes no rename/refresh command that an external tool could invoke.

Impact. External tooling that renames tabs by writing custom-title to the transcript (a fairly common pattern) cannot get the new title to render without forcing a full, state-destroying window reload.

Request. Either:

  • (a) file-watch the active transcript and apply the newest custom-title reactively, or
  • (b) expose a command (e.g. claude-code.refreshSessionTitle) that forces a re-read for a given session,

so an external tool can update a tab title without a disruptive window reload.

Related: #33165 (programmatic session rename API), #46432 (manual refresh for sessions).

View original on GitHub ↗