anthropics / anthropics/claude-code

Statusline Nerd Font glyphs render as literal \uXXXX escapes only in Agent-Teams tmux-spawned panes

Ouverte
#89,203 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
area:agents area:statusline bug platform:windows
Langage dominant
Python
Étoiles
145k
Forks
23.1k
Métriques de merge des PR
Métriques de PR en attente

Description

## Problem

Custom statusLine command output (using bash ANSI-C quoting, `$'\uXXXX'` etc. for Nerd Font/
powerline glyphs) renders correctly as real Unicode glyphs in:
- a standalone Claude Code session (no multiplexer)
- a manually-opened tmux/psmux pane running Claude Code

But renders as literal backslash-u text (`  Sonnet 5  ...`) in a pane
created by Agent Teams' tmux/psmux teammate mode (`teammateMode: "tmux"`) - same script, same
statusLine config, same machine, same shell, same locale.

## Ruled out

- Locale/encoding: confirmed `LANG=en_US.UTF-8`, `LC_ALL=en_US.utf8`, `LC_CTYPE=en_US.utf8`
identical in both working and broken panes.
- Bash version/ANSI-C quoting: confirmed bash 5.2.37 correctly resolves `$'\uXXXX'` to the raw
UTF-8 byte sequence in the broken pane too - a diagnostic `printf '%b' $'\uXXXX'` run via a
Bash tool call inside the same broken session's pane produced a real glyph, not escaped text.
- The script's own raw output: ran the *exact* statusLine invocation Claude Code uses
(`bash statusline-command.sh` with JSON piped to stdin) and captured its raw stdout bytes
directly to a file before anything could touch a TUI. `repr()` of those bytes shows correct
multi-byte UTF-8 (e.g. `\xee\x83\x87` for U+E0C7) and zero literal `\u` ASCII text anywhere in
the stream. So the script and its invocation are clean regardless of which pane runs it -
the corruption is not introduced by how the command is sourced/invoked for team agents.
- Not a general PUA/Nerd-Font rendering gap (unlike #70301) - the same glyphs work fine in the
same physical terminal/font when Claude Code isn't running as a spawned teammate, and the
escaping here also hits plain, non-PUA Unicode (box-drawing `━` U+2501, math bracket `⟨` U+27E8),
not just Nerd Font PUA codepoints - appears to be a blanket "escape everything above ASCII"
behavior specific to this one render path, rather than a glyph-width/font issue.

This isolates the bug to Claude Code's own status-line rendering/writing path specifically in
the tmux-teammate-spawn code path - confirmed downstream of the script, not the terminal, font,
locale, or shell.

## Environment

- Windows 11, psmux (tmux-compatible multiplexer) as `teammateMode: "tmux"` backend
- Requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=true` (Agent Teams / tmux mode is gated
behind this experimental flag)
- Reproducible: compare statusLine output in a manually-opened pane vs. a teammate-spawned pane
in the same psmux session

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Reproduce the comparison between a manually opened pane and a teammate-spawned pane using the same statusLine command and psmux session. Trace Claude Code's status-line rendering and writing path for tmux-teammate mode, focusing on where valid UTF-8 becomes escaped text. Done means Unicode glyphs render correctly in spawned panes without regressing standalone or manually opened panes.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
bash
Domaine
cli
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.