Node-engine: act on a backup answer whatever runs, say why a module stays held, and show the want and the hold in the composition verb (issue 1585)
#208
Merged
mesh-toolsmerged 1 commits from fix/1585-held-answer into main2026-11-04 10:47:20 +00:00
Issue 1585 (nats on novox stayed held after #207 although its want carried "Back up again"; the second failure of this fix).
settleOne looks at the hold before "it runs what the want names": an again or skip in a want revision after the hold's is acted on whatever runs; with no answer the hold is kept and said.
baseline says the hold it keeps at the start (it was silent).
The engine seat verb composition shows the want as the engine holds it (self, backup, words, revision) and its attempt (held, answered revision, want and composition revisions, transient), so which want the engine read is read, never guessed.
Quick fix: answer again by hand; none exists, since the guard swallows it while what runs equals the want. Thorough fix, chosen: the guard order and the read tool, proved by test rows of the live shape (self module of policy record, held have naming the want's own composition; answer before the start, again and skip while held). The two while-held rows fail with the old order. No new test function (the repository is over its budget).
Review notes kept for the issue, not findings: comments cite ADR 0568 §4 where ADR 0539 §16 is meant; an old answer left in the want is acted on again (clear it on the assigner's side); mesh-sdk's description of the composition verb does not name the new fields yet.
Reviewed-by: review-1585-hold@shanks at e2380404a1
Issue 1585 (nats on novox stayed held after #207 although its want carried "Back up again"; the second failure of this fix).
- settleOne looks at the hold before "it runs what the want names": an again or skip in a want revision after the hold's is acted on whatever runs; with no answer the hold is kept and said.
- baseline says the hold it keeps at the start (it was silent).
- The engine seat verb `composition` shows the want as the engine holds it (self, backup, words, revision) and its attempt (held, answered revision, want and composition revisions, transient), so which want the engine read is read, never guessed.
Quick fix: answer again by hand; none exists, since the guard swallows it while what runs equals the want. Thorough fix, chosen: the guard order and the read tool, proved by test rows of the live shape (self module of policy record, held have naming the want's own composition; answer before the start, again and skip while held). The two while-held rows fail with the old order. No new test function (the repository is over its budget).
Review notes kept for the issue, not findings: comments cite ADR 0568 §4 where ADR 0539 §16 is meant; an old answer left in the want is acted on again (clear it on the assigner's side); mesh-sdk's description of the composition verb does not name the new fields yet.
Reviewed-by: review-1585-hold@shanks at e2380404a1fa1e7d474f04b25410e10d36a65279
https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
nats on novox, 2026-11-04 11:07: after mesh-host #207 the module stayed held
although its want carried "Back up again", and the engine said nothing. The
engine's composition verb showed it running what its want names (taken from
its held have at the start), so when the answer was in a revision of the want
read after the hold, settleOne returned on "it runs what the want names"
before it looked at the hold: the answer was swallowed, silently. The start
path #207 fixed was right but never met; no test ran the live shape.
- settleOne: the hold is looked at before what runs. An answer (again or
skip) in a want revision after the one the hold took is acted on whatever
runs; with no answer the hold is kept and said with both revisions.
- baseline: the hold kept at the start is said (it was the silent branch).
- composition verb: the want as the engine holds it now carries self, backup,
words and its key's revision, beside the engine's attempt (held, answered
revision, want and composition revisions, transient) and whether the module
was looked at since the start, so which want the engine read is read, never
guessed.
Quick fix: answer once more by hand (a new want revision), which the guard
still swallows while what runs equals the want, so none exists. Thorough fix,
chosen: the order of the guards and the read tool, proved by rows of the live
shape (a self module of policy record, its held have naming the want's own
composition, the answer before the start, and again and skip arriving while
held); the two later rows fail with the old guard order.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Deliverynovox/mesh-host@e2380404a1fa — merged since 2026-11-04T10:47:21Z
Source — source.main moved to novox/mesh-host@e73aae3686. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-04 10:42 (new) → proposed (announced): novox/mesh-host#208's head announced
2026-11-04 10:42 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 10:47 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@e2380404a1fa` — **merged** since 2026-11-04T10:47:21Z
**Source** — source.main moved to novox/mesh-host@e73aae3686a6. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-04 10:42 (new) → proposed (announced): novox/mesh-host#208's head announced
- 2026-11-04 10:42 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 10:47 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`.
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 1585 (nats on novox stayed held after #207 although its want carried "Back up again"; the second failure of this fix).
compositionshows the want as the engine holds it (self, backup, words, revision) and its attempt (held, answered revision, want and composition revisions, transient), so which want the engine read is read, never guessed.Quick fix: answer again by hand; none exists, since the guard swallows it while what runs equals the want. Thorough fix, chosen: the guard order and the read tool, proved by test rows of the live shape (self module of policy record, held have naming the want's own composition; answer before the start, again and skip while held). The two while-held rows fail with the old order. No new test function (the repository is over its budget).
Review notes kept for the issue, not findings: comments cite ADR 0568 §4 where ADR 0539 §16 is meant; an old answer left in the want is acted on again (clear it on the assigner's side); mesh-sdk's description of the composition verb does not name the new fields yet.
Reviewed-by: review-1585-hold@shanks at
e2380404a1https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Delivery
novox/mesh-host@e2380404a1fa— merged since 2026-11-04T10:47:21ZSource — source.main moved to novox/mesh-host@e73aae3686. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.