hermes-agent/apps/desktop/src/components/pane-shell
Brooklyn Nicholson 47f0cdf3a2 perf(desktop): freeze hidden tab transcripts during streaming
Keep-alive keeps every ever-active tab mounted, but each hidden tab's
ChatRuntimeBoundary still subscribed to its view's $messages — so every
streaming delta flush (~30x/s) re-rendered every busy tab's whole thread,
and five concurrent sessions dropped the app to a crawl.

Flow the pane layer's visibility down as PaneVisibleContext and gate the
$messages subscription on it: a hidden tab freezes its transcript (status
dots stay live through the separate status atoms) and catches up in one
commit on reveal, since subscribe fires immediately with the current value.
2026-07-26 00:20:40 -05:00
..
tree perf(desktop): freeze hidden tab transcripts during streaming 2026-07-26 00:20:40 -05:00
edit-mode.tsx feat(desktop): layout-tree renderer — splits, zones, pointer drag-session, tab strip 2026-07-13 17:57:54 -04:00
geometry.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
index.ts feat(desktop): layout-tree renderer — splits, zones, pointer drag-session, tab strip 2026-07-13 17:57:54 -04:00
pane-visibility.test.ts test(desktop): cover hidden-tab resolution for drops, focus, and timeline 2026-07-25 00:09:30 -05:00
pane-visibility.ts perf(desktop): freeze hidden tab transcripts during streaming 2026-07-26 00:20:40 -05:00