mirror of
https://github.com/spartanz51/tutabridge.git
synced 2026-06-24 10:54:32 +02:00
Surface the event-bus WebSocket state in the UI
SDK (sdk-event-bus amended on the fork): a new `WsState` enum (`Stopped`/`Connecting`/`Connected`/`Reconnecting`) is broadcast through a `watch::Sender` inside `EventBusClient`, exposed via `state()` for observers. Transitions are emitted at every step of the reconnect loop, plus a `Drop` guard guarantees a final `Stopped` even on a panic in the caller's task tree. Two new SDK tests cover the initial value and multi-subscriber broadcast. Bridge: capture `bus_client.state()` at start, mirror it into a serde `WsStatus` field on `BridgeStats`, and clear on stop. UI: add a third stat card "Realtime" with a colored dot (green Connected, orange pulsing Connecting/Reconnecting, gray Off) reading `stats.ws_status`. Stats grid switches from 2 to 3 columns. Submodule pointer bumped to the rebuilt `tutabridge-integration` which cherry-picks all six SDK branches on `upstream/master`; the move-mails fixup (use `make_test_facade` so its test compiles alongside the blob branch) is re-applied. 341/341 SDK lib tests pass, 154/154 bridge tests pass.
This commit is contained in:
@@ -9,9 +9,12 @@ export interface Config {
|
||||
|
||||
export type BridgeStatus = "Stopped" | "Starting" | "Running" | { Error: string };
|
||||
|
||||
export type WsStatus = "Stopped" | "Connecting" | "Connected" | "Reconnecting";
|
||||
|
||||
export interface BridgeStats {
|
||||
uptime_secs: number | null;
|
||||
mails_synced: number;
|
||||
ws_status: WsStatus;
|
||||
}
|
||||
|
||||
export function statusLabel(status: BridgeStatus): string {
|
||||
|
||||
Reference in New Issue
Block a user