singularity-forge/web/components
Tom Boucher dfb4fbecef fix: preserve interactive terminal across tab switches and project changes (#3055)
Two root causes destroyed terminal state during normal navigation:

1. The pagehide handler fired a shutdown beacon unconditionally, but on
   mobile/Safari tab switches pagehide fires with event.persisted=true
   (bfcache entry). This killed the server and all PTY sessions when the
   user merely switched browser tabs. Fix: check event.persisted and skip
   the beacon when the page is being cached, not unloaded.

2. ShellTerminal used project-agnostic session IDs ("default"), so
   switching projects and switching back either collided with the old
   session or spawned a new one, losing terminal state. Fix: scope session
   IDs by project path (e.g. "default:/path/to/project") so the server's
   getOrCreateSession returns the existing live PTY on reconnect.

Closes #2701

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 14:46:09 -06:00
..
gsd fix: preserve interactive terminal across tab switches and project changes (#3055) 2026-03-30 14:46:09 -06:00
ui feat(web): Dark mode contrast — raise token floor and flatten opacity tier system (#2734) 2026-03-26 16:17:03 -06:00
theme-provider.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00