rdmsm4x-changelog-20260904-0001-claude-statusline-v2.3.0-frost-model-chip-userhost-fleet
[2026-09-04 00:01:27 EDT · rdmsm4x] — session ran 2026-09-03 23:55 EDT → 2026-09-04 00:01 EDT (~6 min).
Summary: Claude Code status line taken from v2.2.0
to v2.3.0 and installed on all six fleet hosts: the
model segment now renders as a Nord Frost background
chip shaded by model family, row 2 identity leads with
user@host instead of a bare host, and a missing
jq now prints an explicit banner instead of silently
degrading every meter to n/a. The reported "lost
bars / no context window" symptom was NOT reproducible — see
Findings.
Findings — the reported symptom did not reproduce anywhere
Measured, not assumed:
| Check | Result |
|---|---|
~/.claude/statusline.sh on rdmsm4x vs canonical |
identical (86252490851c98a4…), v2.2.0 intact |
statusline-verify.log |
empty — no restore had ever fired before this session |
| Real payload captured from the live session | complete: context_window,
rate_limits.five_hour, rate_limits.seven_day
all present and populated |
| v2.2.0 rendered against that real payload | full CTX / 5H / 7D bars, percentages, cost — correct |
| Status line process env | COLUMNS=165, jq=/opt/homebrew/bin/jq —
nothing missing |
| Pre-push backup on each of the 5 remote hosts | all 86252490851c98a4… — every host was already
running intact v2.2.0 |
So the script was healthy on all six hosts and produced bars on all
six. Nothing had been clobbered by /statusline or the
statusline-setup agent. The remaining candidates for what
Rich actually saw are display-side and could not be checked from a
Background session (screencapture returned "could not
create image from display" — no Screen Recording grant): terminal
showing only the last row, a font without
U+2588/U+2591, or a different tool's
status line entirely — statusline_sync.zsh --check
reports agy and Codex in DRIFT on rdmsm4x (agy have
ab94fb5c167e want 32e399799337; codex 26 items
want c95bacf9d731). Those two were deliberately left alone;
the request was the Claude status line.
Changes
~/.claude/canonical/statusline.sh → v2.3.0 (then
installed live and pushed):
- Nord Frost model chip. The model segment renders on
a Frost background, shade by family: Opus
#5E81AC(nord10), Sonnet#81A1C1(nord9), Haiku#88C0D0(nord8), Fable#8FBCBB(nord7); unknown falls back to nord10. Foreground is picked per background for contrast — snow#ECEFF4on nord10, polar night#2E3440on the three lighter Frosts.⚡//effort//thinkride inside the chip on the same background (a$RESETmid-chip would punch a hole in the colour block, and$DIMis invisible on light Frost). Family match is onmodel.idfirst, display name second, so a reworded display name cannot silently drop the chip to the default shade. user@hostin row 2. Was a bare hostname.$USER/$HOSTNAMEare shell-provided, so this adds no subprocess. Verified each host renders its OWN name, not the pusher's.- Explicit
jq-missing banner. Withoutjqthe single jq pass yields nothing and every meter degrades ton/a— which looks exactly like "the bars disappeared". Now it says so.command -vis a builtin, so the guard costs nothing. statusline_sync.zshfleet list gap fixed.FLEET=listed 5 hosts and omitted jdmbair13m5, so every--pushreported "ALL HOSTS CONSISTENT" while never touching it. Added.
Everything else in v2.2.0 is unchanged: the one-jq-pass design, the bar geometry and green/yellow/orange/red grading, the 2-cheap-git-calls rule, bash 3.2 portability, responsive bar widths, OSC 8 PR hyperlink.
Verification
bash -nclean.- Rendered against the real captured payload plus
synthetic Opus / Sonnet / Haiku+fast / Fable cases, 94% and 99% meters
(red grade), COLUMNS 70 and 165, a payload with no
rate_limits, and aPATHwith nojq(banner fires, exit 0). - Performance unchanged: 20 renders in 1.785s (new) vs 1.772s (v2.2.0), ~89ms each.
- Post-push, all 5 remote hosts return installed sha
2b3f7ee57f6ef7029de1db0bdce4b96fe3c1658ba7336a38d4689eb8faff190c,jqpresent,settings.jsonstatusLinealready correct (no merge needed on any host). - Live remote render on rdmbair15m5, rdmpw3275m and jdmbair13m5
produced full bars and the correct per-host
richh@<host>.
Files touched
~/.claude/canonical/statusline.sh(555) — v2.3.0~/.claude/canonical/statusline.sha256—2b3f7ee57f6ef7029de1db0bdce4b96fe3c1658ba7336a38d4689eb8faff190c~/.claude/canonical/statusline_sync.zsh— FLEET list~/.claude/statusline.sh(555) on all 6 hosts~/.claude/settings.json—statusLine.commandrestored tobash ~/.claude/statusline.shafter a temporary debug wrapper; net zero change
Backups / how to undo
- rdmsm4x v2.2.0 master:
~/.claude/backups/statusline.sh.v2.2.0-bak-20260903-235959 - Each remote host:
~/.claude/backups/statusline.sh.bak-20260904-0000* - Undo: restore that file over
~/.claude/canonical/statusline.sh(chmod u+w first), re-hash intostatusline.sha256, thenzsh ~/.claude/canonical/statusline_sync.zsh.statusline-verify.shenforces canonical at SessionStart, so canonical must be reverted too — reverting only the live file will be undone at the next session start.
Outstanding owner actions
- Apple Notes entry still pending. This session is
launchctl managername = Background, sonotes_changelog.zshcorrectly refuses (it cannot send AppleEvents). Publish from an Aqua session:zsh ~/scripts/notes_changelog.zsh <this file>. - agy and Codex status lines are in DRIFT on rdmsm4x
and were intentionally not touched.
zsh ~/.claude/canonical/statusline_sync.zshfixes both on this host if wanted. - If the bars still look wrong on screen, the next thing to check is
the terminal font's coverage of
U+2588/U+2591and whether the terminal is showing both status rows.