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-tools merged 1 commits from fix/1585-held-answer into main 2026-11-04 10:47:20 +00:00
Member

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

https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn

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
mesh-tools added 1 commit 2026-11-04 10:42:42 +00:00
Act on a backup answer whatever runs, say why a module stays held, and let the engine's read tool show its want and its hold (issue 1585)
mesh/delivery merged: source.main moved to novox/mesh-host@e73aae3686a6
mesh/check being carried to e2380404a1fa on e73aae3686a6 | from 998d8f737008
e2380404a1
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
Author
Member

Delivery novox/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`.
mesh-tools merged commit e73aae3686 into main 2026-11-04 10:47:20 +00:00
mesh-tools deleted branch fix/1585-held-answer 2026-11-04 10:47:21 +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-host#208