fix(ui): redesign the who's-online roster menu#111668
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 20, 2026, 1:16 AM ET / 05:16 UTC. Summary PR surface: Source +54. Total +54 across 1 file. Reproducibility: not applicable. the PR changes presentational styling, and its supplied captures directly show the intended before/after UI state. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Retain the CSS-only implementation if a maintainer’s final visual check confirms it matches the intended sidebar-menu language at supported viewport sizes and themes. Do we have a high-confidence way to reproduce the issue? Not applicable: the PR changes presentational styling, and its supplied captures directly show the intended before/after UI state. Is this the best way to solve the issue? Yes: keeping the change CSS-only is the narrowest maintainable way to align this existing roster popover with adjacent Control UI menus without changing presence behavior. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against bdf71d7d98b6. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +54. Total +54 across 1 file. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Merged via squash.
|
What Problem This Solves
The footer "who's online" roster menu (team picker) in the Control UI looked unpolished: it relied on Web Awesome's default dropdown chrome instead of the app's menu styling, so its padding, corner radius, and background didn't match the sibling sidebar menus. The title didn't share a left edge with the rows (Web Awesome reserves a checkmark gutter for informational people rows), the 20px footer-size avatars were undersized for two-line name+email rows, and the name/email hierarchy was flat.
Why This Change Was Made
CSS-only redesign of
.presence-roster-menuinui/src/styles/layout.css, aligning it with the sidebar's other fixed menus (customize/session menus):--radius-lg,--bg-elevated,--border-stronghairline,--shadow-lg, 232–288px width.::part(checkmark)) and item metrics are overridden so the title, avatars, and text share one left edge.--textat weight 500 over the muted email subtitle; hover/focus rows use the app's standard--bg-hovermix with--radius-md.User Impact
The online-roster popover from the sidebar footer facepile now reads like a native part of the app: consistent chrome, aligned columns, clearer name/email hierarchy, and an at-a-glance online indicator per person. No behavior change.
Evidence
Before / after (dark), after (light) — captured via the mock-gateway dev harness with an injected 3-user presence payload:
node scripts/run-vitest.mjs ui/src/components/viewer-facepile.test.ts— 6/6 passed.oxfmt --check ui/src/styles/layout.css— clean;git diff --checkclean.gpt-5.6-sol, branch vs origin/main) — clean, no findings.