[BUG] /rename title propagates to every subsequently created session in the project (macOS CLI)

Status Open
Reported on v2.1.223
Maintainer reply None cached
Activity 0 comments · opened Aug 6, 2026

Bug Description

A title set with /rename propagates to every session subsequently created in the same project directory. Over time this collapses the /resume picker into a list of dozens of identically-named sessions, which makes it impossible to find a specific past conversation by name.

This is the same defect as #68466, which was reported for the VS Code extension on Windows and auto-closed as stale (NOT_PLANNED) without a fix. This report is for the macOS CLI, with measured data from a real project directory.

Steps to Reproduce

  1. In a project directory, run /rename some-name in a session.
  2. Start a new session in the same directory (claude).
  3. Open /resume.

The new session is listed as some-name rather than getting its own auto-generated title. Every session created afterwards gets the same name.

Measured impact

Counting the persisted titles across one project's transcripts (~/.claude/projects/<project>/*.jsonl, reading the last customTitle record in each file):

91  transcripts total
46  transcripts carry a customTitle
 2  distinct titles among those 46

41 sessions  "<title-A>"
 5 sessions  "<title-B>"

So two /rename invocations accounted for the titles of 46 separate conversations. 41 distinct conversations — spanning several days and unrelated tasks — are all named <title-A>.

The titles do not cluster by anything else either: the 41 sessions sharing <title-A> span multiple different bridge session ids, so this is not scoped to a single connection.

Expected Behavior

/rename sets the title of the current conversation only. A new conversation gets its own auto-generated title.

Actual Behavior

The renamed title becomes the default for every subsequently created session in that project directory, so /resume shows a wall of duplicates and the picker's search-by-name is useless for locating a specific conversation.

Why this matters beyond cosmetics

/resume and its search are the primary way to get back to a past conversation. When 41 sessions share one name, name-based search cannot narrow anything down, and the only reliable way back is to look up the session UUID by grepping the raw transcripts:

rg -l 'some unique string from that session' ~/.claude/projects/*/*.jsonl
claude -r <uuid-from-filename>

That works, but it means the built-in picker cannot be used for its main purpose.

Environment

  • Claude Code 2.1.223
  • macOS (Darwin 25.5.0), Apple Silicon
  • CLI (not the VS Code extension)

Related

  • #68466 — same defect, VS Code extension on Windows, closed as stale without a fix
  • #65010 — manual rename overwritten by auto-titling (different manifestation)
  • #83634 — desktop global search doesn't match renamed titles

View original on GitHub ↗