L3a: the indexer waits on a manifest field its judge does not know; the grants part keeps a held module's users and others' grants (ADR 0601 clause 3)
#145
Design 47 milestone L3, first release (L3a), issue 774, ADR 0601 clause 3. Group feat/l3a-waits with mesh-sdk (pinned at 42bd7b80); no manifest of any module changes, so nothing is refused at its merge.
Indexer: a manifest with a field its judge does not know waits (no refusal, no manifest-refused); it is refused only once the indexer's running build, asked of the node-engine seat's composition verb, is the trunk's fingerprint for it; judged again at every start pass; tools indexer_verdicts and indexer_judge (which asks the running build again first); one judge pass at a time.
Grants part: a held (refused or waiting) module keeps its bus users from the list in force (warning mesh-grants.module-held); its seats, the streams others hear from it, its reads, object reads and the node-engine's manifest are composed from the manifest its running build was judged on, so no other principal loses a grant; one held manifest no longer holds the whole list, except a placed module with no running manifest, which is a failed gap and keeps the list in force.
Watchman: a wait is its own finding; checker: hands the sandbox a wait as a refusal.
Tests: rows in existing tests in the indexer, the grants part and the watchman; each fails without its change; no new test function.
Reviewed-by: mesh-code-reviewer@shanks at 83f7a7612d
Design 47 milestone L3, first release (L3a), issue 774, ADR 0601 clause 3. Group feat/l3a-waits with mesh-sdk (pinned at 42bd7b80); no manifest of any module changes, so nothing is refused at its merge.
- Indexer: a manifest with a field its judge does not know waits (no refusal, no manifest-refused); it is refused only once the indexer's running build, asked of the node-engine seat's composition verb, is the trunk's fingerprint for it; judged again at every start pass; tools indexer_verdicts and indexer_judge (which asks the running build again first); one judge pass at a time.
- Grants part: a held (refused or waiting) module keeps its bus users from the list in force (warning mesh-grants.module-held); its seats, the streams others hear from it, its reads, object reads and the node-engine's manifest are composed from the manifest its running build was judged on, so no other principal loses a grant; one held manifest no longer holds the whole list, except a placed module with no running manifest, which is a failed gap and keeps the list in force.
- Watchman: a wait is its own finding; checker: hands the sandbox a wait as a refusal.
Tests: rows in existing tests in the indexer, the grants part and the watchman; each fails without its change; no new test function.
Reviewed-by: mesh-code-reviewer@shanks at 83f7a7612d1955dbb962d80e009689d1e6eefac8
mesh/check failed (3): shanks: novox/mesh-sdk#163 does not merge into the trunk: files in conflict: go/deli…; and 2 more | 83f7a7612d19 on c4470f42dba9
mesh/delivery-group group feat/l3a-waits rejected: composed together: the checker's verdict at the members' heads (de2cdacb9cde): shanks
Deliverynovox/mesh-delivery@83f7a7612d19 — closed since 2026-11-03T17:00:15Z
Transitions
2026-11-03 12:08 (new) → proposed (announced): novox/mesh-delivery#145's head announced
2026-11-03 12:08 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)
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-delivery@83f7a7612d19` — **closed** since 2026-11-03T17:00:15Z
**Transitions**
- 2026-11-03 12:08 (new) → proposed (announced): novox/mesh-delivery#145's head announced
- 2026-11-03 12:08 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-03 17:00 ready → closed (closed): the pull request closed unmerged
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: not merged. The merge of this pull request into main at 83f7a7612d 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 83f7a7612d1955dbb962d80e009689d1e6eefac8 was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
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.
Design 47 milestone L3, first release (L3a), issue 774, ADR 0601 clause 3. Group feat/l3a-waits with mesh-sdk (pinned at 42bd7b80); no manifest of any module changes, so nothing is refused at its merge.
Tests: rows in existing tests in the indexer, the grants part and the watchman; each fails without its change; no new test function.
Reviewed-by: mesh-code-reviewer@shanks at
83f7a7612dDelivery
novox/mesh-delivery@83f7a7612d19— closed since 2026-11-03T17:00:15ZTransitions
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: not merged. The merge of this pull request into main at
83f7a7612dwas declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.Pull request closed