Feature 57 (config and provisioning): release mesh-host #115

Closed
mesh-tools wants to merge 15 commits from feat/57-config-and-provisioning into main
15 Commits
Author SHA1 Message Date
mesh-tools b546d4316c Merge pull request 'Feature 57 (config and provisioning): the node-engine's part, into its release branch' (#114) from 57-config-and-provisioning into feat/57-config-and-provisioning
mesh/merge-gate head b546d4316c3b merged into trunk 49c9002c04d3 — fail: builds mesh-host → ace, g14, novox, shanks; no bus step; head b546d4316c3b does no…
mesh/repo-check head b546d4316c3b merged into trunk 49c9002c04d3 — fail: head b546d4316c3b does not merge cleanly into trunk 49c9002c04d3: in conflict exam…
mesh/delivery-group group feat/57-config-and-provisioning rejected: a member's own check failed
mesh/delivery stopped: the pull request closed unmerged
2026-10-16 01:32:25 +00:00
mesh-tools 5a7ec3775b Land feature 57's node-engine work on its release branch
mesh/merge-gate head 5a7ec3775b98 merged into trunk 53fd32618916 beside mesh-controller#346@c711e622 — pass: builds mesh-host → ace, g14, novox, shanks; no…
mesh/repo-check head 5a7ec3775b98 merged into trunk 53fd32618916 beside mesh-controller#346@c711e622 — pass: [release feat/57-config-and-provisioning, judg…
mesh/delivery stopped: its walk plan-1792114347281764422 was stopped by a person (mesh-controller): mesh-host#114 merged into the release branch feat/57-…
mesh/delivery-group group 57-config-and-provisioning stopped: a member was stopped
The node-engine renders the feature's templates, collections and moved
providers' files, on the SDK the feature's modules build on (feature 57,
config and provisioning).
2026-10-15 21:13:28 +00:00
mesh-admin 53fd326189 Merge pull request '57/P2: The node-engine writes a filled file on the provisioner client's request, and nothing else (issue 668)' (#111) from pkg/57-p2-local-write-verb into feat/57-config-and-provisioning 2026-10-14 01:15:13 +00:00
mesh-adminandClaude Opus 5.5 2767278228 Say every refusal kind at once and never lose a count; bound the waiting and the busy per socket
mesh/merge-gate head 2767278228bc merged into trunk c18d5a8ff38d — pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes wi…
mesh/repo-check head 2767278228bc merged into trunk c18d5a8ff38d — pass: its merge-check.sh passed
mesh/delivery delivered
Review 12004 of mesh-host#111: refusals counted after a said one reached the journal only if the same account was refused again a minute later, and a refusal of another kind hid behind it. The first of each (account, kind) is said at once, and what is counted is said on a timer and when the socket stops. Connections waiting to be judged are bounded below the open-file limit, the busy refusals belong to one Serve, and the tests' ask has a deadline. Issue 668.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:06:47 +00:00
mesh-admin c18d5a8ff3 Merge pull request '57/F3: Let genesis's controller write its record mirrors (issue 652)' (#110) from pkg/57-f3-controller-mirror-grants into feat/57-config-and-provisioning 2026-10-14 00:55:00 +00:00
mesh-adminandClaude Opus 5.5 0c17c76493 Judge a caller before it holds the socket, and keep accepting after a failed accept
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate out of date: judged against trunk 6b54fed706f0, the trunk is now c18d5a8ff38d; judged again on a recheck or when it is merged
mesh/repo-check out of date: judged against trunk 6b54fed706f0, the trunk is now c18d5a8ff38d; judged again on a recheck or when it is merged
Review 11959 of mesh-host#111: any account could hold the four slots for a second each and starve the provisioner's client, and one failed accept ended the socket until the engine restarted. A caller is judged from the kernel's word before it holds a slot and, refused, is answered and closed at once; busy refusals that wait are bounded as mesh-cli's are; a failed accept is said, backed off and retried. The request refuses unknown fields, and the socket's directory is given its mode. Issue 668.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:47:48 +00:00
mesh-adminandClaude Opus 5.5 76dc93c421 Hold a library's containers through the write verb, as a full apply does
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate head 76dc93c421bf merged into trunk 6b54fed706f0 — pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes wi…
mesh/repo-check head 76dc93c421bf merged into trunk 6b54fed706f0 — pass: its merge-check.sh passed
Review 11959 of mesh-host#111: a write through the verb recreated a container that reads the filled file over a library whose disk was missing (ADR 0328 §9). Also refuses a filled path two resources declare, with a test. Issue 668.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:46:39 +00:00
mesh-adminandClaude Opus 5.5 499a687149 Serve the local write of a filled file on its own socket
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate head 499a687149be merged into trunk 6b54fed706f0 — pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes wi…
mesh/repo-check head 499a687149be merged into trunk 6b54fed706f0 — pass: its merge-check.sh passed
A second unix socket beside mesh-cli's: the kernel's word on the asking account (SO_PEERCRED, same namespaces), that account judged against the declaration before its request is read, the path judged clean, absolute and filled, and the write done under the apply's lock. The journal has the path and digest, never the content. Issue 668.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:37:29 +00:00
mesh-adminandClaude Opus 5.5 1d57bcd6f9 Write a filled file through the apply, and move what reads it
A filled file is the declared file with the client's content: applied through applyFile, applyInto or applyBlock by who owns it at runtime, with the apply's guards, Keep and record, then restart-on, reload-on and container reads applied as an apply does. Issue 668.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:36:04 +00:00
mesh-adminandClaude Opus 5.5 eb2ec23679 Write a filled file on the provisioner client's request, and nothing else
The provisioner's client (ADR 0349 §4) fills a module's templates and needs the node-engine to write them: it must not hold the right to write the machine's files itself. A second local socket accepts a write only from the account the declaration names as the provisioner client's (SO_PEERCRED, same namespaces), only for a clean path the declaration names as filled, under the apply's own locks, and writes it through the apply as the declared file would be, firing restart-on, reload-on and container reads. Issue 668.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:34:54 +00:00
mesh-adminandClaude Opus 5.5 fddcddfaf7 Name the provisioner client's account in the declaration, and share the apply's record
The local write of a filled file (ADR 0349 §4) accepts only the provisioner client's account, which the declaration names; the reader takes provisioner_account before any controller sends it (contract 10). The apply's record and its rule for what moved become helpers the write uses too. Issue 668.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:33:48 +00:00
mesh-adminandClaude Opus 5.5 c892062251 Let genesis's controller write its record mirrors
mesh/merge-gate head c89206225165 merged into trunk 6b54fed706f0 — pass: the change touches no module of the mesh's graph
mesh/repo-check head c89206225165 merged into trunk 6b54fed706f0 — pass: its merge-check.sh passed
mesh/delivery delivered
The controller now keeps the assignments and each registered module's declared
config on the bus (hq issue 652, design 57 F3), so its composed grant gains the
two buckets and their two events. The installer's first user list must equal
that composition, or the controller is refused at genesis; mesh-controller's
genesis template test holds the two to each other.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:58:05 +00:00
mesh-admin 6b54fed706 Merge pull request '57/P1: The node-engine knows who owns a placed file at runtime (issue 667)' (#109) from pkg/57-p1-ownership into feat/57-config-and-provisioning 2026-10-13 23:52:13 +00:00
mesh-adminandClaude Opus 5.5 1cc588ebc0 Say who owns a placed file at runtime, and which files the provisioner fills
mesh/merge-gate head 1cc588ebc060 merged into trunk 1203f96a24c8 — pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes wi…
mesh/repo-check head 1cc588ebc060 merged into trunk 1203f96a24c8 — pass: its merge-check.sh passed
mesh/delivery delivered
The provisioner (ADR 0349 §5) needs each file it places to say whether it is
owned, a seed or managed, and the node-engine needs to know which paths it
fills. The words map onto today's forms (drift written back, create-once,
into), so no write changes; the reader accepts the fields and states
OwnershipContract before any controller sends them. Issue 667.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:47:45 +00:00
mesh-admin 1203f96a24 Open the integration branch of release 57 (config and provisioning)
So the packages of hq design 57 meet here, reviewed one by one, and reach main as one delivery group.
2026-10-13 23:39:24 +00:00