L3 final: what a manifest reads and needs, the reader-capability baseline, the node record's manifest-reads (ADR 0614, issue 774) #166

Merged
mesh-tools merged 2 commits from feat/l3-final into main 2026-11-04 00:23:38 +00:00
Member

One delivery group, branch feat/l3-final in mesh-sdk, mesh-delivery, mesh-catalog, mesh-tools and mesh-host: the final release of design 47's step L3 (issue 774, with 1367 and 1585). Records: ADR 0614 (accepted), ADR 0603, ADR 0601, ADR 0604.

This member:

  • catalogue.ManifestReads, ManifestNeeds, BaselineManifestReads, StatedManifestReads, MissingManifestReads (ADR 0614 §4). The baseline is generated from f02f142, which the running node-engines are built with; a node-engine that states nothing reads it.
  • NodeRecord.ManifestReads (manifest-reads) and Module.Needs (needs), additive at Version 1; checkRule accepts 1-10, and nothing writes 9 or 10.
  • kept_until_delivered.go stays (rule bent, said to the operator): the check builds the running node-engine 798d73e against this SDK, and it still uses three of its names. It goes in the next release that changes mesh-sdk.
  • Not in this release: ADR 0614 §4's check refusal of a node-engine manifest (D8). Nothing tells the node-engine's manifest apart without its name (issue 774 note 105). The assigner's hold covers it meanwhile.

quick vs thorough: thorough (the edge kinds in the module graph, per ADR 0614), chosen because the kind was met three times (issue 1585 notes 41-42).
Tests: net zero test functions (634). Prepare: hq .work/l3-final-prepare.md.

Reviewed-by: mesh-code-reviewer@shanks at 85ba0a9a70
Pushed-by: lead-47@shanks

https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn

One delivery group, branch feat/l3-final in mesh-sdk, mesh-delivery, mesh-catalog, mesh-tools and mesh-host: the final release of design 47's step L3 (issue 774, with 1367 and 1585). Records: ADR 0614 (accepted), ADR 0603, ADR 0601, ADR 0604. This member: - `catalogue.ManifestReads`, `ManifestNeeds`, `BaselineManifestReads`, `StatedManifestReads`, `MissingManifestReads` (ADR 0614 §4). The baseline is generated from f02f142, which the running node-engines are built with; a node-engine that states nothing reads it. - `NodeRecord.ManifestReads` (`manifest-reads`) and `Module.Needs` (`needs`), additive at Version 1; `checkRule` accepts 1-10, and nothing writes 9 or 10. - kept_until_delivered.go stays (rule bent, said to the operator): the check builds the running node-engine 798d73e against this SDK, and it still uses three of its names. It goes in the next release that changes mesh-sdk. - Not in this release: ADR 0614 §4's check refusal of a node-engine manifest (D8). Nothing tells the node-engine's manifest apart without its name (issue 774 note 105). The assigner's hold covers it meanwhile. quick vs thorough: thorough (the edge kinds in the module graph, per ADR 0614), chosen because the kind was met three times (issue 1585 notes 41-42). Tests: net zero test functions (634). Prepare: hq .work/l3-final-prepare.md. Reviewed-by: mesh-code-reviewer@shanks at 85ba0a9a70d80651a87c3d868dc1ba06b2ece16e Pushed-by: lead-47@shanks https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
mesh-tools added 2 commits 2026-11-03 22:50:31 +00:00
A reader capability is a manifest word by its path of keys, a form (the config form, each reference form) or a seat
name of the contract's table. ManifestReads walks the decoder's fields; ManifestNeeds walks a manifest's raw JSON as
the lenient decoder does, naming only what the contract knows. The baseline is ManifestReads generated once from
mesh-sdk f02f142, the contract every running node-engine is built with: it lacks only tool-runner, core-credentials
and the bus-state words, as rows check.

Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
A node record states the reader capabilities its engine reads, a module value the ones its manifest needs, and a want of rule 9 or 10 reads (ADR 0614 §2, §4, issue 774)
mesh/delivery-group group feat/l3-final merged: every member is merged
mesh/delivery merged: source.main moved to novox/mesh-sdk@5a38a1221659
mesh/check pass 85ba0a9a70d8 on 52e564845e44 | unit 3760 run, 4992 kept, 56 skipped | integration 3841 run, 5103 kept, 59 skipped | over bound: unit, …
85ba0a9a70
NodeRecord.ManifestReads (`manifest-reads`) and Module.Needs (`needs`) are additive at Version 1, read leniently by
every running part. checkRule takes 1 to 10 so a later release may number the verb wait and the capability hold;
nothing writes 9 or 10 in this one. kept_until_delivered.go stays: this release still builds beside mesh-host 798d73e,
and its head comment names the next mesh-sdk release as the one that removes it.

Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Author
Member

Delivery novox/mesh-sdk@85ba0a9a70d8 — merged since 2026-11-04T00:23:41Z

Source — source.main moved to novox/mesh-sdk@5a38a12216. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group feat/l3-final: novox/mesh-catalog@6c09be4a70, novox/mesh-delivery@70ade15c36, novox/mesh-host@30b86ea602, novox/mesh-sdk@85ba0a9a70, novox/mesh-tools@7fd9d893c0

  • composed together: pass — the checker's verdict at the members' heads (d6a3e805db4a)

Transitions

  • 2026-11-03 22:50 (new) → proposed (announced): novox/mesh-sdk#166's head announced
  • 2026-11-03 22:50 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-04 00:23 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@85ba0a9a70d8` — **merged** since 2026-11-04T00:23:41Z **Source** — source.main moved to novox/mesh-sdk@5a38a1221659. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `feat/l3-final`: novox/mesh-catalog@6c09be4a703e, novox/mesh-delivery@70ade15c36eb, novox/mesh-host@30b86ea602a8, novox/mesh-sdk@85ba0a9a70d8, novox/mesh-tools@7fd9d893c0a5 - composed together: pass — the checker's verdict at the members' heads (d6a3e805db4a) **Transitions** - 2026-11-03 22:50 (new) → proposed (announced): novox/mesh-sdk#166's head announced - 2026-11-03 22:50 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-04 00:23 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: not merged. The merge of this pull request into main at 85ba0a9a70 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 85ba0a9a70d80651a87c3d868dc1ba06b2ece16e was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
mesh-tools merged commit 5a38a12216 into main 2026-11-04 00:23:38 +00:00
mesh-tools deleted branch feat/l3-final 2026-11-04 00:23:38 +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#166