c905a66d9b
Address issue #3 by hardening the terminal WebSocket client against silent receive stalls seen in Firefox. Changes: - Added a client heartbeat watchdog that sends periodic ping messages. - Detects stale inbound streams and forces reconnect when no inbound data/pong is seen within the timeout window. - Added Blob WebSocket message handling for improved cross-browser receive compatibility. - Ensures heartbeat timers are started/stopped with socket lifecycle and terminal disposal. Validation: - Rebuilt frontend bundle via make build-fast. - Ran make check successfully. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>