BatchedEmbroider

data class BatchedEmbroider(val opIds: List<OpId>) : DraftStage

Two or more independent Embroider stages at the same dependency level fused into a single consensus round by the G3 consolidateEmbroideries rewrite (in :kuilt-warp-planning).

That rewrite groups Embroider nodes that share no mutual ancestor path (i.e. neither is the other's predecessor, transitively). Independent agreements at the same dependency level can be committed in a single Raft round rather than one round each — exactly the batching that motivates G3.

opIds holds the original agreement names in topological order. opId (from DraftStage) returns opIds.first() as the representative identifier; use opIds for the full ordered list. The G4 cost model reads opIds to compute batch size and coupling terms.

Always CoordinationKind.Coordinated: even as a batch, the group requires one consensus round.

Parameters

opIds

ordered list of the original Embroider operation identifiers; must be non-empty.

Constructors

Link copied to clipboard
constructor(opIds: List<OpId>)

Properties

Link copied to clipboard

Whether this stage requires coordination to apply correctly.

Link copied to clipboard
open override val opId: OpId

The symbolic name of the operation this stage references. Code never moves; only names do.

Link copied to clipboard