hermes-agent/apps/desktop/src/components
Brooklyn Nicholson d76c7f5409 perf(desktop): memoize PlatformAvatar + StatusDot to kill messaging churn
The sidebar's messaging section renders one PlatformAvatar (labelIcon) and
StatusDot per platform group. The sidebar re-renders on every streaming tick
($sessions/$workingSessionIds/$messagingSessions churn), and both leaves were
unmemoized — so every platform's avatar + dot re-rendered on each delta even
though their props (platformId/tone/className) never changed.

- PlatformAvatar: memo(forwardRef(...)) — pure fn of platformId/name/class/style
- StatusDot: memo() — pure fn of tone/class

Measured (Messaging open, settled, 2 sessions streaming, 3s window):
  before: 96 wasted (PlatformAvatar 32, StatusDot 32, + brand icons)
  after:  0 wasted

Both are shared primitives; the memo also helps every other consumer
(session rows, gateway menu, session tiles) that renders them under a hot
parent.
2026-07-28 20:51:04 -05:00
..
assistant-ui fix(desktop): upload Windows attachments to Linux backends 2026-07-28 12:36:01 -07:00
chat feat(desktop): render the micro-action and underside strips 2026-07-28 19:20:00 -05:00
onboarding refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
pane-shell Merge pull request #73218 from NousResearch/bb/focused-zone-tabs 2026-07-28 03:14:03 -05:00
particles feat(desktop): TikTok-style vibe hearts on a reusable particle system 2026-07-10 05:42:14 -05:00
pet feat(desktop): event-driven live sync — change broadcasts replace the always-on polls 2026-07-28 17:21:58 -05:00
ui Merge pull request #73172 from NousResearch/bb/featured-models 2026-07-28 04:09:46 -05:00
Backdrop.tsx refactor(desktop): drop leva from the chat backdrop 2026-07-27 22:18:51 -05:00
billing-banner.tsx feat(desktop): billing toast + in-chat status-row banner with smart CTA 2026-07-22 18:09:08 -05:00
boot-failure-overlay.test.tsx fix(desktop): recover a failed gateway from the boot-failure screen 2026-07-12 04:07:41 -04:00
boot-failure-overlay.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
boot-failure-reauth.test.ts style(desktop): satisfy merged eslint/prettier config 2026-07-20 23:01:49 +02:00
boot-failure-reauth.ts feat(desktop): add "Connect to existing Hermes" option to first-run onboarding 2026-07-24 12:55:06 -05:00
brand-mark.tsx docs(desktop): add DESIGN.md design-system guide + close two consistency gaps (#40823) 2026-06-06 22:13:17 +00:00
desktop-install-overlay.test.tsx fix(desktop): keep the first-run local-start error from being wiped on mount 2026-07-25 21:34:35 -05:00
desktop-install-overlay.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
error-boundary.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
find-bar.test.tsx fix(desktop): tear down find-in-page highlights on navigation and pin the keybind registration 2026-07-26 17:48:05 -07:00
find-bar.tsx fix(desktop): strip Close-X tips and statusbar tip lectures 2026-07-27 22:03:37 -05:00
first-run-remote-form.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
gateway-connecting-overlay.test.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
gateway-connecting-overlay.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
haptics-provider.tsx perf(desktop): faster session resume & warm AudioContext at idle 2026-06-12 21:07:40 -05:00
idle-mount.test.tsx perf(desktop): idle-mount boot-hidden panes off the cold-start critical path (#67857) 2026-07-20 04:31:32 +00:00
idle-mount.tsx perf(desktop): idle-mount boot-hidden panes off the cold-start critical path (#67857) 2026-07-20 04:31:32 +00:00
language-switcher.test.tsx Add searchable language picker 2026-06-06 07:51:44 -07:00
language-switcher.tsx feat(desktop): button tooltip keybind hints + keybinds settings tab + unified worktree dialog (#65204) 2026-07-16 18:26:21 -04:00
model-picker.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
model-visibility-dialog.tsx fix(desktop): match Edit Models row hover to the model picker 2026-07-28 17:13:20 -05:00
notifications.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
page-loader.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
prompt-overlays.test.tsx feat(desktop): shared UI — per-session prompt overlays, gateway overlays, tab primitives 2026-07-13 17:57:54 -04:00
prompt-overlays.tsx fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
remote-display-banner.tsx refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
session-picker.tsx refactor(desktop): name the overlay z-index ladder 2026-07-27 15:48:09 -05:00
status-dot.tsx perf(desktop): memoize PlatformAvatar + StatusDot to kill messaging churn 2026-07-28 20:51:04 -05:00