Skip to content

feat(web): server-load readout redesign — 7 switchable style candidates#39

Merged
DanielGGordon merged 4 commits into
mainfrom
t3code/host-stats-redesign
Jul 23, 2026
Merged

feat(web): server-load readout redesign — 7 switchable style candidates#39
DanielGGordon merged 4 commits into
mainfrom
t3code/host-stats-redesign

Conversation

@DanielGGordon

Copy link
Copy Markdown
Owner

What

Redesign candidates for the sidebar server-load readout (the CPU 12% MEM 3.2/15.6G line next to Settings). The old one was tiny and colorless; this PR turns the readout into a pluggable style and ships 7 redesigns plus the original, switchable live from Settings → Features → Sidebar → Server load style (per device, default stays classic).

Each candidate was designed by a different model against the same brief (bigger, color required, load-ramped via the app's success/warning/destructive tokens, ≤ ~150×28px, both themes):

Style Model Design
signature fable-5 dot-on-track precision faders, translucent wake, 2-min peak-hold ticks
bars opus-4.8 stacked color-ramped meter bars on a shared grid
sparkline sonnet-5 live CPU history sparkline + bold hero figure
segments gpt-5.6-sol 10-cell LED meters with recent-peak afterglow
rings glm-5.2 dual donut gauges
equalizer kimi-k2.7-code 24-bar CPU history equalizer, newest emphasized
badge gemini-3.1-pro tinted status pill with (pulsing) health dot

Comparison

All shots are the live readout on this branch under generated CPU load waves, in both themes:

comparison

Full-size app context shots

Light: light-full

Dark: dark-full

Plumbing

  • sidebarHostStatsStyle client setting (contracts) + style picker row in Features settings.
  • apps/web/src/components/host-stats/ — variant registry; classic extracted from Sidebar.tsx unchanged.
  • useHostStatsWithHistory — rolling ~2-minute sample window (24 × 5s) for the history-driven styles, cached at module scope so it survives sidebar remounts (e.g. visiting Settings and coming back).
  • Fixes the pre-existing DesktopClientSettings round-trip test broken by feat(web): show dotfiles in the file explorer and allow changing its root (#33) #34 (fixture was missing fileExplorerShowDotfiles).

Picking a winner

Everything ships behind the picker, so this can merge as-is and the favorite can be promoted to default (and the rest culled) in a follow-up once you've lived with them. The screenshots under docs/host-stats-variants/ can be deleted at that point too.

🤖 Generated with Claude Code

DanielGGordon and others added 4 commits July 21, 2026 17:59
…d variants

Scaffolding for the server-load readout redesign: a sidebarHostStatsStyle
client setting, a Server load style picker in Settings -> Features, a
variant registry under components/host-stats/ (classic extracted from
Sidebar.tsx + 7 placeholder variants to be filled in by design agents),
and useHostStatsWithHistory providing a rolling 2-minute sample window
for sparkline/trend styles.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Each variant was written by a different model against the same brief
(bigger, colorful, load-ramped via success/warning/destructive tokens):

- signature  fable-5          dot-on-track precision faders + peak ticks
- bars       opus-4.8         stacked color-ramped meter bars
- sparkline  sonnet-5         CPU history sparkline + hero figure
- segments   gpt-5.6-sol      10-cell LED meters with peak afterglow
- rings      glm-5.2          dual donut gauges
- equalizer  kimi-k2.7-code   24-bar CPU history equalizer
- badge      gemini-3.1-pro   tinted status pill with pulsing dot

Also fixes the pre-existing DesktopClientSettings round-trip test broken
by #34 (fixture was missing fileExplorerShowDotfiles).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Visiting Settings unmounts the sidebar; without this the sparkline/
equalizer history restarted from one sample every time you came back.
Cache the rolling window at module scope; explicit disable still clears.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Live captures from an isolated instance under generated load waves,
8 styles x 2 themes, plus the labeled comparison sheet used in the PR.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions github-actions Bot added size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Jul 21, 2026
@DanielGGordon
DanielGGordon merged commit c679200 into main Jul 23, 2026
6 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant