openmixer — generated API reference
    Preparing search index...

    Interface ResourceCommit

    One COMMITTED write, reported by the registry to every observer — the single seam through which a host drives autosave and undo for EVERY door at once (REST PATCH/POST/DELETE, a control surface's entity write, a legacy verb's translator, an internal handle).

    It is emitted from inside the one pipeline, strictly after the write, the projection, the broadcast and the ripples — so an observer sees a console that has already settled. A reproject emits NOTHING: it writes no state, which is exactly why a ripple cannot dirty the session or land in the history.

    interface ResourceCommit {
        fields?: readonly string[];
        id: ResourceId;
        inverse?: Readonly<Record<string, unknown>>;
        method: ResourceCommitMethod;
        path: string;
        policy: ResolvedResourcePolicy;
        redo?: Readonly<Record<string, unknown>>;
        source?: WriteSource;
        steps?: ResourceInverseSteps;
        transient?: boolean;
    }
    Index
    fields?: readonly string[]

    The fields inverse/redo address, sorted — the scope an undo entry coalesces on.

    The canonical spelling — the same id the broadcast frame carries.

    inverse?: Readonly<Record<string, unknown>>

    The delta that puts this instance back, when the row is undoable AND the write was invertible from what the commit point read (see ResourceRegistry inverseOf). Absent means "not undoable" — never a guessed inverse.

    path: string

    The row's declared policy, with the defaults filled in.

    redo?: Readonly<Record<string, unknown>>

    The delta that re-applies it: the LANDED (post-clamp) values, not the raw request.

    source?: WriteSource

    WHO wrote, where the door that called knew. Absent is honest — an unattributed write is a write nobody claimed, never a default that names the wrong operator.

    A row-DECLARED inverse that spans instances — ConsoleResource.inverseSteps's answer, carried through to the host's history unchanged.

    The generic inverse above is the prior values of the addressed fields of the ADDRESSED instance, and it refuses to guess anything else. A gesture that legitimately changes other instances — a paste onto eight channels — is therefore not invertible generically. Without this declaration the only honest answers are "no undo at all" or an entry per touched instance, which gives an operator eight presses to undo one gesture.

    transient?: boolean

    The entity's own ConsoleResource.transient declaration. An operation row's FIRE commit is bookkept like any other (its undoBarrier still drops the history), but the convergence barrier for it stamps at the LANDING — the run's settled console is the one a client must re-read, not the half-applied one its fire precedes.