anthropics / anthropics/claude-code

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

Đang mở
#89,203 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area:agents area:statusline bug platform:windows
Ngôn ngữ chính
Python
Star
145k
Fork
23.1k
Chỉ số merge pull request
Chỉ số pull request đang chờ

Mô tả

## 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

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
bash
Lĩnh vực
cli
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
48/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.