connectionStatus

Single source of truth for the UI's "connection status" pill/banner. Derived from connectionState, ServiceRepository.connectionProgress, and regionUnset; kept here rather than in the composable so the mapping is observable and testable.

The ConnectionStatus.RECONNECTING case is signalled by the WiFi/TCP handshake watchdog writing ServiceRepository.RECONNECTING_PROGRESS_TEXT to ServiceRepository.connectionProgress immediately before its recovery sibling transitions to ConnectionState.Disconnected. See ServiceRepository.RECONNECTING_PROGRESS_TEXT for the cross-track contract.