hermes-agent/apps/desktop/electron
brooklyn! 09a6a2ddd7
fix(desktop): stream the transcript while the window is backgrounded (#42399)
The chat transcript reaches the screen through a requestAnimationFrame-gated
flush (useSessionStateCache). The main BrowserWindow never set
backgroundThrottling, so Chromium paused rAF and clamped timers whenever the
window was blurred or occluded -- the live answer would stall until the window
regained focus or the user refreshed. In practice this bit any time Hermes
wasn't the focused window mid-turn (typing in your editor while the agent
replies, detached devtools, another window on top), presenting as "thinking,
no text, have to refresh."

Opt the renderer out of background throttling so a streaming chat app actually
streams in the background:
- backgroundThrottling: false on the main window (matches the secondary
  windows that already set it)
- disable-renderer-backgrounding / disable-backgrounding-occluded-windows /
  disable-background-timer-throttling at the process level for the
  occlusion case

Latent since the desktop app landed (#20059), not a recent regression.
2026-06-08 17:01:08 -05:00
..
backend-probes.cjs
backend-probes.test.cjs
bootstrap-platform.cjs
bootstrap-platform.test.cjs
bootstrap-runner.cjs
bootstrap-runner.test.cjs
connection-config.cjs
connection-config.test.cjs
desktop-uninstall.cjs
desktop-uninstall.test.cjs
entitlements.mac.inherit.plist
entitlements.mac.plist
gateway-ws-probe.cjs
gateway-ws-probe.test.cjs
hardening.cjs
hardening.test.cjs
main.cjs fix(desktop): stream the transcript while the window is backgrounded (#42399) 2026-06-08 17:01:08 -05:00
oauth-net-request.cjs
oauth-net-request.test.cjs
preload.cjs