compactedBelow

Per-author high-water of dots this replica has compacted away — every dot (r, s) with s <= compactedBelow[r] is permanently suppressed.

This is the bounded form of RgaOp.Compact: a Compact retains one (RgaId -> RgaId) pair per dropped element forever, so it is Θ(elements ever); a floor is O(authors). It can only describe a downward-closed compacted set, which dropWindow guarantees by advancing it across a contiguous own-dot run only.

Merged by VersionVector.ceilWith under piece: the product of (op-set under union) and (floor under elementwise max) is a join-semilattice, so the Quilted laws hold by construction. Part of equals — it is state, not a cache.

Accepted constraint: a floor's positional reroot degrades to RgaId.HEAD. An RgaOp.Compact records each dropped element's predecessor, so a survivor whose predecessor was GC'd re-attaches to that predecessor's own surviving ancestor (computeSequence's #293 reroot). A floor records nothing — recording it would be the per-element map, and therefore the Θ(elements ever) cost, this field exists to remove. So a survivor whose predecessor was floored away re-roots to RgaId.HEAD instead, and HEAD's child list is sorted by id descending: a high-lamport survivor can land ahead of older HEAD-anchored records. This is not confined to cross-author logs. One author that mints A after HEAD, B after HEAD, then C after A reads B, A, C (HEAD's two children sort descending, so the later B leads); flooring A re-roots C to HEAD, where its still-higher lamport puts it ahead of BC, B. insertAt at index 0 produces that after-HEAD shape routinely, so a single-author log reorders too.

This is a reordering, not a divergence. The sequence stays a deterministic function of (ops, compactedBelow), and piece merges the floor on both sides, so every replica that has absorbed the same ops and the same floor computes the identical order. What is given up is the stability of a survivor's position across its predecessor being dropped — the price of the bound, paid deliberately.