Node-engine: a node names its provisioner account even when no module's files are filled this pass (issue 774) #205

Merged
mesh-tools merged 1 commits from fix/node-account-always into main 2026-11-04 08:39:53 +00:00
Member

Blocking fault on ace (issue 774 notes 111-115). Since 01:27:49 local, every module with filled files on ace is held by the forge-account ssh_alias refusal (mesh-build-go, -image, -node, ssh-client). internal/compose/node.go named the node's provisioner account only beside filled files, so ace's own composition named none, and the node-engine refused every provisioner-client write (filling.go:236). #204's held-client fix covers a different case and stays.

The fix (8e325830): the envelope and Declared name the account whenever the declaration has one, filled files or not. Every reader accepts provisioner_account without filled_files (mesh-sdk 85ba0a9a checkProvisioner, read by the review). The node's own composition is judged "neither", so it applies without a yes. The refused writes were marked owed.noAccount, and the knock after the apply refills them.
One row in TestTheProvisionedMeshHandsAPlanWithItsProvision (filledHeld): a node whose every filled-file module is held still names its account. It fails without the change. Net zero test functions.
quick vs thorough: thorough here. The quick recovery, fixing the forge-account binding, is fix-1965@shanks's fix/handed-one-rule (issue 1966), which also ends the plan loop for postgres, restic and power.
Expect: one apply of the node's own composition on ace at the delivery, then the provisioner client refills.

Reviewed-by: mesh-code-reviewer@shanks at 8e32583089
Pushed-by: lead-47@shanks

https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn

Blocking fault on ace (issue 774 notes 111-115). Since 01:27:49 local, every module with filled files on ace is held by the forge-account ssh_alias refusal (mesh-build-go, -image, -node, ssh-client). internal/compose/node.go named the node's provisioner account only beside filled files, so ace's own composition named none, and the node-engine refused every provisioner-client write (filling.go:236). #204's held-client fix covers a different case and stays. The fix (8e325830): the envelope and Declared name the account whenever the declaration has one, filled files or not. Every reader accepts provisioner_account without filled_files (mesh-sdk 85ba0a9a checkProvisioner, read by the review). The node's own composition is judged "neither", so it applies without a yes. The refused writes were marked owed.noAccount, and the knock after the apply refills them. One row in TestTheProvisionedMeshHandsAPlanWithItsProvision (filledHeld): a node whose every filled-file module is held still names its account. It fails without the change. Net zero test functions. quick vs thorough: thorough here. The quick recovery, fixing the forge-account binding, is fix-1965@shanks's fix/handed-one-rule (issue 1966), which also ends the plan loop for postgres, restic and power. Expect: one apply of the node's own composition on ace at the delivery, then the provisioner client refills. Reviewed-by: mesh-code-reviewer@shanks at 8e325830891c54b63e5fc0002c2d0d89220f3b43 Pushed-by: lead-47@shanks https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
mesh-tools added 1 commit 2026-11-04 01:19:36 +00:00
A node names its provisioner client's account whenever a client runs there, filled files or not (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-host@4d47ff5ce743
mesh/check being carried to 8e325830891c on 4d47ff5ce743 | from 6019c6d514a7
8e32583089
The declaration named the account only beside its filled files (node.go), so a node whose every filled-file module
was held this pass named none: on ace from 2026-11-04 01:29 its build modules and ssh-client were held for their
forge binding, and the node-engine refused every write of the files they keep, and of every other module's. The
account is the node's, named whenever the rendering has one. A row holds restic, the provisioned mesh's one
filled-file module, with the client placed: the node's own still names the account; it named none before.

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

Delivery novox/mesh-host@8e325830891c — merged since 2026-11-04T08:39:55Z

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

Transitions

  • 2026-11-04 01:19 (new) → proposed (announced): novox/mesh-host#205's head announced
  • 2026-11-04 01:19 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 08:39 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@8e325830891c` — **merged** since 2026-11-04T08:39:55Z **Source** — source.main moved to novox/mesh-host@4d47ff5ce743. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-04 01:19 (new) → proposed (announced): novox/mesh-host#205's head announced - 2026-11-04 01:19 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 08:39 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 4d47ff5ce7 into main 2026-11-04 08:39:53 +00:00
mesh-tools deleted branch fix/node-account-always 2026-11-04 08:39:54 +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#205