One integration of the branches built today (each commit kept), merged and tested together:
214 — a plan settles an asked build from the build records (on start and every 30 s), so the controller rebuilding itself no longer leaves its plan waiting for ever.
215 — a build at a commit never becomes the branch a module follows; a recorded commit is read as the default branch (heals existing records); a merge's plan names the modules it leaves out.
216 — registration refuses a bundle nothing loads, runs or unpacks, naming the field that would deliver it.
Go tools bundles served (ADR 0193) — loads may name a Go bundle's binary, defaulting to it when the module lists tools; the runtime is pointed at <bundle>/<binary>.
ADR 0198 — the node-tools principal is granted, for each carried module that consumes, that module's own consumer grants (EVENTS.<node>_<module>).
Tests follow the grants: a person may ask $SRV (ADR 0197); the resolver test mints dnsmasq's credential (issue 203's check).
211 is already on main (it rode in with #242); #243 and #244 are superseded by this.
Full suite passes against the current catalogue and mesh-host, and with a throwaway PostgreSQL — except TestTheResolverIsToldEveryMachineOnTheNetworkAndToldAgainWhenOneLeaves ("the resolver was not handed the machines"), which concerns the resolver records merged today by another session, not this change.
One integration of the branches built today (each commit kept), merged and tested together:
- **214** — a plan settles an `asked` build from the build records (on start and every 30 s), so the controller rebuilding itself no longer leaves its plan waiting for ever.
- **215** — a build at a commit never becomes the branch a module follows; a recorded commit is read as the default branch (heals existing records); a merge's plan names the modules it leaves out.
- **216** — registration refuses a bundle nothing loads, runs or unpacks, naming the field that would deliver it.
- **Go tools bundles served** (ADR 0193) — `loads` may name a Go bundle's binary, defaulting to it when the module lists tools; the runtime is pointed at `<bundle>/<binary>`.
- **ADR 0198** — the node-tools principal is granted, for each carried module that consumes, that module's own consumer grants (`EVENTS.<node>_<module>`).
- Tests follow the grants: a person may ask `$SRV` (ADR 0197); the resolver test mints dnsmasq's credential (issue 203's check).
211 is already on main (it rode in with #242); #243 and #244 are superseded by this.
Full suite passes against the current catalogue and mesh-host, and with a throwaway PostgreSQL — except `TestTheResolverIsToldEveryMachineOnTheNetworkAndToldAgainWhenOneLeaves` ("the resolver was not handed the machines"), which concerns the resolver records merged today by another session, not this change.
A merge to the controller's own repository replaces the controller in its first tier; the build
that produced the new one was recorded, the plan never heard it, and it waited for ever with every
later plan behind it. The record is the fact: a build recorded after the ask is the tier's outcome,
whoever was listening when it came.
A build asked at a commit recorded that commit as the module's ref. Every merge after it failed to
match the module and its plan left it out without a word, and every plan that rebuilt it asked for
the same old commit again. Registration now keeps the branch the module followed (the default
branch for a new one); matching and re-asking read a recorded commit as the default branch, which
heals records already pinned this way; and a merge says which modules of its repository it leaves
out because they follow another branch.
The composer delivers a bundle when the runtime loads from it, a resource names it, or it is the
runtime; one reached by none of them was built, recorded and pushed as success and was simply
absent. Seven modules' tools went missing that way. Refused at registration, naming the field that
would deliver it.
A bundle compiled to a binary has no entrypoints, and loads had to name one, so a Go bundle could
not be served. Its binary is what the runtime starts: loads names the binary, derived when the
module lists tools, and the runtime is told the binary's path, delivered like any tools bundle.
A module's long-running code is a bundle the runtime launches, and the runtime is its bus: it binds
the module's own durable consumer — EVENTS, <node>_<module>, still the controller's to make from the
module's principal — and acknowledges what the module's code took. So the runtime principal is
granted, for each carried module that consumes, exactly what that module's own principal has for
its consumer: its info, its next message, its ack subject. Nothing is pushed to it; it pulls. ADR
0175's "consumes nothing" no longer holds. Memberships need nothing new: the consumer's name is
derived, as the module's own runtime derived it.
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.
One integration of the branches built today (each commit kept), merged and tested together:
askedbuild from the build records (on start and every 30 s), so the controller rebuilding itself no longer leaves its plan waiting for ever.loadsmay name a Go bundle's binary, defaulting to it when the module lists tools; the runtime is pointed at<bundle>/<binary>.EVENTS.<node>_<module>).$SRV(ADR 0197); the resolver test mints dnsmasq's credential (issue 203's check).211 is already on main (it rode in with #242); #243 and #244 are superseded by this.
Full suite passes against the current catalogue and mesh-host, and with a throwaway PostgreSQL — except
TestTheResolverIsToldEveryMachineOnTheNetworkAndToldAgainWhenOneLeaves("the resolver was not handed the machines"), which concerns the resolver records merged today by another session, not this change.