Never say a reconcile's report after a newer apply's (hq issue 267) #30

Merged
mesh-admin merged 1 commits from fix/stale-report-overwrites into main 2026-10-05 23:47:10 +00:00
Contributor

A reconcile that took the apply lock just before a delivery arrived queued its report (about the kept, older declaration) in the outbox while the delivery's apply waited. The link then published the apply's report and then the reconcile's, so the mesh's last word named the older declaration and the release plan waited.

The serve loop now remembers the declaration it last applied (or re-sent from unsaid) and sets aside an unasked report naming a different one, calling Done(false) so the next reconcile says anything still news.

Not caused by #29: no saying again line in the journal, unsaid.json absent, and the same doubled report shows in the controller log before #29 existed.

Tests: TestAReconcileReportOlderThanTheApplyIsNotSaidAfterIt (fails without the fix), TestAReconcileReportAboutTheAppliedDeclarationIsSaid, TestOvertaken. gofmt, go vet, go test ./... clean.

Pairs with novox/mesh-controller (same branch name); hq issue 267.

A reconcile that took the apply lock just before a delivery arrived queued its report (about the kept, older declaration) in the outbox while the delivery's apply waited. The link then published the apply's report and *then* the reconcile's, so the mesh's last word named the older declaration and the release plan waited. The serve loop now remembers the declaration it last applied (or re-sent from `unsaid`) and sets aside an unasked report naming a different one, calling `Done(false)` so the next reconcile says anything still news. Not caused by #29: no `saying again` line in the journal, `unsaid.json` absent, and the same doubled report shows in the controller log before #29 existed. Tests: `TestAReconcileReportOlderThanTheApplyIsNotSaidAfterIt` (fails without the fix), `TestAReconcileReportAboutTheAppliedDeclarationIsSaid`, `TestOvertaken`. gofmt, go vet, go test ./... clean. Pairs with novox/mesh-controller (same branch name); hq issue 267.
mesh-admin added 1 commit 2026-10-05 23:46:43 +00:00
A reconcile that held the machine to the kept declaration just before a
delivery arrived queued its report while the delivery's apply waited for
it; the link published the apply's report and then the reconcile's, so the
mesh's last word from the machine named the older declaration and the
release plan waited on a report it had already been given. The link now
sets aside an unasked report about a declaration other than the one it
has applied since.
mesh-admin merged commit 7f98478d6d into main 2026-10-05 23:47:10 +00:00
mesh-admin deleted branch fix/stale-report-overwrites 2026-10-05 23:47:10 +00:00
Author
Contributor

Delivery novox/mesh-host@7f98478d6d9a — held since 2026-10-06T23:05:28Z

Held for a person: merged without a passing check: only a person decides that it goes on — mesh-delivery.release with why lets it go on.

Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-host
  • ace: receives mesh-host
  • g14: receives mesh-host
  • novox: receives mesh-host
  • shanks: receives mesh-host

Transitions

  • 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-host#30 merged; its head was not heard by this owner, so it is made from the forge's word
  • 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-host@7f98478d6d9a` — **held** since 2026-10-06T23:05:28Z Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on. **Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step - tier 0: mesh-host - ace: receives mesh-host - g14: receives mesh-host - novox: receives mesh-host - shanks: receives mesh-host **Transitions** - 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-host#30 merged; its head was not heard by this owner, so it is made from the forge's word - 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#30