A check ask can name needs and packages, and a node that lacks a need declines it (issue 890, ADR 0552) #91

Merged
mesh-tools merged 3 commits from feat/890-placement into main 2026-10-26 13:40:36 +00:00
Member

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 33395f68b3

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
mesh-tools added 3 commits 2026-10-26 13:26:42 +00:00
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.
Merge main (issue 1890's step records) into feat/890-placement: a decline begins its step with what it is
mesh/delivery merged: source.main moved to novox/mesh-sdk@21252194d530
mesh/delivery-group group feat/890-placement merged: every member is merged
mesh/check checking 33395f68b309 on 2aae6f5580f2 | novox/mesh-sdk#91 in group feat/890-placement
33395f68b3
Author
Member

Delivery novox/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.

Group feat/890-placement: novox/mesh-catalog@d3423f54ed, novox/mesh-delivery@3073495a06, novox/mesh-sdk@33395f68b3

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: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`.
Author
Member

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.
Author
Member

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-tools merged commit 21252194d5 into main 2026-10-26 13:40:36 +00:00
mesh-tools deleted branch feat/890-placement 2026-10-26 13:40:36 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-sdk#91