hermes-agent/apps/desktop/src/app/right-sidebar
Brooklyn Nicholson 1c0fa12edb feat(desktop): persist & restore terminal tabs + scrollback across relaunch
User terminal tabs and their recent scrollback now survive an app restart
(VS Code parity). Tabs, active selection, cwd, and a serialized scrollback
snapshot are written to localStorage on every change; on launch the tabs
reopen with their history replayed above a fresh shell. Processes are NOT
revived — a new shell starts one line below the restored block.

- Capture: SerializeAddon snapshots the buffer on a 750ms leading-edge
  throttle, so a `cmd; quit` lands on disk before teardown; the snapshot is
  trimmed of its trailing idle prompt (no "double prompt" on restore) and
  capped (200 scrollback lines / 48k chars) to stay under the storage budget.
- Teardown guard: app quit/reload kills the PTYs from the main process,
  firing onExit in the renderer, but React skips effect cleanups on teardown
  so the per-instance `disposed` flag never flips. A pagehide/beforeunload
  flag stops onExit from calling closeTerminal() and wiping the persisted
  tabs right before relaunch restores them. A real `exit`/Ctrl-D still closes.
- Agent mirror tabs stay runtime-only — only user tabs persist.
2026-06-28 22:12:29 -05:00
..
files fix(desktop): remote project picker UX and profile-scoped fs/git routing 2026-06-28 16:23:39 -05:00
review style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
terminal feat(desktop): persist & restore terminal tabs + scrollback across relaunch 2026-06-28 22:12:29 -05:00
file-actions.tsx feat(desktop): add Codex-style review pane 2026-06-25 16:40:27 -05:00
index.test.tsx feat(desktop): add Codex-style review pane 2026-06-25 16:40:27 -05:00
index.tsx fix(desktop): remote project picker UX and profile-scoped fs/git routing 2026-06-28 16:23:39 -05:00
store.ts feat(desktop): disconnect external (CLI-managed) providers 2026-06-16 00:08:21 -05:00