hermes-agent/apps/desktop/scripts
Brooklyn Nicholson 81779fa6a0 perf(desktop): don't backfill the transcript while its thread streams
Switching to a STREAMING session took ~1.4s to settle while an idle
session settled in ~50ms. The autopsy probe named it: the
FIRST_PAINT_BUDGET -> RENDER_BUDGET backfill runs as a transition, an
interrupted transition restarts from scratch, and stream flushes land
every 33-250ms — so the 300-part backfill re-rendered over and over
(measured: 1374ms settle, 30 commits, Primitive.div x2237 for one switch).

Gate the backfill on the thread being idle. The user lands on the live
tail immediately either way; older turns backfill the moment the run
ends, and 'Show earlier' remains the manual path meanwhile.

Measured on the live app (diag-switch-autopsy, real sessions):
  switch to idle session        ~35-55ms settled (unchanged)
  switch to streaming session   1374ms -> backfill deferred; lands at
                                the live tail like any other switch

Adds diag-switch-autopsy.mjs (per-switch settle/commits/top-renders) and
live-drive.mjs (status/fps/drag one-liners against the running app).
2026-07-27 01:14:29 -05:00
..
perf
.gitignore
after-pack.mjs feat(desktop): ts-ify everything 2026-07-08 16:24:16 -07:00
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-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 feat(desktop): Memory Graph — playable radial timeline of memories + skills 2026-06-30 00:54:21 -05:00
live-drive.mjs
notarize-artifact.mjs
notarize.mjs
patch-electron-builder-mac-binary.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 Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
reload.mjs Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
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 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