Group fix/consumer-remove-any with mesh-delivery. 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.
bff850f7 nats: nats_consumer_remove reads a push consumer as well as a pull one, before and after removing it (live failure: 'nats: consumer is not a pull consumer' for EVENTS/controller, EVENTS/controller-merges, CONTROL/controller).
052fb473, 4f67143a, 080aed68 gitea: the verdict, plan and check-duration code bound to no event since ADR 0571 clause 13, and what only tests called; the merge refusal no longer promises how long a check takes.
bf4ce7ef mesh-conditions: the hold's controller special case.
b0b7dfc5 mesh-issues: mesh-controller is no registered or core owner; old issues keep their text.
1572ab9b messenger: the old controller's walk decoder and plan-moved names.
Left on purpose: the lab's builds from mesh-controller (issue 1816 note 3: deleting them would make its suites skip and read as passed).
Quick fix: none without a hand act. Thorough, chosen: the repair tool reads any consumer kind, and the dead code goes instead of misleading the next reader.
Tests: nats removal table rows (pull and push); gitea's whole suite 216/216 against the mesh-sdk package; go vet and go test per Go module.
On delivery (novox): nats moves its tools bundle only (the server container is not restarted; the bus is backed up first); gitea, mesh-conditions, mesh-issues, messenger move.
Reviewed-by: review-consumer-remove@shanks at 080aed6855
Group fix/consumer-remove-any with mesh-delivery. 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.
- bff850f7 nats: nats_consumer_remove reads a push consumer as well as a pull one, before and after removing it (live failure: 'nats: consumer is not a pull consumer' for EVENTS/controller, EVENTS/controller-merges, CONTROL/controller).
- 052fb473, 4f67143a, 080aed68 gitea: the verdict, plan and check-duration code bound to no event since ADR 0571 clause 13, and what only tests called; the merge refusal no longer promises how long a check takes.
- bf4ce7ef mesh-conditions: the hold's controller special case.
- b0b7dfc5 mesh-issues: mesh-controller is no registered or core owner; old issues keep their text.
- 1572ab9b messenger: the old controller's walk decoder and plan-moved names.
Left on purpose: the lab's builds from mesh-controller (issue 1816 note 3: deleting them would make its suites skip and read as passed).
Quick fix: none without a hand act. Thorough, chosen: the repair tool reads any consumer kind, and the dead code goes instead of misleading the next reader.
Tests: nats removal table rows (pull and push); gitea's whole suite 216/216 against the mesh-sdk package; go vet and go test per Go module.
On delivery (novox): nats moves its tools bundle only (the server container is not restarted; the bus is backed up first); gitea, mesh-conditions, mesh-issues, messenger move.
Reviewed-by: review-consumer-remove@shanks at 080aed68556aab92354f52111f19497737213a92
https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
js.Consumer refuses a push consumer ("consumer is not a pull consumer"), so the
controller's leftovers on EVENTS and CONTROL could not be read and were not
removed. The tool now reads a consumer of either kind (CONSUMER.INFO only, which
is all its grant gives), before the delete and for the confirmation after it.
Quick fix: this change, in the tool, one function, about an hour with its test
rows (a pull and a push consumer). Thorough fix: the same tool also needs its
grant to cover the KV_* streams' consumers (mesh-controller-take-in,
mesh-controller-config-follow), and that grant is composed by mesh-sdk's
BusRemovalGrants from a closed set (ControllerLeftoverConsumersOn), not by the
manifest, so it is not in this commit: it needs a change in mesh-sdk and a
group delivery. Chosen here: the quick fix for the read, since it is one place
and blocks the operator's removal now; the grant is reported to the lead.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Deliverynovox/mesh-catalog@080aed68556a — merged since 2026-11-04T10:36:43Z
Source — source.main moved to novox/mesh-catalog@7f626147be. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (6ec71aebec67)
Transitions
2026-11-04 10:12 (new) → proposed (announced): novox/mesh-catalog#607'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-catalog@080aed68556a` — **merged** since 2026-11-04T10:36:43Z
**Source** — source.main moved to novox/mesh-catalog@7f626147be0c. 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-catalog#607'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`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Group fix/consumer-remove-any with mesh-delivery. 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.
bff850f7nats: nats_consumer_remove reads a push consumer as well as a pull one, before and after removing it (live failure: 'nats: consumer is not a pull consumer' for EVENTS/controller, EVENTS/controller-merges, CONTROL/controller).052fb473,4f67143a,080aed68gitea: the verdict, plan and check-duration code bound to no event since ADR 0571 clause 13, and what only tests called; the merge refusal no longer promises how long a check takes.bf4ce7efmesh-conditions: the hold's controller special case.b0b7dfc5mesh-issues: mesh-controller is no registered or core owner; old issues keep their text.1572ab9bmessenger: the old controller's walk decoder and plan-moved names.Left on purpose: the lab's builds from mesh-controller (issue 1816 note 3: deleting them would make its suites skip and read as passed).
Quick fix: none without a hand act. Thorough, chosen: the repair tool reads any consumer kind, and the dead code goes instead of misleading the next reader.
Tests: nats removal table rows (pull and push); gitea's whole suite 216/216 against the mesh-sdk package; go vet and go test per Go module.
On delivery (novox): nats moves its tools bundle only (the server container is not restarted; the bus is backed up first); gitea, mesh-conditions, mesh-issues, messenger move.
Reviewed-by: review-consumer-remove@shanks at
080aed6855https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
js.Consumer refuses a push consumer ("consumer is not a pull consumer"), so the controller's leftovers on EVENTS and CONTROL could not be read and were not removed. The tool now reads a consumer of either kind (CONSUMER.INFO only, which is all its grant gives), before the delete and for the confirmation after it. Quick fix: this change, in the tool, one function, about an hour with its test rows (a pull and a push consumer). Thorough fix: the same tool also needs its grant to cover the KV_* streams' consumers (mesh-controller-take-in, mesh-controller-config-follow), and that grant is composed by mesh-sdk's BusRemovalGrants from a closed set (ControllerLeftoverConsumersOn), not by the manifest, so it is not in this commit: it needs a change in mesh-sdk and a group delivery. Chosen here: the quick fix for the read, since it is one place and blocks the operator's removal now; the grant is reported to the lead. Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCnDelivery
novox/mesh-catalog@080aed68556a— merged since 2026-11-04T10:36:43ZSource — source.main moved to novox/mesh-catalog@7f626147be. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/consumer-remove-any: novox/mesh-catalog@080aed6855, novox/mesh-delivery@fc300216ecTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.