Issue 890 (mesh-build-node's integration tests need the Node toolchain, which ace lacks) and ADR 0552 (accepted v11). Group feat/890-placement with mesh-catalog and mesh-delivery.
delivery: a check ask may carry Needs (from the fixed list AskNeeds: node-build-node) and Packages (the packages a placed ask tests); both omitempty; unknown needs and bad package names are refused. StepDeclined/DeclinedOf, LevelDigest.Needs, LevelAnswer.Unmet.
buildstep: a node that lacks a need declines the ask (writes the step refused and terminates the message; the asker puts it again under a new id), and leaves that worker out until its next pull wait. A package's needs come from a check-needs marker; a package whose needs the node lacks is named unmet, not tested. A placed ask tests exactly its Packages.
Tests: rows in TestAskRefusesUnknownKindAndLanguage, TestPullDropsWhatIsNoAsk, TestRunAskChecksTheLevelsOfOneCheck. Suites and vet clean. Try try-1793020009719671153 passed.
Delivery note: while a Go build node still runs the old SDK it ignores Needs and Packages (a placed ask could count a package twice); every mix otherwise falls back to today's behaviour.
Issue 890 (mesh-build-node's integration tests need the Node toolchain, which ace lacks) and ADR 0552 (accepted v11). Group feat/890-placement with mesh-catalog and mesh-delivery.
- `delivery`: a check ask may carry `Needs` (from the fixed list `AskNeeds`: `node-build-node`) and `Packages` (the packages a placed ask tests); both omitempty; unknown needs and bad package names are refused. `StepDeclined`/`DeclinedOf`, `LevelDigest.Needs`, `LevelAnswer.Unmet`.
- `buildstep`: a node that lacks a need declines the ask (writes the step refused and terminates the message; the asker puts it again under a new id), and leaves that worker out until its next pull wait. A package's needs come from a `check-needs` marker; a package whose needs the node lacks is named unmet, not tested. A placed ask tests exactly its `Packages`.
Tests: rows in TestAskRefusesUnknownKindAndLanguage, TestPullDropsWhatIsNoAsk, TestRunAskChecksTheLevelsOfOneCheck. Suites and vet clean. Try try-1793020009719671153 passed.
Delivery note: while a Go build node still runs the old SDK it ignores Needs and Packages (a placed ask could count a package twice); every mix otherwise falls back to today's behaviour.
Reviewed-by: review-890@shanks at 33395f68b309e48d079c210542e49ae67b6249a0
A check ask's packages may need something only some build nodes have (mesh-build-node's integration tests read the
Node build module's installed toolchain). An ask now names its Needs; a holder lacking one ends the ask's step refused
as declined and drops the message for its asker to put again, skipping that worker until its next pull wait; a level's
packages whose declared needs the node lacks are left untested and named unmet, for the asker to place.
Deliverynovox/mesh-sdk@33395f68b309 — merged since 2026-10-26T13:40:38Z
Source — source.main moved to novox/mesh-sdk@21252194d5. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-10-26 13:26 (new) → proposed (announced): novox/mesh-sdk#91's head announced
2026-10-26 13:26 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-10-26 13:40 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-sdk@33395f68b309` — **merged** since 2026-10-26T13:40:38Z
**Source** — source.main moved to novox/mesh-sdk@21252194d530. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/890-placement`: novox/mesh-catalog@d3423f54ed58, novox/mesh-delivery@3073495a0670, novox/mesh-sdk@33395f68b309
**Transitions**
- 2026-10-26 13:26 (new) → proposed (announced): novox/mesh-sdk#91's head announced
- 2026-10-26 13:26 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-10-26 13:40 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: 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.
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.
Issue 890 (mesh-build-node's integration tests need the Node toolchain, which ace lacks) and ADR 0552 (accepted v11). Group feat/890-placement with mesh-catalog and mesh-delivery.
delivery: a check ask may carryNeeds(from the fixed listAskNeeds:node-build-node) andPackages(the packages a placed ask tests); both omitempty; unknown needs and bad package names are refused.StepDeclined/DeclinedOf,LevelDigest.Needs,LevelAnswer.Unmet.buildstep: a node that lacks a need declines the ask (writes the step refused and terminates the message; the asker puts it again under a new id), and leaves that worker out until its next pull wait. A package's needs come from acheck-needsmarker; a package whose needs the node lacks is named unmet, not tested. A placed ask tests exactly itsPackages.Tests: rows in TestAskRefusesUnknownKindAndLanguage, TestPullDropsWhatIsNoAsk, TestRunAskChecksTheLevelsOfOneCheck. Suites and vet clean. Try try-1793020009719671153 passed.
Delivery note: while a Go build node still runs the old SDK it ignores Needs and Packages (a placed ask could count a package twice); every mix otherwise falls back to today's behaviour.
Reviewed-by: review-890@shanks at
33395f68b3Delivery
novox/mesh-sdk@33395f68b309— merged since 2026-10-26T13:40:38ZSource — source.main moved to novox/mesh-sdk@21252194d5. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/890-placement: novox/mesh-catalog@d3423f54ed, novox/mesh-delivery@3073495a06, novox/mesh-sdk@33395f68b3Transitions
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: 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.