SheetXL - v0.8.0-beta.9+sites.210.e2d420901
    Preparing search index...

    Interface Session

    An open workbook, as the report sees it.

    Structurally the subset of the MCP SessionInfo that survives on both surfaces. The CLI learns these from the relay lock (a live client UI) and so only ever reports attended ones; MCP adds its own sandboxes.

    interface Session {
        active?: boolean;
        hasView?: boolean;
        id: string;
        kind: "attended" | "sandbox";
        name: string;
        openedAt?: number;
        path?: string;
    }
    Index
    active?: boolean
    hasView?: boolean

    Whether a grid is showing this workbook.

    Separate from kind on purpose. kind says where the engine lives (a routing fact); hasView says whether anyone can SEE it — which is what decides if an in-grid highlight or prompt can do anything. They coincide today and are still two questions: conflating them is how "is this id still valid" and "is a human watching" came to be answered by one flag.

    id: string
    kind: "attended" | "sandbox"
    name: string
    openedAt?: number

    When the session's workbook was (re)loaded — its history epoch, epoch-ms. A session id survives a reload but its commit/undo history does not; this is the marker that scopes commit ids. Absent when the surface cannot know (older clients).

    path?: string

    The workbook's file, when known — disambiguates same-named files; the document identity.