Task switcher 'main'/'fork' labels collide with git terminology
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
What happened
I was working with Claude in a git repo, on a feature branch
(feature/multilingual, branched off main). Claude was making edits to a file
in that working tree, and had also spawned a backgrounded subagent for a
parallel research task. When I opened the task switcher (↓ to manage), I saw
this:
<img width="957" height="130" alt="Image" src="https://github.com/user-attachments/assets/64742723-6932-4ad0-acde-023e8bdb2496" />
Two threads labeled main and fork. My immediate read — given that I'm in a git
repo and was actively thinking about branches — was "Claude is making edits
on the main git branch instead of my feature branch." That sent me into a
panic that committed work was being polluted on the protected branch.
It wasn't true. The labels mean:
- main = the primary Claude Code conversation thread
- fork = a spawned parallel agent thread
The actual git branch checked out was feature/multilingual the entire time,
and edits were correctly landing in that working tree. But by the time Claude
explained the terminology, several minutes of trust damage had already
happened.
Why it's confusing
main and fork are loaded git terms. In a git context, "main" specifically
denotes the protected default branch and "fork" denotes a derivative
branch/repo. Using those exact words for an unrelated concept (parallel
conversation threads) inside a tool whose primary use case is editing code in
git repos is a near-certain misread for any user glancing at the UI without
reading docs.
The collision is worse because:
- The labels appear in green/uncolored text with no other context — there's
no icon or qualifier hinting "conversation thread" vs "git branch."
- The agent footer says accept edits on immediately above, which primes the
user to think about edits + branches.
- By the time the user realizes the words mean something else, they've
already done the worst-case mental math.
What Should Happen?
Suggested fixes (ranked)
- Rename main → primary (or chat, or you) and fork → agent (or subagent, or
background). These don't collide with git nouns.
- If the labels stay, prefix them with an icon/word that disambiguates ("💬
main" vs "🌿 main" — or just always show the actual git branch in the same
line).
- At minimum, surface a one-time tooltip or help-on-first-use explaining the
terminology.
Repro
- Be in a git repo on any non-main branch.
- Have Claude spawn a subagent (any Agent tool call without subagent_type
set, or with one).
- Open the task switcher (↓ to manage).
- Observe main and fork labels.
Environment
- Claude Code CLI (interactive)
- macOS
Error Messages/Logs
Steps to Reproduce
Kick off a task that spawns two agents.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.123
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗