seat

Seat edge at front — write its first Gauge, keyed on gauge absence.

null if edge is unknown or divergent, or if it already carries a gauge. That predicate is the whole point of the revision. The refuted §5.2 keyed seating on effIssued == 0, which was stale-readable (F1: a peer missing only this edge's own issuance slots reads 0 and re-seats an already-served edge) and permanently false for a relocation-receiving edge (F2: effIssued = issued + issuedRelocIn, so once reconcileStranded re-homes onto a fresh edge the predicate never holds again, in any merge order). Gauge absence has neither defect: it is the exact question "has anybody seated this edge yet", and the relocation counters are not a term of it.

The floor written is max(front, baseIssued / w), and the fold is this peer's own observed base issuance. Both halves matter:

  • the max means a bump can never seat an edge behind what its own observed service already implies, so this write has no lifetime-credit direction (§10.5);

  • folding the observed issuance is what makes a stale bump self-limiting. A peer that has seen none of this edge's service writes (itsFront, 0), and the componentwise join then pairs that floor with a better-informed fold and deflates it. A restarted peer's (0, 0) is absorbed with no effect at all.

front is the parent's virtual time over the set edge is joining — see HeddlePolicy.front, which excludes the joiner. It is a scheduler-level read and therefore passed in: the ledger holds no demand and no wake clamps, so it cannot compute a front, and two peers legitimately compute different ones.