Make a module's consumer from now and refuse a start word in consumes (issue 1279, ADR 0443) #400

Merged
mesh-tools merged 1 commits from fix/1279-consumers-from-now into main 2026-10-19 20:22:43 +00:00
Member

Issue 1279, decided by ADR 0443 (clauses 1, 2, 4).

Delivery group on branch fix/1279-consumers-from-now: mesh-sdk first, then this pull request, then mesh-delivery. No dependency change here (no go.mod change, no vendor change).

What changes: ConsumerFor (EVENTS) and heardConsumer (another module's stream) set FromNow; QueueConsumer and HolderConsumerFor stay as they were; the manifest parser refuses a consumes entry that is not an event name, naming its keys (from, start, deliver). Two integration tests asserted the old replay and are turned around: raise_live_test.go (TestAModulesConsumerCreatedAfterwardsStartsFromNow) and modstreams_live_test.go (the reader's pending counts).

  • 1279/AC1 (unit): internal/broker/derived_test.go TestAModulesConsumerIsMadeFromNow
  • 1279/AC2 (integration): internal/broker/consumer_from_now_test.go TestAModulesConsumerDeliversNothingOfTheStreamsPast (EVENTS and another module's stream)
  • 1279/AC3 (integration): same file, TestAnExistingConsumerKeepsItsPositionWhenAssertedAgain (no unit part: it needs a server)
  • 1279/AC4 (unit): internal/catalogue/consumes_start_test.go TestAConsumesEntryAskingWhereItStartsIsRefused

The integration tests were compiled (go vet -tags integration ./...), not run, on the author's machine; the merge check runs them.

Reviewed-by: review-1279@shanks at a0c971cea9

Issue 1279, decided by ADR 0443 (clauses 1, 2, 4). Delivery group on branch fix/1279-consumers-from-now: mesh-sdk first, then this pull request, then mesh-delivery. No dependency change here (no go.mod change, no vendor change). What changes: `ConsumerFor` (EVENTS) and `heardConsumer` (another module's stream) set FromNow; `QueueConsumer` and `HolderConsumerFor` stay as they were; the manifest parser refuses a consumes entry that is not an event name, naming its keys (from, start, deliver). Two integration tests asserted the old replay and are turned around: raise_live_test.go (TestAModulesConsumerCreatedAfterwardsStartsFromNow) and modstreams_live_test.go (the reader's pending counts). - 1279/AC1 (unit): internal/broker/derived_test.go TestAModulesConsumerIsMadeFromNow - 1279/AC2 (integration): internal/broker/consumer_from_now_test.go TestAModulesConsumerDeliversNothingOfTheStreamsPast (EVENTS and another module's stream) - 1279/AC3 (integration): same file, TestAnExistingConsumerKeepsItsPositionWhenAssertedAgain (no unit part: it needs a server) - 1279/AC4 (unit): internal/catalogue/consumes_start_test.go TestAConsumesEntryAskingWhereItStartsIsRefused The integration tests were compiled (`go vet -tags integration ./...`), not run, on the author's machine; the merge check runs them. Reviewed-by: review-1279@shanks at a0c971cea92eba10c7f832826dbf6267ba5b43a1
mesh-tools added 1 commit 2026-10-19 19:57:00 +00:00
Make a module's consumer from now and refuse a start word in consumes, so no part replays a week at its first start (issue 1279, ADR 0443)
mesh/repo-check head a0c971cea92e merged into trunk 880207649956 — pass: its merge-check.sh passed
mesh/merge-gate head a0c971cea92e merged into trunk 880207649956 — pass: group fix/1279-consumers-from-now composed: every machine composes with the change…
mesh/delivery delivered
mesh/delivery-group group fix/1279-consumers-from-now delivered: every member is delivered
a0c971cea9
Author
Member

Delivery novox/mesh-controller@a0c971cea92e — delivered since 2026-10-19T20:58:09Z

Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller, route-proxy
  • tier 1: build-agent
  • ace: receives route-proxy, build-agent
  • g14: receives build-agent
  • novox: receives mesh-controller, route-proxy, build-agent
  • shanks: receives build-agent
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
  • build-agent keeps data (ADR 0233): what it holds is backed up before it moves
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine

Group fix/1279-consumers-from-now: novox/mesh-controller@a0c971cea9, novox/mesh-delivery@ca667af562, novox/mesh-sdk@4580d80a32

  • composed together: pass — every machine composes with the change as it did without (4 of 4 compose)

Machines

  • mesh-controller on every machine running it: sent
  • mesh-delivery-indexer on every machine running it: sent
  • route-proxy on every machine running it: sent
  • build-agent on every machine running it: sent
  • mesh-delivery-forge-bridge on every machine running it: sent

Transitions

  • 2026-10-19 19:57 (new) → proposed (announced): novox/mesh-controller#400's head announced
  • 2026-10-19 20:02 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-19 20:02 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-19 20:45 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-19 20:45 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
  • 2026-10-19 20:58 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@a0c971cea92e` — **delivered** since 2026-10-19T20:58:09Z **Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller, route-proxy - tier 1: build-agent - ace: receives route-proxy, build-agent - g14: receives build-agent - novox: receives mesh-controller, route-proxy, build-agent - shanks: receives build-agent - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine **Group** `fix/1279-consumers-from-now`: novox/mesh-controller@a0c971cea92e, novox/mesh-delivery@ca667af562b0, novox/mesh-sdk@4580d80a32d9 - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-controller on every machine running it: sent - mesh-delivery-indexer on every machine running it: sent - route-proxy on every machine running it: sent - build-agent on every machine running it: sent - mesh-delivery-forge-bridge on every machine running it: sent **Transitions** - 2026-10-19 19:57 (new) → proposed (announced): novox/mesh-controller#400's head announced - 2026-10-19 20:02 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-19 20:02 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-19 20:45 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-19 20:45 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit - 2026-10-19 20:58 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh-tools merged commit caa3fc8995 into main 2026-10-19 20:22:43 +00:00
mesh-tools deleted branch fix/1279-consumers-from-now 2026-10-19 20:22:43 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#400