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 fix(desktop): keep react-router in one runtime chunk 2026-08-10 02:04:47 -04:00
assert-dist-built.test.mjs fix(desktop): keep react-router in one runtime chunk 2026-08-10 02:04:47 -04:00
assert-root-install.mjs
…
before-build.mjs
…
before-pack.mjs build(desktop): stage get-windows like node-pty 2026-08-08 12:17:50 -05:00
before-pack.test.mjs fix(windows): verify rebuilt Hermes.exe integrity before shipping it as an update (#69179) 2026-07-24 19:11:35 -07:00
bundle-electron-main.mjs build(desktop): stage get-windows like node-pty 2026-08-08 12:17:50 -05:00
click-session.mjs
…
dev-mock.mjs feat(desktop/e2e): Playwright E2E suite with visual regression diffs 2026-07-20 11:44:40 -04:00
dev-no-hmr.mjs
…
diag-code-live.mjs perf(desktop): 60fps sash drag on real sessions — height-gate the RO pins 2026-07-27 01:07:48 -05:00
diag-drag-churn.mjs perf(desktop): stop every zone subscribing to the whole layout tree 2026-07-26 16:53:20 -05:00
diag-drag-trace.mjs perf(desktop): share one ResizeObserver instead of one per consumer 2026-07-26 19:56:55 -05:00
diag-jump.mjs
…
diag-key-latency.mjs perf(desktop): 60fps sash drag on real sessions — height-gate the RO pins 2026-07-27 01:07:48 -05:00
diag-live-state.mjs perf(desktop): 60fps sash drag on real sessions — height-gate the RO pins 2026-07-27 01:07:48 -05:00
diag-overlay-ab.mjs chore: overlay churn measurement probes (sweep + median A/B) 2026-07-28 20:26:58 -05:00
diag-overlay-churn.mjs chore: CDP probe for overlay render-churn measurement 2026-07-28 19:03:17 -05:00
diag-overlay-full.mjs chore: full overlay render-churn measurement probe 2026-07-28 20:04:21 -05:00
diag-overlay-sweep.mjs perf(desktop): memoize sidebar rows + status dots + artifact cells 2026-07-28 20:23:10 -05:00
diag-real-loop.mjs perf(desktop): 60fps sash drag on real sessions — height-gate the RO pins 2026-07-27 01:07:48 -05:00
diag-ro-storm.mjs perf(desktop): share one ResizeObserver instead of one per consumer 2026-07-26 19:56:55 -05:00
diag-scroll-reset.mjs
…
diag-sidebar-dom.mjs perf(desktop): 60fps sash drag on real sessions — height-gate the RO pins 2026-07-27 01:07:48 -05:00
diag-switch-autopsy.mjs perf(desktop): don't backfill the transcript while its thread streams 2026-07-27 01:14:29 -05:00
diag-switch-trace.mjs perf(desktop): 60fps sash drag on real sessions — height-gate the RO pins 2026-07-27 01:07:48 -05:00
eval.mjs feat(desktop): on by default for dev-server runs 2026-07-27 23:52:33 -05:00
gen-share-codes.ts
…
live-drive.mjs perf(desktop): don't backfill the transcript while its thread streams 2026-07-27 01:14:29 -05:00
notarize-artifact.mjs
…
notarize.mjs
…
patch-electron-builder-mac-binary.mjs
…
probe-command-palette.mjs perf(desktop): make ⌘K cost nothing until it opens 2026-07-30 03:01:05 -05:00
probe-model-picker.mjs perf(desktop): add model-picker open-latency probes 2026-07-26 01:10:22 -05:00
probe-renderer.mjs
…
probe-thread.mjs
…
profile-model-picker.mjs perf(desktop): add model-picker open-latency probes 2026-07-26 01:10:22 -05:00
profile-typing-lag.md bench(desktop): systematized perf harness; sunset 12 one-off scripts (#67466) 2026-07-19 07:41:00 -04:00
rebuild-native.mjs
…
reload-renderer.mjs
…
reload.mjs
…
run-electron-builder.mjs
…
set-exe-identity.mjs
…
stage-native-deps.mjs fix(desktop): rebuild get-windows when its win32 binding is missing 2026-08-08 21:23:20 -05:00
stage-native-deps.test.mjs fix(desktop): rebuild get-windows when its win32 binding is missing 2026-08-08 21:23:20 -05:00
test-desktop.mjs change(ci/desktop): move desktop app build into check job 2026-07-13 17:22:17 -04:00
utils.mjs
…
write-build-stamp.mjs fix(desktop): stop hard-failing pack on non-git checkouts + fix ZIP-path autocrlf (supersedes #67643) (#67730) 2026-07-19 19:29:36 -04:00
write-build-stamp.test.mjs fix(desktop): stop hard-failing pack on non-git checkouts + fix ZIP-path autocrlf (supersedes #67643) (#67730) 2026-07-19 19:29:36 -04:00