The node-engine leaves an unchanged unit running across its own replacement, and says what changed when it restarts one (issue 1966) #220

Merged
mesh-tools merged 2 commits from fix/1966-engine-restarts-unchanged into main 2026-11-09 22:09:41 +00:00
Member

On novox on 2026-11-09 the node-engine restarted the tool runner three times with nothing of it changed ("its build already in place"), each right after its own replacement; builds publishing to the registry at those seconds failed "503 no responders". The cause: the runner's unit carries MESH_OWNED_PATHS, which named the node-engine's own versioned install path, renamed by every node-engine build. An archive resource whose path ends in its own build's digest prefix is now owned as the directory holding every build (compose/resolution/seat_paths.go), so the word is stable for every such module; node-files still guards the whole versions directory. The restart line names the unit directive, the environment word and JSON keys that differ, never a value (rows with a secret and a password URL).

After delivery the tool runner restarts once more (its word changes to the stable form); from then on a node-engine replacement leaves it running.

issue 1966

Reviewed-by: review-1966@shanks at aa649d85a0
Pushed-by: lead-47@shanks

https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

On novox on 2026-11-09 the node-engine restarted the tool runner three times with nothing of it changed ("its build already in place"), each right after its own replacement; builds publishing to the registry at those seconds failed "503 no responders". The cause: the runner's unit carries MESH_OWNED_PATHS, which named the node-engine's own versioned install path, renamed by every node-engine build. An archive resource whose path ends in its own build's digest prefix is now owned as the directory holding every build (compose/resolution/seat_paths.go), so the word is stable for every such module; node-files still guards the whole versions directory. The restart line names the unit directive, the environment word and JSON keys that differ, never a value (rows with a secret and a password URL). After delivery the tool runner restarts once more (its word changes to the stable form); from then on a node-engine replacement leaves it running. issue 1966 Reviewed-by: review-1966@shanks at aa649d85a065dff03958791552f071171bc0cfb0 Pushed-by: lead-47@shanks https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
mesh-tools added 2 commits 2026-11-09 22:00:19 +00:00
The tool runner's unit carries the paths modules own, for the holder of node-files. The engine's own
archive is unpacked into a place named for its build, so every engine replacement changed that word
and restarted the tool runner with nothing of it changed (novox 21:16, 22:25, 22:38 on 2026-11-09).
A resource unpacked into a place named for its build now owns the directory holding every build.
The restart line now names the unit's directive, word and key that differ, never a value.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
The restart line names no part of a value; the new rows join existing tests (issue 1966, review round 1)
mesh/delivery merged: source.main moved to novox/mesh-host@9d8647aa0f56
mesh/check checking aa649d85a065 on 9d8647aa0f56
aa649d85a0
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
Author
Member

Delivery novox/mesh-host@aa649d85a065 — merged since 2026-11-09T22:09:43Z

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

Transitions

  • 2026-11-09 22:00 (new) → proposed (announced): novox/mesh-host#220's head announced
  • 2026-11-09 22:00 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-09 22:09 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@aa649d85a065` — **merged** since 2026-11-09T22:09:43Z **Source** — source.main moved to novox/mesh-host@9d8647aa0f56. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-09 22:00 (new) → proposed (announced): novox/mesh-host#220's head announced - 2026-11-09 22:00 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-09 22:09 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 9d8647aa0f into main 2026-11-09 22:09:41 +00:00
mesh-tools deleted branch fix/1966-engine-restarts-unchanged 2026-11-09 22:09:41 +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#220