You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
the session view must survive transient SSE loss — keep the rendered state, show a reconnecting badge #1203
Problem — When the SSE stream drops (tunnel blips on a long-path fleet connection), the app tears the session view down: the user's whole session disappears for the reconnect window (reported live 2026-09-15: 'sessions are still going blank in between tab switches and messages'). The honest-liveness machinery (#638) is right that thinking must be backed by a live stream — but the remedy for a lost stream should be a visible staleness badge over the LAST RENDERED STATE, not an unmounted session. Approach — On stream loss: keep the last rendered timeline/composer mounted, dim it (or overlay a reconnecting indicator), and re-render in place when the stream re-establishes. Degrade input honestly (a send during the gap queues or refuses with the reason). The #638 staleness state machine already detects the loss — this changes only the RENDER response.
Acceptance Criteria
An SSE drop does not unmount the session view: the last rendered messages remain visible, with a reconnecting/stale indicator.
On reconnect the view re-renders in place without a full app reboot (no sprite re-fetch, no session-list refetch on the reconnect path).
A send during the gap refuses or queues with an honest reason — never silently lost, never a fake success.
Important
Problem — When the SSE stream drops (tunnel blips on a long-path fleet connection), the app tears the session view down: the user's whole session disappears for the reconnect window (reported live 2026-09-15: 'sessions are still going blank in between tab switches and messages'). The honest-liveness machinery (#638) is right that thinking must be backed by a live stream — but the remedy for a lost stream should be a visible staleness badge over the LAST RENDERED STATE, not an unmounted session.
Approach — On stream loss: keep the last rendered timeline/composer mounted, dim it (or overlay a reconnecting indicator), and re-render in place when the stream re-establishes. Degrade input honestly (a send during the gap queues or refuses with the reason). The #638 staleness state machine already detects the loss — this changes only the RENDER response.
Acceptance Criteria