The registry milestone (issue 1966; ADR 0605-0636 as hq's designs name them), taken in onto its trunks after milestone 47/B0 as milestone 47/G's first step (design 47; issue 1921 notes 54-61).
One delivery group, branch feat/registry-milestone in mesh-sdk, mesh-contracts, mesh-delivery, mesh-host, mesh-tools, mesh-catalog and mesh-networking: one check, one Approve. No member names another's version (ADR 0573); every mesh package is required at the zero version.
This member: eight dead copies of seats' verb lists removed, with a guard; the node-engine's input says why each module is held; the composer overrules a hold the case's own verdict accepts, naming a build still awaited; the composition verb says why a module is held.
The registry's reviewed heads (three rounds, 2026-11-04 to 11-06) were never pushed until now; the check of 068b7d23cf1a judged the heads of 2026-11-04. The trunk step was prepared and reviewed in three rounds (2026-11-07): the merge resolutions keep B0's facts and checking-program rules and the registry's generated types; every check composes with the composer at the node-engine member's head, else its trunk; a module the running indexer refuses but the check's own validator accepts is composed and named in the verdict with its build awaited, never passed silently; the checking program answers only new or changed seat definitions when given the reader's digests, and without them (the running B0 checker) only each seat's own description, 171 KB under the 256 KiB bound.
Rules bent, said here: mesh-delivery stays over its test budget (662 unit, 68 integration; was 675 and 68) and mesh-host over unit (1745; was 1746), falling. Out of this step, noted on issue 1921: three asks carry the whole seat list (~430 KB) bounded only by the bus's 1 MiB; the trunk case of the manifest validator is given the heads' seats.
After check 616c42434ac2 (issue 1921 notes 63-64), reviewed again: no change in this member.
After check 8a80e8e86858 (issue 1921 notes 66-67), reviewed again: mesh-catalog ignores the new check's program and mesh-build-go's test workspace lays what the composer requires; mesh-host composes from the change's manifest wherever a node's build was made of another (by its manifest digest, or by its contract where the running node-engine names none), naming each such module as not judged, and a consumer beside a held provider is not served the provider's own names raw; mesh-delivery's checker keeps each composition request it sends (state compositions, 3 days) with the read tool checker_composition_requests.
After check c5d32074c945 (issue 1921 notes 69-75), reviewed again: mesh-catalog marks lab moved (lead-47@shanks) and takes in main's mesh-catalog #624 (the fetch downloads each placed sibling's module graph, delivered ahead); mesh-delivery's checker test expects its eleventh state, and it takes in main's #163 (the indexer's take-in waits end, lead-47@shanks) and #164 (a pull request's check composes only after the change's own builds end), both delivered ahead; mesh-host gives the held try's words when it is refused too. Rule bent, said here: mesh-build-go has 52 integration tests, over its budget of 50 (the trunk 49).
Reviewed-by: mesh-code-reviewer@shanks at cb7a444a56
The registry milestone (issue 1966; ADR 0605-0636 as hq's designs name them), taken in onto its trunks after milestone 47/B0 as milestone 47/G's first step (design 47; issue 1921 notes 54-61).
One delivery group, branch feat/registry-milestone in mesh-sdk, mesh-contracts, mesh-delivery, mesh-host, mesh-tools, mesh-catalog and mesh-networking: one check, one Approve. No member names another's version (ADR 0573); every mesh package is required at the zero version.
This member: eight dead copies of seats' verb lists removed, with a guard; the node-engine's input says why each module is held; the composer overrules a hold the case's own verdict accepts, naming a build still awaited; the composition verb says why a module is held.
The registry's reviewed heads (three rounds, 2026-11-04 to 11-06) were never pushed until now; the check of 068b7d23cf1a judged the heads of 2026-11-04. The trunk step was prepared and reviewed in three rounds (2026-11-07): the merge resolutions keep B0's facts and checking-program rules and the registry's generated types; every check composes with the composer at the node-engine member's head, else its trunk; a module the running indexer refuses but the check's own validator accepts is composed and named in the verdict with its build awaited, never passed silently; the checking program answers only new or changed seat definitions when given the reader's digests, and without them (the running B0 checker) only each seat's own description, 171 KB under the 256 KiB bound.
Rules bent, said here: mesh-delivery stays over its test budget (662 unit, 68 integration; was 675 and 68) and mesh-host over unit (1745; was 1746), falling. Out of this step, noted on issue 1921: three asks carry the whole seat list (~430 KB) bounded only by the bus's 1 MiB; the trunk case of the manifest validator is given the heads' seats.
After check 616c42434ac2 (issue 1921 notes 63-64), reviewed again: no change in this member.
After check 8a80e8e86858 (issue 1921 notes 66-67), reviewed again: mesh-catalog ignores the new check's program and mesh-build-go's test workspace lays what the composer requires; mesh-host composes from the change's manifest wherever a node's build was made of another (by its manifest digest, or by its contract where the running node-engine names none), naming each such module as not judged, and a consumer beside a held provider is not served the provider's own names raw; mesh-delivery's checker keeps each composition request it sends (state compositions, 3 days) with the read tool checker_composition_requests.
After check c5d32074c945 (issue 1921 notes 69-75), reviewed again: mesh-catalog marks lab moved (lead-47@shanks) and takes in main's mesh-catalog #624 (the fetch downloads each placed sibling's module graph, delivered ahead); mesh-delivery's checker test expects its eleventh state, and it takes in main's #163 (the indexer's take-in waits end, lead-47@shanks) and #164 (a pull request's check composes only after the change's own builds end), both delivered ahead; mesh-host gives the held try's words when it is refused too. Rule bent, said here: mesh-build-go has 52 integration tests, over its budget of 50 (the trunk 49).
Reviewed-by: mesh-code-reviewer@shanks at cb7a444a5634e9d202df0cb250aa3f67e1366582
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The verb's answer and the event's body are mesh-contracts' nodeengine types, not mesh-sdk's, and the seat's verb and event
names are the contract's. The two reasons of the event, started and returned, are the engine's own words beside it.
Requires mesh-contracts and the registry milestone's mesh-sdk (a go.work, uncommitted, until the group pins them).
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
mesh-sdk's ComposeCandidateAnswer and ModuleComposed are now the generated nodeengine types (ADR 0613 §3, §5), so the
input sent for the checker's sandbox is decoded once into the object the contract carries, its numbers kept as written
(json.Number), and its size still counted from the bytes it was marshalled to.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
ADR 0627 §1, §4: mesh-sdk keeps no asks, asker, vault answers or compose-candidate checks, so the node-engine takes them
from mesh-contracts: operator-channel's contract and client (asks, warrants, the asker's client), mesh-vault's sign verb
and answer, and node-engine's own contract and client for compose-candidate's ask, answer, verdicts and bound. The
lead's ruling on pull-waits (no record gives the seat that verb): the verb and its handler go; the row that read the
waits now holds the seat refusing the verb, and failed before the change. The go.mod requires of mesh-contracts' modules
come with the group's pin.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
The image, the seat and its holder, when the pull began, and the last retry with what triggered it ride in the failed
have's pull-wait (mesh-sdk delivery.Have.PullWait, asked of the lead in j1-sdk-requests.patch), from the agent through
the link's module fact to the have bucket; the agent's own read view of them goes with the verb. Rows in the agent's
pull test and the have bucket's test; each failed without the code.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
The owner is the account the manifest names for the directory that holds the file; the bootstrap no longer makes that
directory itself, and a run that reaches it first is refused naming what it waits on.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
waitIdle returns once every change sent to the loop is taken in and applied and no backoff wait runs, so a retry the
clock or a wrong settled would start is counted, with no real sleep.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
The store's front is distribution's program, a bundle the mesh builds, so nothing serves it before the builder: the
bootstrap's /v2/ wait and its pushes now go to the loopback port the store's manifest publishes, as the publish contract
allows on the store's own node. The one-off credential and its file go: the runtime could not carry it on a push, and no
push needs it. The tags list is asked for the repository being published, not always the control plane's.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
mesh/check failed (9): ace: novox/mesh-sdk#167 does not merge into the trunk: files in conflict: go/catalog…; and 8 more | 32c5df952cbf on e73aae3686a6
Deliverynovox/mesh-host@cb7a444a5634 — merged since 2026-11-07T14:19:53Z
Source — source.main moved to novox/mesh-host@70e70eda5a. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: fail — the checker's verdict at the members' heads (f7ed14f6b430): integration: meshbuildgo/cmd/mesh-build-go.TestAComposeAskIsBuiltOnceAndAnsweredOnTheBus
Transitions
2026-11-07 13:39 (new) → proposed (announced): novox/mesh-host#209's head announced
2026-11-07 13:39 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-07 14:19 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-host@cb7a444a5634` — **merged** since 2026-11-07T14:19:53Z
**Source** — source.main moved to novox/mesh-host@70e70eda5a24. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/registry-milestone`: novox/mesh-catalog@67d9ccb1d455, novox/mesh-contracts@b77560786a6a, novox/mesh-delivery@4735fc0b5fdb, novox/mesh-host@cb7a444a5634, novox/mesh-networking@9ee0ffe3c0b6, novox/mesh-sdk@d93254670307, novox/mesh-tools@6c05e4262641
- composed together: fail — the checker's verdict at the members' heads (f7ed14f6b430): integration: meshbuildgo/cmd/mesh-build-go.TestAComposeAskIsBuiltOnceAndAnsweredOnTheBus
**Transitions**
- 2026-11-07 13:39 (new) → proposed (announced): novox/mesh-host#209's head announced
- 2026-11-07 13:39 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-07 14:19 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: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: not merged. The merge of this pull request into main at 32c5df952c was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
mesh-delivery: **not merged.** The merge of this pull request into main at 32c5df952cbf5519de7f6f606957a9e67b6d41df was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
The group's mesh-build-go requires go-package-registry, which the forge
now provides; the stand-in listed the forge's offers by hand and missed it,
so the test failed against the group's catalogue. It now takes them from
the catalogue's gitea manifest, so a registry the forge gains needs no edit.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
The provision artifact-store retires, so the store is found by the holder of
container-image-registry and the listen it opens to the mesh, on the port its
node put it on; every name of the store, oci-artifact-registry's too, answers
that address. The engine states form:seat-reach with its contract.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
While the indexer holds distribution's new manifest, every node reads main's,
which claims only mesh-artifact-store: a new engine must find the store there.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
The engine's Composed keeps the catalogue's Plan and the declaration types and goes through nodeengineclient's codec; the fingerprint key part is meshcatalogclient's. The candidate answer is nodeengine.CandidateAnswer; the have still holds it through an interim JSON bridge (link.interimAnswers) until the Have group moves.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
A member's go.mod names the oldest version a module accepts; the check builds the group's own heads whatever it names. go.sum lines of mesh packages are left out.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The state, events and types of the seat mesh-module-assigner say assignments; the legacy node key form is gone from the
reads; the dead seat-verb list of the retired name is deleted. The placement guard and the placed-file sense stay.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The marks of the haves (a refusal, the words a module keeps) read and write each module's have in turn, and each write
walks every have: on a slow bus the pass waited minutes on them (shanks, 2026-11-05 22:22). They now run off the pass,
newest word per kind, each bounded; an ask of compose during a pass is answered at once and queues one more pass.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
A case's verdicts are the checker's account of the indexer's modules values, not the indexer's kept values: the
trunk's checker writes them with version 0 and no judge, so the kept value's strict reader refused every one
and the group try failed composition on all four nodes ("the verdict of f1-circuits is not one: ... version 0").
The composer now takes version 0 (or none) and keys.Version, its judge optional, and still refuses a later
version, a value that does not decode and an unknown state. The bus reader of kept verdicts stays strict.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The group try of 2026-11-06 10:07 failed its composition on all four
machines because mesh-compose, the node-engine's composer a check builds
at the head, loaded no seat list once the compiled one was deleted (ADR
0635 §1): the uplink's holder no longer stepped back from the resolver
file, and no holder of the registry seats was known. It now takes the
request's seats over the foundation's bootstrapped ones, as the
node-engine takes the bus's; without any it says each machine not judged
(ADR 0636 §1, ADR 0593 §9), never a refusal or pass made without them.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Eight lists of seat verbs (checker, enrolment, artifact sweep, delivery, node-resolver, node-nfs-server,
node-mounts, mesh-config's input) and their schema helpers were read by nothing but one test, and drifted
from their seats (B0's verb input never reached the checker's copy). A guard row in the seats test finds
any list of the catalogue's verbs written in the node-engine's code.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
A module the running indexer refused stood in the input as its stub with no build, so a check's composer that
judges the change's manifest itself had nothing to compose it at. Each held module now says whether its verdict
or the decoder holds it; for a check's answer the node also takes in the build it would compose it at, when the
builder holds it done, beside the stub and never into what the node composes.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
ADR 0578 §2 and §3: a case's accepted verdict, or none (the running checker drops the change's own), lifts the
input's hold on a manifest the composer reads whole; a case's refusal and bytes that do not decode stay held. It is
composed at the build the input carries (Input.Holds). Without that build the node is not judged and the verdict
names the module, why it was held and that its build is awaited; where it cannot compose without it, it is composed
held as its node-engine holds it, and said so. Never a silent pass (the lead's Q4 ruling). The issue 774 row now
gives the runner the refused verdict the checker gives a manifest the change does not bring.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
mesh/check failed (4): unit: git.novox.be/novox/mesh-catalog/checks/gitignored.TestNoProgramABuildLeavesIsC…; and 3 more | 5b75e866d079 on e73aae3686a6
The node's own composition named a held module's why only; it now also says whether its manifest's verdict or this
node-engine's decoder holds it, and at which build, as the input a check's composer reads says it. Said in the held
words, so the node-engine seat's answer keeps its shape.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
The provider held on its machine is composed apart, so no module of the composed set serves the provision; its
manifest's served values reached the consumer's binding raw and the binding refused the consumer for a
${bound:route:name-web} it does not require (the group check of 8a80e8e86858 on novox, mesh-build-node beside a held
gitea). Each such key is now left out and said on the need, as a provider elsewhere leaves it out (ADR 0346).
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The running indexer could not read 17 of the group's manifests, so the running node-engine composed those modules at
their trunk builds and said nothing; the head composer laid those builds over the change's other manifests and ace
failed on "nothing provides artifact-store, wanted by mesh-build-go" (group check 8a80e8e86858). The input a node
answers a check with now names, per module taken in from its build, the content digest of the manifest that build was
made of (ComposedHow.Manifests); the composer compares it with the case's manifest, and, for an input from a
node-engine before it, compares what the two manifests say beyond what a take-in resolves (the lead's ruling, §17).
Each module lifted either way is composed from the case's manifest, its build awaited, and named in NotJudged with
the comparison that lifted it; one that cannot compose without its build is held as its stub. The digest is taken
over one JSON form because a request through a build module arrives compacted.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: not merged. The merge of this pull request into main at 53addd73c3 was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
mesh-delivery: **not merged.** The merge of this pull request into main at 53addd73c358daae84e24da7e5cd9227b9901879 was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
When a node refused also with the modules composed without their build held as its node-engine holds them, the
verdict kept the words of the composition from their unbuilt manifests, whose refusals the lift itself made (a tool
runner with no bundle, a resource whose artifact or template no build resolved). In the group check of c5d32074c945
that hid lab's real refusal on shanks among them. The node's refusal is now that of the held composition, named so.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
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.
The registry milestone (issue 1966; ADR 0605-0636 as hq's designs name them), taken in onto its trunks after milestone 47/B0 as milestone 47/G's first step (design 47; issue 1921 notes 54-61).
One delivery group, branch feat/registry-milestone in mesh-sdk, mesh-contracts, mesh-delivery, mesh-host, mesh-tools, mesh-catalog and mesh-networking: one check, one Approve. No member names another's version (ADR 0573); every mesh package is required at the zero version.
This member: eight dead copies of seats' verb lists removed, with a guard; the node-engine's input says why each module is held; the composer overrules a hold the case's own verdict accepts, naming a build still awaited; the composition verb says why a module is held.
The registry's reviewed heads (three rounds, 2026-11-04 to 11-06) were never pushed until now; the check of 068b7d23cf1a judged the heads of 2026-11-04. The trunk step was prepared and reviewed in three rounds (2026-11-07): the merge resolutions keep B0's facts and checking-program rules and the registry's generated types; every check composes with the composer at the node-engine member's head, else its trunk; a module the running indexer refuses but the check's own validator accepts is composed and named in the verdict with its build awaited, never passed silently; the checking program answers only new or changed seat definitions when given the reader's digests, and without them (the running B0 checker) only each seat's own description, 171 KB under the 256 KiB bound.
Rules bent, said here: mesh-delivery stays over its test budget (662 unit, 68 integration; was 675 and 68) and mesh-host over unit (1745; was 1746), falling. Out of this step, noted on issue 1921: three asks carry the whole seat list (~430 KB) bounded only by the bus's 1 MiB; the trunk case of the manifest validator is given the heads' seats.
After check 616c42434ac2 (issue 1921 notes 63-64), reviewed again: no change in this member.
After check 8a80e8e86858 (issue 1921 notes 66-67), reviewed again: mesh-catalog ignores the new check's program and mesh-build-go's test workspace lays what the composer requires; mesh-host composes from the change's manifest wherever a node's build was made of another (by its manifest digest, or by its contract where the running node-engine names none), naming each such module as not judged, and a consumer beside a held provider is not served the provider's own names raw; mesh-delivery's checker keeps each composition request it sends (state compositions, 3 days) with the read tool checker_composition_requests.
After check c5d32074c945 (issue 1921 notes 69-75), reviewed again: mesh-catalog marks lab moved (lead-47@shanks) and takes in main's mesh-catalog #624 (the fetch downloads each placed sibling's module graph, delivered ahead); mesh-delivery's checker test expects its eleventh state, and it takes in main's #163 (the indexer's take-in waits end, lead-47@shanks) and #164 (a pull request's check composes only after the change's own builds end), both delivered ahead; mesh-host gives the held try's words when it is refused too. Rule bent, said here: mesh-build-go has 52 integration tests, over its budget of 50 (the trunk 49).
Reviewed-by: mesh-code-reviewer@shanks at
cb7a444a56https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Delivery
novox/mesh-host@cb7a444a5634— merged since 2026-11-07T14:19:53ZSource — source.main moved to novox/mesh-host@70e70eda5a. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/registry-milestone: novox/mesh-catalog@67d9ccb1d4, novox/mesh-contracts@b77560786a, novox/mesh-delivery@4735fc0b5f, novox/mesh-host@cb7a444a56, novox/mesh-networking@9ee0ffe3c0, novox/mesh-sdk@d932546703, novox/mesh-tools@6c05e42626Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: not merged. The merge of this pull request into main at
32c5df952cwas declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.A case's verdicts are the checker's account of the indexer's modules values, not the indexer's kept values: the trunk's checker writes them with version 0 and no judge, so the kept value's strict reader refused every one and the group try failed composition on all four nodes ("the verdict of f1-circuits is not one: ... version 0"). The composer now takes version 0 (or none) and keys.Version, its judge optional, and still refuses a later version, a value that does not decode and an unknown state. The bus reader of kept verdicts stays strict. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7imesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
The provider held on its machine is composed apart, so no module of the composed set serves the provision; its manifest's served values reached the consumer's binding raw and the binding refused the consumer for a ${bound:route:name-web} it does not require (the group check of 8a80e8e86858 on novox, mesh-build-node beside a held gitea). Each such key is now left out and said on the need, as a provider elsewhere leaves it out (ADR 0346). Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7imesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: not merged. The merge of this pull request into main at
53addd73c3was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.