hermes-agent/apps/desktop/scripts
brooklyn! 920beecfa8
perf(desktop): long streaming agent sessions — steady window cut, stable rows, stepped backfill, pane-shared budget (#83446)
* test(desktop): stress long agent sessions in the multitab perf scenario

--tools seeds every transcript with settled tool rounds and drives the live
stream as a working agent turn (tool calls opened and completed between text
chunks), and each tile reveal is timed to next paint (reveal_max_ms) so deep
transcripts report their mount cost.

* perf(desktop): hold the transcript window cut steady while streaming

A fresh weight-walk per store flush slid the cut forward one message at a
time, ~30x/s, and every slide re-indexed the whole windowed transcript —
each row rendered a different message and the runtime repository took its
O(window) rebuild path instead of the one-message update. advanceTranscriptWindow
anchors the cut to a message id and re-cuts once per ~half page of new
content instead of once per flush.

* perf(desktop): stable rows, stepped backfill, pane-shared render budget

Three thread-list fixes for long streaming sessions: memoize the visible-
groups slice and each turn row so a budget-cut advance no longer re-renders
every mounted turn per streamed token; raise the first-paint backfill in
BACKFILL_STEP slices (one bounded commit per frame) instead of a single
20-to-600 transition whose commit landed as a 780ms freeze mid-stream; and
share RENDER_BUDGET across mounted panes so a 4-way grid mounts a quarter
page per pane instead of 4x the fibers.
2026-08-10 21:06:59 +00:00
..
perf perf(desktop): long streaming agent sessions — steady window cut, stable rows, stepped backfill, pane-shared budget (#83446) 2026-08-10 21:06:59 +00:00
.gitignore
after-pack.mjs
assert-dist-built.mjs
assert-dist-built.test.mjs
assert-root-install.mjs
before-build.mjs
before-pack.mjs
before-pack.test.mjs
bundle-electron-main.mjs
click-session.mjs
dev-mock.mjs
dev-no-hmr.mjs
diag-code-live.mjs
diag-drag-churn.mjs
diag-drag-trace.mjs
diag-jump.mjs
diag-key-latency.mjs
diag-live-state.mjs
diag-overlay-ab.mjs
diag-overlay-churn.mjs
diag-overlay-full.mjs
diag-overlay-sweep.mjs
diag-real-loop.mjs
diag-ro-storm.mjs
diag-scroll-reset.mjs
diag-sidebar-dom.mjs
diag-switch-autopsy.mjs
diag-switch-trace.mjs
eval.mjs
gen-share-codes.ts
live-drive.mjs
notarize-artifact.mjs
notarize.mjs
patch-electron-builder-mac-binary.mjs
probe-command-palette.mjs
probe-model-picker.mjs
probe-renderer.mjs
probe-thread.mjs
profile-model-picker.mjs
profile-typing-lag.md
rebuild-native.mjs
reload-renderer.mjs
reload.mjs
run-electron-builder.mjs
set-exe-identity.mjs
stage-native-deps.mjs
stage-native-deps.test.mjs
test-desktop.mjs
utils.mjs
write-build-stamp.mjs
write-build-stamp.test.mjs