fix(web): cross-discipline UI review fixes for the primary flow - #169
Merged
Conversation
…ition-all in primitives
connect_agent returns when the client handshake completes, but the server registers the agent in the async upgrade callback. On slow CI the terminal handshake could hit the unaudited agent-offline rejection instead of the audited capability gate, failing the audit assertion.
The handler persists the IP columns before writing the audit row, so observing the updated IP does not guarantee the audit insert is visible yet on slow CI.
Disconnect cleanup clears docker viewers after the ServerOffline broadcast; on slow CI the reconnecting agent could observe the stale viewer set and receive docker start frames the test asserts against. Poll the persisted feature list, whose docker removal is the cleanup's final step.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A full cross-discipline interface review (accessibility, layout, writing, typography, colors, visual polish) of the highest-traffic flow — login → dashboard → server list → server detail — surfaced 32 verified issues. This PR fixes all of them across 9 commits.
High-severity fixes
Unauthorized): now mapped to localized messages by HTTP status, withrole="alert",aria-invalid, and focus management (d74158b5)grayscale + bg-muted/40, text keeps full-contrast tokens — now 17.5:1 (7e98534c)minmax(min(320px,100%),1fr)+min-w-0cards (7e98534c)h-dvh, fullscreen routes own their scrolling viaScrollArea(d74158b5)role="img"summary label (721e78e4)Medium fixes
47d2e540)7e98534c)7e98534c)<main>landmarks deduped + site-wide skip link (47d2e540)--status-healthy/warning/dangersemantic tokens; stale Tailwind v3 hexes removed; three divergentgetLossTextClassNamecopies unified (11740850)transition-allremoved from shared primitives so focus rings no longer fade in (11740850)tabular-numson all high-frequency metric numbers (721e78e4)document.documentElement.langnow follows the active language (d74158b5)load/5m agostrings localized via existing helpers (2006aaca)Polish
Cardprimitive (ring-1instead of border+shadow), concentric inner radii, clearer group spacing, no sub-10px font sizes, truncated names gettitle, online dot no longer sharesanimate-pulsewith skeletons (9a3eed9e)antialiased, CJK font fallback stack, dark-mode--muted-foregroundraised to APCA Lc 62.5, chart series palette tokenized as--chart-series-*(literal values to dodge Tailwind v4 theme tree-shaking) (dbc95a08)<h1>landmarks on dashboard/servers pages, detail-page header focus order fixed, "HEALTHY/Healthy" stat card now shows real status (and no longer reports "No data" when all servers are offline), English sentence case sweep + i18next plural keys, icon sizes returned to primitive defaults (1b948632)Deliberately deferred
h1+ back link)nav_*keys stay Title Case until the settings page titles are swept in the same changerounded-lg border bg-cardsurfaces app-wide (separate refactor)Test plan
cargo-independent frontend suite: 730/730 tests pass,bun run typecheckclean,ultracite checkclean (500 files)