mesh-grants and the teller: the removed controller's leftover consumers are removable, and the teller pulls its durable consumer (issue 1126) #150

Merged
mesh-tools merged 3 commits from fix/consumer-remove-any into main 2026-11-04 10:36:45 +00:00
Member

Group fix/consumer-remove-any with mesh-catalog. Issue 1126 (notes 146-150); the operator asked 2026-11-04 to remove the old controller's consumers and every dead reference to the removed controller.

  • 1c6ac37: mesh-grants' live leftover list (internal/buscompose/health_grants.go) adds KV_mesh-delivery-builder_builds.mesh-controller-take-in, KV_mesh-delivery-indexer_modules.mesh-controller-take-in, KV_mesh-config_resolved.mesh-controller-config-follow (the operator chose the closed list, not a wider grant): consumer INFO and DELETE for exactly those names.
  • c4bba04: EVENTS.novox_gitea (its only filter is the removed controller's checked) added; the retired node-build-agent seat's built subject leaves the writers table.
  • fc30021: mesh-delivery-teller pulls its durable consumer for decided warrants (cred.EventConsumer + process.HearEvents) instead of a core subscription, so an answer sent while it is down is not lost; asker.Take keeps a redelivered warrant from being acted on twice.

Quick fix: none without a hand act on the bus. Thorough, chosen: the bus owner's repair tool can remove every named leftover, and the teller cannot miss an answer.

Tests: rows in TestTheCopiedComposerComposesAsTheControllers; teller decided_test.go and its integration bed; gofmt, go vet (plain and integration), go test pass per module.

On delivery (novox): mesh-grants composes a new user list (the bus reloads it), the teller pulls about 294 old warrants once, each ending already acted on.

Reviewed-by: review-consumer-remove@shanks at fc300216ec

https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn

Group fix/consumer-remove-any with mesh-catalog. Issue 1126 (notes 146-150); the operator asked 2026-11-04 to remove the old controller's consumers and every dead reference to the removed controller. - 1c6ac37: mesh-grants' live leftover list (internal/buscompose/health_grants.go) adds KV_mesh-delivery-builder_builds.mesh-controller-take-in, KV_mesh-delivery-indexer_modules.mesh-controller-take-in, KV_mesh-config_resolved.mesh-controller-config-follow (the operator chose the closed list, not a wider grant): consumer INFO and DELETE for exactly those names. - c4bba04: EVENTS.novox_gitea (its only filter is the removed controller's checked) added; the retired node-build-agent seat's built subject leaves the writers table. - fc30021: mesh-delivery-teller pulls its durable consumer for decided warrants (cred.EventConsumer + process.HearEvents) instead of a core subscription, so an answer sent while it is down is not lost; asker.Take keeps a redelivered warrant from being acted on twice. Quick fix: none without a hand act on the bus. Thorough, chosen: the bus owner's repair tool can remove every named leftover, and the teller cannot miss an answer. Tests: rows in TestTheCopiedComposerComposesAsTheControllers; teller decided_test.go and its integration bed; gofmt, go vet (plain and integration), go test pass per module. On delivery (novox): mesh-grants composes a new user list (the bus reloads it), the teller pulls about 294 old warrants once, each ending already acted on. Reviewed-by: review-consumer-remove@shanks at fc300216ecf71870e88863a69c88ad1a0dc6049d https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
mesh-tools added 3 commits 2026-11-04 10:12:47 +00:00
Author
Member

Delivery novox/mesh-delivery@fc300216ecf7 — merged since 2026-11-04T10:36:45Z

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

Group fix/consumer-remove-any: novox/mesh-catalog@080aed6855, novox/mesh-delivery@fc300216ec

  • composed together: pass — the checker's verdict at the members' heads (6ec71aebec67)

Transitions

  • 2026-11-04 10:12 (new) → proposed (announced): novox/mesh-delivery#150's head announced
  • 2026-11-04 10:12 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-04 10:36 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@fc300216ecf7` — **merged** since 2026-11-04T10:36:45Z **Source** — source.main moved to novox/mesh-delivery@ae31b66a9e33. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/consumer-remove-any`: novox/mesh-catalog@080aed68556a, novox/mesh-delivery@fc300216ecf7 - composed together: pass — the checker's verdict at the members' heads (6ec71aebec67) **Transitions** - 2026-11-04 10:12 (new) → proposed (announced): novox/mesh-delivery#150's head announced - 2026-11-04 10:12 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-04 10:36 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 ae31b66a9e into main 2026-11-04 10:36:45 +00:00
mesh-tools deleted branch fix/consumer-remove-any 2026-11-04 10:36:45 +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#150