[BUG] Startup banner hint '+N more · /status' points at /status, which never shows the hidden notices
Summary
At startup, when more than one info/announcement-tier notice is active, the banner shows one of them plus a dimmed hint +N more · /status. Running /status does not show the hidden notice(s). As far as I can find, nothing does: the overflowed notices are counted and then dropped, and the hint points at a dialog that never renders them.
Environment
- Claude Code v2.1.259 (native install, macOS, Darwin 24.6.0)
- Claude Max, Fable 5.1
- Terminal: ssh session from AbsoluteTelnet on Windows, TERM=xterm-256color, 141x35
What I saw
Launch screen (first launch after auto-update to 2.1.259):
Auto mode is now Claude Code's default permission mode.
Auto mode lets Claude handle permission prompts automatically. Claude checks each tool call for risky actions and prompt injection before executing, runs the ones it assesses as lower-risk, and blocks the rest.
https://code.claude.com/docs/en/permission-modes
+1 more · /status
Then /status: the dialog shows version, model, account, working directory, memory files, setting sources and tool status as usual. There is no section listing startup notices, and nothing resembling a second notice appears in any tab.
A secondary problem, visible in the same screen: the auto-mode block is ONE notice rendered as three lines (title styled bold, body and URL styled dim), but bold and dim are the only cues separating the title from the details. On a light-background terminal with a "bold uses bright color" setting on, SGR 1 renders as bright black, i.e. gray, which is the same thing SGR 2 renders as. Verified with a bare printf: bold, dim and bold+dim were indistinguishable. So the four lines read as an undifferentiated run, and +1 more looks like it could mean "one more line of this" rather than "one more notice". I have since turned that terminal setting off on my side and the title now renders heavy, so this is not a request to fix my terminal; the point is that bold-as-bright is the default in xterm and several other terminals, and any user with it on sees the notice this way. A structural cue for the title (a bullet or marker, or a blank line between notices) would remove the ambiguity without depending on how the terminal maps bold and dim.
Expected
Either /status (or whatever the hint names) lists the notices that did not fit, or the hint is not shown.
What the code does (2.1.259 bundle, read from the shipped binary)
The startup-notice renderer splits the active notices into two groups:
- warning-tier notices are all rendered;
- info-tier and announcement-tier notices compete for a single "announcement slot". A notice that claims first-show wins (the auto-mode-default notice does), otherwise priority order picks one. The rest are only counted:
slotOverflowCount = <active info/announcement notices> - 1.
When that count is above zero the banner appends a hint component whose props are {command: "/status", children: ["+", slotOverflowCount, " more"]}.
The slot result is then latched for the session (latchAnnouncementSlot defaults to true), so re-rendering the banner in the same session shows the same winner. The only places that render with latchAnnouncementSlot: false are the transcript export and the session-resume preview, and even those render the slot winner plus the same +N more hint, never the overflow list itself.
I could not find any other consumer of the active-notice list. The /status dialog does not import or render it. So the hidden notice is unreachable in that session.
Why it matters
Info/announcement notices include things the user may actually need to see once: "Using <model> (from project settings)" when a project pins a model, the Remote Control auto-on notice, channel-loading status, and server-fed announcements. The hint tells the user where to look, and looking there finds nothing, which reads as "I am missing something and cannot find it."
Repro
- Be on a launch where the auto-mode-default one-time notice is due (fresh
~/.claude.jsonwithouthasSeenAutoDefaultNotice, or any other announcement-slot notice). - Have at least one more info/announcement-tier notice active at the same launch, e.g. a project
.claude/settings.jsonthat setsmodel(triggers the "Using ... (from project settings)" notice). - Launch
claude. The banner shows one notice and+1 more · /status. - Run
/status. The second notice is not shown anywhere.
Suggested fixes (any one of them)
- Add a "Notices" section to
/statusthat renders every currently-active notice, including the ones the slot dropped. - Or render the overflowed notices as a dimmed list under the winner instead of just counting them.
- Or drop the
/statuspart of the hint until one of the above exists, so it does not send the user somewhere empty. - Separately: give each notice a structural marker (bullet, or a blank line between notices) so the title/details split does not rely on bold and dim rendering visibly different from normal text.