A build says what it does on the bus, as it happens (ADR 0157) #178

Merged
mesh-admin merged 1 commits from feat/a-build-says-what-it-does into main 2026-09-30 22:43:52 +00:00
Contributor

novox/hq ADR 0157. The build-machine seat emits started and log.<build id> beside built. Every line the builder speaks — each step, each command with its duration, and on failure the command's own output line by line — goes to stderr as before and onto the bus under the build's id: one subject per build, kept a week in EVENTS. builds --log <id> reads it back from the stream (command line and the controller's seat verb through the console); builds lists each build's id; build says the id it asked with.

Tests: holder grant is exactly started, built, log.* (broker); lines reach a subscriber in order and the stream holds them (link, against a real NATS); the seat verb maps log (controller).

Roll-out: the controller widens the seat protocol at its next start; then push novox so the broker node recomposes the builder's grant; the builder rebuilt from this merge then narrates its next build. Live check after: trigger a build and read mesh-controller.builds {log: <id>} through the console.

novox/hq ADR 0157. The build-machine seat emits `started` and `log.<build id>` beside `built`. Every line the builder speaks — each step, each command with its duration, and on failure the command's own output line by line — goes to stderr as before and onto the bus under the build's id: one subject per build, kept a week in EVENTS. `builds --log <id>` reads it back from the stream (command line and the controller's seat verb through the console); `builds` lists each build's id; `build` says the id it asked with. Tests: holder grant is exactly `started`, `built`, `log.*` (broker); lines reach a subscriber in order and the stream holds them (link, against a real NATS); the seat verb maps `log` (controller). **Roll-out:** the controller widens the seat protocol at its next start; then `push novox` so the broker node recomposes the builder's grant; the builder rebuilt from this merge then narrates its next build. Live check after: trigger a build and read `mesh-controller.builds {log: <id>}` through the console.
mesh-admin added 1 commit 2026-09-30 22:43:38 +00:00
The build-machine seat emits `started` and `log.<build id>` beside `built`. Every line the builder
speaks — each step, each command with its duration, and on failure the command's own output — goes
to stderr as before and onto the bus under the build's id, one subject per build, kept a week in
EVENTS with every other event. `builds --log <id>` reads it back from the stream with a consumer
that is gone when the reading is done, on the command line and as the controller's seat verb;
`builds` lists each build's id and `build` says the id it asked with.

Lines are core publishes with a sequence number, so a build is not slowed by an ack per line and a
gap is visible; `started` and `built` are awaited into the stream. The seat protocol widens
additively at the controller's next start; the holder's grant follows on the broker node's next
composition.
mesh-admin merged commit a96e2f0d78 into main 2026-09-30 22:43:52 +00:00
mesh-admin deleted branch feat/a-build-says-what-it-does 2026-09-30 22:43:52 +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-controller#178