Registry recovery: break the circle, and let a cut part be sent again (issue 1966) #204

Merged
mesh-tools merged 3 commits from fix/1966-registry-circle into main 2026-11-11 13:18:27 +00:00
Member

Issue 1966 (the registry recovery), notes 203-205. Small fix (playbook 08).

The circle: the registry holder distribution on the bus node lacks its grants for holds, windows and mirrors; the grants part's first view takes bindings from a field only the bus module's new build serves, and every bus module build fails because its image step needs the registry's mirror, which needs mirrors.

  • 276412d7 — sdk/parts Receiver.Take: a chunk 0 of a part not held starts the part afresh; any other chunk that is not the cursor is still refused, naming it (design 51 Publishing, "The file travels in parts through the seat": the holder answers the parts it lacks and a lacked part travels again whole). AC203-1, AC203-2. Reaches the machines when the holders in mesh-catalog are next built.
  • ca9aad97 + 7db5b0df — the grants part composes a key-value or object-store binding from mesh-broker.list's own fields when no entry of the answer carries binding (design 25 bindings-first-view §9, §4, §6, §7, §8, hq 1c6fe961, the operator's yes of 2026-11-11 13:30 CET). AC203-3..: six reconcile rows plus the event-touched row; one case in the whole-module test.

Tests: unit and vet (plain, -tags integration) in modules/mesh-grants and sdk; go test -tags integration -count=1 ./cmd/mesh-grants/ passes (41 s, TestTheGrantsPartWhole). sdk/parts has no integration tests.

Live acceptance: after delivery of mesh-grants, grants_membership for distribution on the bus node lists holds, windows and mirrors and grants_first_views shows those three composed by §9; then the bus module's build passes its image step.

Reviewed-by: mesh-code-reviewer@shanks (for lead-47@shanks) at 7db5b0dfe4

https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

Issue 1966 (the registry recovery), notes 203-205. Small fix (playbook 08). The circle: the registry holder `distribution` on the bus node lacks its grants for holds, windows and mirrors; the grants part's first view takes bindings from a field only the bus module's new build serves, and every bus module build fails because its image step needs the registry's `mirror`, which needs `mirrors`. - 276412d7 — `sdk/parts` Receiver.Take: a chunk 0 of a part not held starts the part afresh; any other chunk that is not the cursor is still refused, naming it (design 51 *Publishing*, "The file travels in parts through the seat": the holder answers the parts it lacks and a lacked part travels again whole). AC203-1, AC203-2. Reaches the machines when the holders in mesh-catalog are next built. - ca9aad97 + 7db5b0df — the grants part composes a key-value or object-store binding from `mesh-broker.list`'s own fields when no entry of the answer carries `binding` (design 25 bindings-first-view §9, §4, §6, §7, §8, hq 1c6fe961, the operator's yes of 2026-11-11 13:30 CET). AC203-3..: six reconcile rows plus the event-touched row; one case in the whole-module test. Tests: unit and vet (plain, -tags integration) in modules/mesh-grants and sdk; `go test -tags integration -count=1 ./cmd/mesh-grants/` passes (41 s, TestTheGrantsPartWhole). sdk/parts has no integration tests. Live acceptance: after delivery of mesh-grants, `grants_membership` for distribution on the bus node lists holds, windows and mirrors and `grants_first_views` shows those three composed by §9; then the bus module's build passes its image step. Reviewed-by: mesh-code-reviewer@shanks (for lead-47@shanks) at 7db5b0dfe4794e990a989a8db8b40854dfe335a0 https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-tools added 3 commits 2026-11-11 13:14:56 +00:00
A part the holder lacks travels again whole from chunk 0, so its earlier
chunks are dropped and chunk 0 is taken; any other chunk that is not the
cursor is still refused, naming the cursor (1966/AC203-1, AC203-2).

Builds: design 51 Publishing, the bullet "The file travels in parts through the seat"

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
An answer no entry of which carries binding gets, for a key-value or object-store
entry whose settings hold the bus object its bus-name names, the binding composed
from the answer's own fields; a stream, a ledger and an entry not held stay
unbound and are logged once per answer; grants_first_views shows composed and
unbound (1966/AC203-3..n). An answer where any entry carries binding is applied
by §4 alone.

Builds: design 25 bindings-first-view §9, §4, §6, §7, §8

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
1966 review round 1: Composed counts the bindings written or rewritten from fields; wrap Take's comment
mesh/delivery merged: source.main moved to novox/mesh-delivery@2f1b60f2a231
mesh/check checking 7db5b0dfe479 on 2f1b60f2a231
7db5b0dfe4
Builds: design 25 bindings-first-view §6, §8, §9

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Author
Member

Delivery novox/mesh-delivery@7db5b0dfe479 — merged since 2026-11-11T13:18:30Z

Source — source.main moved to novox/mesh-delivery@2f1b60f2a2. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-11-11 13:14 (new) → proposed (announced): novox/mesh-delivery#204's head announced
  • 2026-11-11 13:14 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-11-11 13:18 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-delivery@7db5b0dfe479` — **merged** since 2026-11-11T13:18:30Z **Source** — source.main moved to novox/mesh-delivery@2f1b60f2a231. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-11 13:14 (new) → proposed (announced): novox/mesh-delivery#204's head announced - 2026-11-11 13:14 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-11-11 13:18 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 2f1b60f2a2 into main 2026-11-11 13:18:27 +00:00
mesh-tools deleted branch fix/1966-registry-circle 2026-11-11 13:18:28 +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/mesh-delivery#204