Member Junction
    Preparing search index...

    Interface TaskGraphFramePayload

    Wire payload. Identical to TaskGraphFrame plus the graph's owner, which exists ONLY as the server-side filter key and is never returned to a subscriber — the same discipline PushStatusNotificationPayload uses for ownerUserId.

    interface TaskGraphFramePayload {
        AssignedUserID?: string;
        ClaimedBy?: string;
        ClaimedCount?: number;
        ClaimEvent?: "claimed" | "heartbeat-lost" | "reclaimed";
        ClaimExpiresAt?: string;
        CompletedCount?: number;
        ConditionText?: string;
        DependsOnTaskID?: string;
        EdgeID?: string;
        EligibleCount?: number;
        ErrorMessage?: string;
        HeldCount?: number;
        InstanceInFlightCount?: number;
        Kind: TaskGraphFrameKind;
        ownerUserId: string;
        OwnerUserID?: string;
        ParentTaskID: string;
        PassNumber?: number;
        ProgressMessage?: string;
        ProgressPercent?: number;
        Reason?: string;
        Status?: string;
        TaskID?: string;
        TaskName?: string;
        TotalCount?: number;
        Verdict?: "satisfied" | "notTaken" | "held";
    }

    Hierarchy (View Summary)

    Index

    Properties

    AssignedUserID?: string

    For a human task, who it is waiting on.

    ClaimedBy?: string

    The dispatcher instance holding (or losing) the claim.

    ClaimedCount?: number

    Tasks this instance claimed on this pass, for THIS graph.

    ClaimEvent?: "claimed" | "heartbeat-lost" | "reclaimed"

    What happened to the claim.

    ClaimExpiresAt?: string

    When the claim lapses unless extended, ISO 8601.

    CompletedCount?: number

    How many nodes have reached a terminal state, and out of how many.

    ConditionText?: string

    The condition text, so a viewer can show WHY without loading the row.

    DependsOnTaskID?: string

    The edge's origin task. TaskID above is the edge's target.

    EdgeID?: string

    The MJ: Task Dependencies row the verdict is about.

    EligibleCount?: number

    Tasks whose prerequisites were satisfied this pass.

    ErrorMessage?: string

    Failure detail on TaskFailed.

    HeldCount?: number

    Tasks held by an unanswerable condition or undecided fork.

    InstanceInFlightCount?: number

    Tasks this INSTANCE is executing right now, across every graph it is working — not this graph's in-flight count.

    Named for what it measures because the two readings differ and a viewer cannot tell them apart: it is the dispatcher's own load against MaxConcurrentTasks, which is what explains a graph whose steps are ready but not starting. A per-graph count would answer a different question (and is visible anyway as the steps rendered running on the canvas).

    ownerUserId: string

    User the graph belongs to. Filter key; never sent to the client.

    OwnerUserID?: string

    Who the graph belongs to, from the parent's durable metadata.

    Carried on the frame rather than looked up by the consumer because a consumer's delivery filter runs per frame and synchronously — a database round trip there would make watching a run cost more than running it. Absent means the graph predates ownership being recorded, and a consumer that authorizes on it should fail closed rather than broadcast.

    ParentTaskID: string

    The graph this happened in — the subscription key.

    PassNumber?: number

    Monotonic per-instance pass counter, so a viewer can order and gap-detect ticks.

    ProgressMessage?: string

    What the runner says it is doing.

    ProgressPercent?: number

    0–100 when the runner can quantify it.

    Reason?: string

    Human-readable detail: the hold reason, the override applied, or who paused the graph.

    Status?: string

    The task's (or, for GraphSettled, the graph's) status after the event.

    TaskID?: string

    The node it happened to. Absent on GraphSettled, which is about the graph itself.

    TaskName?: string

    Node name, so a consumer can label the frame without loading the row.

    TotalCount?: number
    Verdict?: "satisfied" | "notTaken" | "held"

    What the gate decided: the edge is open, the branch was not taken, or it cannot be answered yet.