@agatx/serenada-core
    Preparing search index...

    Interface RecoveryRecord

    Persistent recovery state — surfaced to host apps so a relaunched tab can prompt the user to rejoin an in-flight call instead of silently dropping them on the home screen.

    Per the Phase 2 spec (docs/resilience-failure-modes.md, #5), the web scope is sessionStorage: per-tab, survives reload, lost on tab close — the right scope for "you reloaded the page mid-call".

    The record carries the same reconnectToken that SignalingEngine persists for in-tab reconnects. The two stores are kept in lockstep: a fresh joined writes both, a clean leave / room_ended / INVALID_RECONNECT_TOKEN clears both.

    interface RecoveryRecord {
        cid: string;
        expiresAtMs: number;
        lastEpoch: number | null;
        reconnectToken: string;
        roomId: string;
        sessionStartTs: number;
    }
    Index

    Properties

    cid: string
    expiresAtMs: number

    Unix-ms after which the host app should NOT offer the rejoin prompt. Computed as now + reconnectTokenTTLMs at write time so the SDK does not need to know server clocks.

    lastEpoch: number | null

    Server room state epoch at the moment the record was last refreshed.

    reconnectToken: string
    roomId: string
    sessionStartTs: number

    Unix-ms timestamp of the original join (NOT the latest reconnect).