Skip to main content

Runtime Patches

A runtime Patch changes the materialized graph of one Run. Patch constructors produce request documents; they do not change the authored Workflow definition or later Runs of that definition.

Wait for application

Patch submission and Patch application are distinct stages. A Task that depends on the changed graph must wait until the Patch reaches Applied.

Address live structure​

Runtime operations address graph structure by the short identity code exposed with the live graph, or by its full UUID. Do not copy an identity from another Run: runtime structure belongs to one materialized graph.

Insert a chain​

mkChain interposes one or more Tasks after an anchor:

tickr.mkChain {
anchor = "AB12",
steps = [
{ handle = "prepare", task = prepare_task },
{ handle = "publish", task = publish_task },
],
reason = "expand the publishing path",
}

Handles are scope-local author names. Tickr mints runtime node identities for the leaf Tasks and reconnects the anchor's successors.

Fork and rejoin​

mkFork grows parallel arms and re-seats the anchor's successors behind a barrier over every arm tail:

tickr.mkFork {
anchor = "AB12",
arms = [
{ handle = "left", steps = left_steps },
{ handle = "right", steps = right_steps },
],
reason = "process both derived partitions",
}

The successor grounds only after all declared arms ground.

Public Patch constructors​

ConstructorGraph operation
mkInsertInsert one Task after an anchor
mkChainInsert an ordered scope-tree of Tasks
mkForkInsert parallel arms with a barrier join
mkBranchInsert conditional branch structure
mkExpandExpand selected live structure
mkSwapReplace live structure
mkCutRemove an addressed section and reconnect
mkPruneRemove unreachable or selected structure
mkTrimRemove structure at a boundary
mkTruncateRemove structure beyond a boundary

The exact closed-record fields are release-specific. Use the Core DSL reference for the selected documentation version and validate Patch source with the bundled DSL before submitting it.

Deterministic example​

The release archive includes examples/runtime-patch.ncl. Given the same integer seed, it derives the same two arm lengths, applies one mkFork Patch, waits for Applied, and then runs both arms before the final summary Task.