mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-27 17:58:07 +00:00
The prompt rail mounts in every chat surface, and a tab group keeps inactive tabs mounted, so a background timeline was stringifying every user prompt's full text on each store update — including on every streamed assistant token, since the selector walked all messages — plus running a scroll listener and a getBoundingClientRect per prompt against a viewport nobody was looking at. It now defers each piece until it can be seen. An inactive pane returns before a single hook is declared (usePaneVisible, the same context the hidden-tab transcript freeze uses), so no subscription is opened at all. An active rail subscribes to prompt IDS rather than prompt text and reads the transcript imperatively only when that signal changes, which takes streaming off the derivation path entirely; an identical derivation hands back the previous array so a filtered-out prompt doesn't restart the measure effect. The offset pass bails below the render threshold instead of measuring a rail that renders null, ahead of the existing following-the-bottom fast path, and the hover popover keeps its shell for the fade but builds its rows on first open. |
||
|---|---|---|
| .. | ||
| bootstrap-installer | ||
| desktop | ||
| shared | ||