CodeNomad/packages
Dark e8623d3132
fix(ui): SSE connection status indicators for mobile network drops (#549)
## Problem

Mobile users experience SSE disconnections (wifi drops, Cloudflare idle
timeouts) but get no visual feedback. The per-instance status dots
remain green even when the SSE transport is down, because instance
status updates travel over the broken SSE pipe.

## Solution

This PR implements **immediate connection status feedback** by
propagating SSE transport state to all instance status indicators:

### Changes

1. **server-events.ts**: Add `onDisconnect()` handler
   - Mirrors existing `onOpen()` pattern
- Fire `disconnectHandlers` in `scheduleReconnect()` when connection
drops

2. **sse-manager.ts**: Register SSE lifecycle handlers
   - `onDisconnect`: set ALL instances to `connecting` (amber dot)
- `onOpen`: clear `connecting` status (green dot restored by subsequent
events)
   - Log transitions for debug visibility

3. **AGENTS.md**: Add PR Review Principles
   - Check regressions first, look for better implementations
   - Be the PR gatekeeper, ruthless code quality
   - Test before responding, UI/server version parity

## Verification

-  TypeScript compilation clean (pre-existing SDK errors unrelated)
-  Vite build successful
-  Mobile testing: SSE disconnect → immediate amber dots
-  Reconnect → green dots restored

## Edge Cases Handled

- **Transient drop**: amber → green on reconnect (no false disconnect
modal)
- **Instance dies during outage**: amber → green → `disconnected` event
→ red
- **0 instances**: Map empty, loop is no-op
- **Rapid reconnect cycles**: idempotent (setting `connecting` on
`connecting` is no-op)

## Related

- Complements PR #519 (pong retry with timeout) - merged upstream
- Addresses mobile UX gap: workspace-level SSE state now visible to all
users (not just debug overlay)

---------

Co-authored-by: Shantur Rathore <i@shantur.com>
Co-authored-by: Pascal André <pascalandr@gmail.com>
2026-06-27 20:39:13 +02:00
..
cloudflare Min server 0.18.0 2026-06-21 20:09:49 +01:00
electron-app Bump version to 0.18.0 2026-06-19 13:55:00 +01:00
opencode-plugin Bump version to 0.18.0 2026-06-19 13:55:00 +01:00
server Bump version to 0.18.0 2026-06-19 13:55:00 +01:00
tauri-app Bump version to 0.18.0 2026-06-19 13:55:00 +01:00
ui fix(ui): SSE connection status indicators for mobile network drops (#549) 2026-06-27 20:39:13 +02:00