Member Junction
    Preparing search index...

    One browser-local snapshot of the user's workspace configuration.

    The workspace is persisted to MJ: Workspaces through a debounced, asynchronous entity save. A refresh that lands inside that window (debounce + network round trip) used to come back one step behind: the newest tab/selection change existed only in memory. The journal is written SYNCHRONOUSLY on every change, so the newest state survives any unload.

    interface WorkspaceJournalEntry {
        BaseUpdatedAt: string | null;
        Configuration: WorkspaceConfiguration;
        InFlightConfiguration?: string | null;
        UserID: string;
        Version: 1;
        WorkspaceID: string | null;
    }
    Index

    Properties

    BaseUpdatedAt: string | null

    The row's server __mj_UpdatedAt (ISO) that this snapshot is built on top of: the stamp of the last save this browser saw complete, or of the row as loaded. Compared only with another SERVER stamp, never with this browser's clock, so client clock skew cannot pick the wrong side.

    Configuration: WorkspaceConfiguration

    The configuration itself.

    InFlightConfiguration?: string | null

    The serialized configuration of a save this browser started but has not yet seen complete, or null/absent when no save is in flight. A save that lands on the server while the page is unloading advances the row's stamp past BaseUpdatedAt without this browser ever re-basing; matching the row against this value is how the next load recognises that newer row as its OWN write (which the snapshot already supersedes) rather than another device's.

    UserID: string

    The user the snapshot belongs to.

    Version: 1

    Format version of this entry; entries with another version are ignored.

    WorkspaceID: string | null

    The MJ: Workspaces row the snapshot was built on, or null when the user has none (permission-constrained sessions).