/resume hides conversations that started with a local command and shows broken branch names

Resolved 💬 3 comments Opened Mar 25, 2026 by v3nividiv1ci Closed Mar 29, 2026

Bug description

Two related issues when a conversation begins with a local command (e.g. /login):

  1. The conversation is hidden from /resume list, even though it contains substantial user-initiated work afterward.
  2. Branch names are unreadable — when the conversation has branches (sidechains), /resume shows the raw <local-command-caveat> XML tag as the branch label instead of a meaningful summary, making it impossible to distinguish between branches.

Steps to reproduce

  1. Start a new conversation
  2. Run /login (or any local command) as the first action
  3. Continue working in the conversation normally
  4. Create conversation branches (sidechains) during the session
  5. Exit the conversation
  6. Run /resume

Expected behavior

  • The conversation should appear in /resume list
  • Branches should show meaningful names based on actual conversation content

Actual behavior

  • The conversation is completely hidden from /resume. The only way to restore it is via claude --resume <session-id> if you happen to know the UUID.
  • When branches are accessed, they display as:

``
claude --resume "<local-command-caveat>Caveat: The messages below were generated by the user while running local comm (Branch)"
claude --resume "<local-command-caveat>Caveat: The messages below were generated by the user while running local comm (Branch 2)"
``
Making it impossible to tell which branch is which.

Root cause

The /login command inserts a <local-command-caveat> tag as the first message. /resume uses this first message for both conversation listing and branch naming, causing it to either hide the conversation or display garbled names.

Environment

  • Claude Code CLI
  • macOS

View original on GitHub ↗

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