Repository navigation
fix(hud): let a Settings banner carry its own next step - #494
michelhonold wants to merge 3 commits into
Conversation
The Settings error box drew a banner as one line and put the video failure's next step under any banner, whether or not it belonged to it. A banner that needed its own step had to fold it into its sentence, which the status language rules out for a box, and could show an unrelated video step beneath it. enter_settings_menu now takes an action beside the banner, drawn on the box's second line; the video failure's step is drawn only under the video failure. The callers that joined an observation and a step in one banner (a switch or value that could not be applied, a change that is live but could not be saved) pass them separately with unchanged words, and the auto-opened video banner passes the failure's own step. Fixes #371 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Also names the no-step renderer test after what it asserts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The startup warning for a station interface that cannot be honoured
folded its next step into the sentence after an en-dash ("No usable
interface – pick one to continue."), on the Operator Screen's Settings
box and in the web UI's PSN section alike. Both surfaces now show what
was observed on the main line and the step on a muted second line, as
docs/STATUS_LANGUAGE.md asks of a box.
The pair is still worded in one place: _refresh_psn_source_advisory
sets the banner and its step on the app, the Settings menu opens with
them as banner= and action=, and the web provider passes the step to
the PSN partial, which renders it as the box's .notice-sub.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review roundsThree rounds over the full Round 1
Round 2 - nothing beyond cosmetic. Checked: every opener of the Settings menu (11 call sites), the manual-open fallback (video sentence or element wording) still draws the video step, the auto-open banner's step is refreshed with its text each frame while the menu is open, the Settings menu is not a cached picture so the new state field needs no cache key, the render thread only reads the new Round 3 - nothing new. Left as is
Mutation results (each broke a test): renderer back to Pinned-interface warning split (the user's decision)The pinned-interface warning moved to the two-line form on both surfaces in 402101d: main line "Pinned network interface '' is not available. No usable interface.", step "Pick one to continue.". The web UI's PSN section draws the step as the caution box's Round 4 (full
Round 5 - nothing beyond cosmetic. Checked: every consumer of the advisory (PSN partial, the services provider, the server's empty default, the live-apply refreshes in Mutation results (each broke a test): the startup menu opened without the step; the step never set; the step not reset (a stale step outliving its banner); the banner keeping the step in its sentence; the web provider dropping |
Plan
enter_settings_menutakes anaction=besidebanner=, stored, cleared on exit, carried intoOverlayStateSummary
Fixes #371.
The Operator Screen's Settings error box drew a banner as one line and put the video failure's next step under any banner, whether or not it belonged to it. A banner that needed its own step had to fold it into its sentence, which
docs/STATUS_LANGUAGE.mdrules out for a box, and could show an unrelated video step beneath it.enter_settings_menu(banner=, action=): the action is the banner's one next step, drawn under it in the box's lighter second-line style. The box draws the video failure's step only when it shows the video failure (no banner)..notice-subline). It is still worded in one place,_refresh_psn_source_advisory, which sets the banner and its step; the web advisory carries the step asstep. The fallback form ("… Using auto-detected .") has no step.Test plan
ruff,mypymake ci-remote🤖 Generated with Claude Code