hermes-agent/apps
Brooklyn Nicholson d65b226497 perf(desktop): gate hot store subscriptions + memoize overlay nav + palette rows
Command Center, Settings, Skills, and Command Palette all subscribed to
hot stores unconditionally —  ticks on every streaming token (title
updates),  on every connect/disconnect. Components that only need
that data on one tab were re-rendering on every stream delta while sitting
on an unrelated tab.

Fixes:
- CommandCenterView: gate / to the Sessions tab
  via useStoreSelector returning a stable empty array on other tabs
- SkillsView: gate  to the MCP tab only
- SettingsView: memoize navGroups (was rebuilt inline on every render with
  fresh onSelect closures for every nav item)
- OverlayNavItem: memo() so nav items don't re-render when a sibling's
  active state changes
- CommandPalette: extract memoized PaletteRow so items don't re-render on
  unrelated parent state changes (open/close, theme, etc)
- CommandCenterView: memoize navGroups array (was inline JSX)
2026-07-28 18:51:34 -05:00
..
bootstrap-installer fix(installer): stamp the bootstrap-complete marker from the Rust installer 2026-07-26 16:02:13 -05:00
desktop perf(desktop): gate hot store subscriptions + memoize overlay nav + palette rows 2026-07-28 18:51:34 -05:00
shared refactor: drop the shared subpath export, keeping package.json untouched 2026-07-28 03:54:49 -05:00