Member Junction
    Preparing search index...

    One realtime session's collapsed block: everything the timeline card renders that can be computed from the conversation's already-loaded detail rows (no extra queries).

    interface RealtimeSessionTimelineGroup {
        DetailCount: number;
        EndedAt: Date | null;
        LastTurnPreview: string | null;
        LastTurnRole: "User" | "Assistant" | null;
        SessionID: string;
        StartedAt: Date | null;
        TurnCount: number;
    }
    Index

    Properties

    DetailCount: number

    ALL stamped rows folded into this block, hidden anchors included.

    EndedAt: Date | null

    Timestamp of the session's last stamped row (≈ when the transcript ended).

    LastTurnPreview: string | null

    The last visible turn's text (untruncated — the card ellipsizes), or null.

    LastTurnRole: "User" | "Assistant" | null

    Who spoke the last visible turn (AI → Assistant), or null when no visible turn exists.

    SessionID: string

    MJ: AI Agent Sessions.ID the block's rows are stamped with (original casing of the first row).

    StartedAt: Date | null

    Timestamp of the session's first stamped row (≈ when the session's transcript began).

    TurnCount: number

    VISIBLE caption turns: non-hidden User/AI rows with text (mirrors review-mode's turn mapping).