Correct A-282: the step bound moves with the step by a revision-checked update, never a delete
mesh/delivery merged: source.main moved to novox/hq@e1a9a0f2d238
mesh/check being carried to de676868c65a on e1a9a0f2d238 | from a412c0760ba4

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
This commit is contained in:
2026-11-12 14:36:17 +01:00
parent da9b672747
commit de676868c6
@@ -389,9 +389,10 @@ the principle that settles it, cited as "design 47 G A-n".
later start that finds it runs no switch, so the deliveries §716 writes never become records at a start. A revert's
restore brings back the state from before G without the key, so delivering G again switches again, still safe to run
twice by the record's key.
- **A-282** (A-115, §544; principles 3 and 7) An ask's step bound key is created once: `stepBounds.Arm` creates it
only if absent, and a second waiter that finds it already there takes it as armed and waits on the same key; it is
never deleted to be made again.
- **A-282** (A-115, §544, issue 1930; principles 3 and 7; corrected once) An ask's step bound key is never deleted
to be made again. `stepBounds.Arm` creates it if absent; when the step moves, the waiter writes it again by an update
against the revision it read, so the bound still counts from the step's last movement (issue 1930); a waiter whose
update loses to another's reads the key again and takes the newer bound as armed.
- **A-283** (A-277, ADR 0595; principle 7) The holder of the seat `mesh-broker` makes a template `state` bucket with
the `max-mib` its requirement declares, the default cap where none is declared, as the grants part does for a
state section; one cap rule for every state bucket.