Issue 107: a declaration carries no order; rescue on an enrolled node is reconcile, not apply FILE #90

Merged
jschoubben merged 1 commits from issues/107-declarations-carry-no-order into main 2026-09-23 21:27:25 +00:00
Owner

Both from the independent review of the issue-104 fix.

107 — a signed declaration carries nothing that orders it against another; its only identity is its digest. So a host can say "not the last" but never "older", and on the link a backlog of more than sixteen pushes across a converge/adopt pair, or a slow broker splitting a batch, applies a superseded declaration — issue 104's incident by another door. The controller already holds the order under its per-node lock and throws it away at the wire. Asks for sequence + supersedes in the signed bytes.

Design amendment (node lifecycle, Rescue): apply FILE on a node the mesh has spoken to is refused — a hand-applied file is recorded as carried, which the mesh can never remove, and the review showed the exact-last file would plan to remove the foundation. Rescue on an enrolled node is reconcile; apply FILE is for a machine before enrolment. A confirmed --rescue is left open.

Both from the independent review of the issue-104 fix. **107** — a signed declaration carries nothing that orders it against another; its only identity is its digest. So a host can say "not the last" but never "older", and on the link a backlog of more than sixteen pushes across a converge/adopt pair, or a slow broker splitting a batch, applies a superseded declaration — issue 104's incident by another door. The controller already holds the order under its per-node lock and throws it away at the wire. Asks for `sequence` + `supersedes` in the signed bytes. **Design amendment** (node lifecycle, Rescue): `apply FILE` on a node the mesh has spoken to is refused — a hand-applied file is recorded as carried, which the mesh can never remove, and the review showed the exact-last file would plan to remove the foundation. Rescue on an enrolled node is `reconcile`; `apply FILE` is for a machine before enrolment. A confirmed `--rescue` is left open.
jschoubben added 1 commit 2026-09-23 21:27:19 +00:00
Both from the review of the issue-104 fix: a hand-applied file on an enrolled node is
recorded as carried and would remove the foundation, and nothing on the wire orders one
declaration against another.
jschoubben merged commit f6ec64ee4e into main 2026-09-23 21:27:25 +00:00
jschoubben deleted branch issues/107-declarations-carry-no-order 2026-09-23 21:27:25 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#90