Issue 131: nothing tells the mesh a source moved, and it reports itself current anyway #151

Open
jschoubben wants to merge 2 commits from fix/131-nothing-tells-the-mesh-its-source-moved into main
Owner

Found while trying to run rollout check after today's six merges: the controller still runs the image built before them, because the build machine was never asked to build anything.

The part worth recording is not the missing trigger but what the mesh said about it. Asked what was wrong, it answered that every module was current with its source. All six had moved. "Current with its source" compares what was built against what the mesh was last told the source was — two facts from the same place, which can only ever agree.

The intended shape is decided and unbuilt: the forge emits that a pull request merged, and the build machine reacts by building what that commit affects. The forge's module already declares the event; the build machine declares that it consumes nothing.

Open questions are in the report, including the one I think outlives the fix — whether an overview that cannot ask the forge should be claiming to know.

Found while trying to run `rollout check` after today's six merges: the controller still runs the image built before them, because the build machine was never asked to build anything. The part worth recording is not the missing trigger but what the mesh said about it. Asked what was wrong, it answered that every module was current with its source. All six had moved. "Current with its source" compares what was built against what the mesh was last *told* the source was — two facts from the same place, which can only ever agree. The intended shape is decided and unbuilt: the forge emits that a pull request merged, and the build machine reacts by building what that commit affects. The forge's module already declares the event; the build machine declares that it consumes nothing. Open questions are in the report, including the one I think outlives the fix — whether an overview that cannot ask the forge should be claiming to know.
jschoubben added 1 commit 2026-09-27 17:51:22 +00:00
Six merges landed today and the build machine built nothing — no build was
requested, refused or failed, because none was asked for. Asked what was wrong,
the mesh said every module was current with its source. All six had moved.

The trigger is not broken; there is no trigger. One repository still carries a
forge webhook aimed at a port belonging to a different service, and the rest carry
none. The intended shape is decided and unbuilt: the forge emits that a pull
request merged, the build machine reacts. The forge's module already declares the
event; the build machine consumes nothing.

Recorded with the question that outlasts the fix — "current with its source"
compares what was built against what the mesh was last told, so it agrees with
itself and can only ever agree. Whether the trunk moved is a question the forge
answers, and an overview that cannot ask it should stop claiming to know.
jschoubben added 1 commit 2026-09-27 19:09:00 +00:00
Correcting my own framing. The modules are a graph, not a flat set: several build
from one repository, and some are the base another compiles on. Firing a build per
changed module starts work that cannot succeed yet and reports one cause as a
failure per dependent.

Observed catching the mesh up by hand today — a compiler base had to move first,
and when it failed the right behaviour was for its fifteen dependents to wait, not
to fail identically. So what reacts to the forge's event has to resolve what changed
into an order and hold a dependent while its base is unbuilt. That is a bigger thing
than "rebuild what the commit touched", and cheaper to know now.
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/131-nothing-tells-the-mesh-its-source-moved:fix/131-nothing-tells-the-mesh-its-source-moved
git checkout fix/131-nothing-tells-the-mesh-its-source-moved
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/hq#151