bb6e472939
Merge pull request 'A node answers its seed with an old-form build, a failed or held module, and those held behind it, as they run today (issue 1126)' (#170) from fix/1126-seed-oldbuild into main
mesh-tools2026-10-28 23:05:08 +00:00
93f33e2305
Pin mesh-sdk 76f7c4d: a held module keeps its items (issue 1126)
jschoubben2026-10-28 23:56:51 +01:00
abdf85aa4f
Node agent: say how it keeps each module today, held, failed or at a build of the old form named by its have's build; pin mesh-sdk f609be7 (issue 1126)
jschoubben2026-10-28 23:50:19 +01:00
91686fdb81
Node agent: count a module running a build of the old form as held today, so the seed keeps it as the controller does (issue 1126)
jschoubben2026-10-28 23:45:28 +01:00
d2a868f99f
Merge pull request 'Node agent: say what it holds today in its answer, so a seed holding the same is the same (issue 1126)' (#169) from fix/1126-seed-held into main
mesh-tools2026-10-28 22:20:59 +00:00
a143678fd8
Pin mesh-sdk 77b48a4, the group's head (issue 1126)
jschoubben2026-10-28 22:41:14 +01:00
9914459830
Pin mesh-sdk 06b13ec, the group's head (issue 1126)
jschoubben2026-10-28 22:18:26 +01:00
b7159d71a6
Node agent: say what it holds today in its answer, so a seed that holds the same is the same; pin mesh-sdk b03bf4c (issue 1126)
jschoubben2026-10-28 22:15:24 +01:00
e0c7f36ca9
Pin mesh-sdk 8eafc0c, the L3 group's head on mesh-sdk main with #120 and #121 (issue 774)
jschoubben2026-10-28 21:56:06 +01:00
9120f94aa4
Name the seat mesh-placement where the kept declaration's retirement reads the placement, as L2 moved it (issue 774, ADR 0567)
jschoubben2026-10-28 20:36:41 +01:00
1900b40192
Pin mesh-sdk 4e6e5cc, the L3 group's head rebased on L2 (issue 774)
jschoubben2026-10-28 20:36:41 +01:00
6cbdb3712e
Judgements and refused setuid searches, which any caller may ask, roll in one bounded key of the node's and add no key to the bucket every node shares; a key per act is kept for hand-overs, access acts and searches started (issue 774, ADR 0563 §2; rev-l3 round 2)
jschoubben2026-10-28 10:33:25 +01:00
2a0c428ef9
The last setuid search's start and each library's own take ask are keys of their own, which no number of other acts moves (issue 774, ADR 0563 §2, §4; rev-l3 round 1)
jschoubben2026-10-28 10:27:23 +01:00
a5d1f7dde4
From the lease write a directory used as found names the node seat's hand-over as its way out, following the lease the engine hears (issue 774, ADR 0563 §5; rev-l3 round 1)
jschoubben2026-10-28 10:25:54 +01:00
95dd64c774
Every signed ask is verified with the controller's key the engine trusts at that ask, so after the lease write none signed by it is taken (issue 774, ADR 0563 §7, ADR 0550 §2; rev-l3 round 1)
jschoubben2026-10-28 10:25:10 +01:00
81fa009bf4
The node seat's acts and the engine's own asks are the node-engine's declared state acts on the bus: one key each under its own node's keys, written by compare-and-set, one ask open per path made by a create; acts reads one by its id (issue 774, ADR 0563 §2, §3)
jschoubben2026-10-28 10:19:02 +01:00
05ff90e3c1
The engine judges its node seat's hand-over and take as it judges the controller's ask, answers root-free for its own machine, and asks a library's take itself once (issue 774, ADR 0563 §3, §4, §6)
jschoubben2026-10-28 09:56:01 +01:00
aaffc19232
The node seat node-engine served on the engine's link: its verbs with their proven caller, its acts kept in its own state, a hand-over or access act asked of the operator as node-engine-<node> and performed only on the warrant (issue 774, ADR 0563 §1-§3)
jschoubben2026-10-28 09:56:01 +01:00
479ac71050
The node trusts the vault's key beside the controller's until the lease is handed away, says what it trusts in its record, asks the vault for its own certificate, composes the vault's authority beside the controller's, and reads the kept declaration no more once every placed module has a have (issue 774, ADR 0550 §2)
jschoubben2026-10-28 09:34:53 +01:00
4f6b389a37
Merge pull request 'Node agent: compose from the seat mesh-placement and answer proposals (issue 1126, delivery 2 of 2)' (#167) from feat/1126-placement-seat into main
mesh-tools2026-10-28 18:33:12 +00:00
45f5e27526
Pin mesh-sdk to the group's head 38dbe1d (issue 1126)
jschoubben2026-10-28 18:50:39 +01:00
dd8ba97989
Node agent: wait for the bus's word that the seat's placement and candidates states were created, then watch them (issue 1126)
jschoubben2026-10-28 18:43:48 +01:00
ab22efd8b1
Node agent: follow the placement key at start only and say why when it cannot; test the reached candidate and the switched rule; word the log by the seat's state (issue 1126)
jschoubben2026-10-28 18:39:12 +01:00
54aee345fc
Node agent: a node that never composed its own takes a failed placement read as not placed; one that did keeps waiting (issue 1126)
jschoubben2026-10-28 18:18:30 +01:00
8639b373d2
Prove a missing or refused bucket is a watch error, so a node waits on the controller's compositions and tries again (issue 1126)
jschoubben2026-10-28 18:16:39 +01:00
5fc69444f6
Node agent integration tests: candidates keyed by proposal, under the node's real grant on the seat's states (issue 1126)
jschoubben2026-10-28 18:15:18 +01:00
2fe9d678fc
Node agent: answer a proposal's candidate keys and follow the seat's placement, not the indexer's groups (issue 1126)
jschoubben2026-10-28 18:13:40 +01:00
58b4f8b6bc
Merge pull request 'Reconcile a module from the machine's facts at start and on a down edge (issue 1957, ADR 0568)' (#166) from fix/1957-boot-reconcile into main
mesh-tools2026-10-28 17:41:54 +00:00
bf667a602d
Reconcile a module from the machine's facts at engine start and at each edge of a declared-running resource going down (issue 1957, ADR 0568)
jschoubben2026-10-28 18:06:34 +01:00
9a8b3870ba
Merge pull request 'The node-engine applies every module but the held ones and marks only those (group fix/1126-apply-culprit, issue 1126)' (#165) from fix/1126-apply-culprit into main
mesh-tools2026-10-28 16:34:48 +00:00
24c23a1d06
A module the node holds alone marks that module, keeps what runs of it, and never refuses the node (issue 1126)
jschoubben2026-10-28 17:17:49 +01:00
a548a61e86
Merge pull request 'The node-engine reloads the service manager when a unit file or drop-in it writes changes (group fix/shutdown-bound, issue 1126)' (#164) from fix/shutdown-bound into main
mesh-tools2026-10-28 15:05:10 +00:00
bc28606d45
apply: reload units only for a unit file actually written or removed (issue 1126)
jschoubben2026-10-28 15:49:34 +01:00
7f0eb9c51d
apply: reload the service manager once when a file in a unit directory moved (issue 1126)
jschoubben2026-10-28 15:43:35 +01:00
690aa662a8
Merge pull request 'The node's shadow says which input woke each answer (issue 1126)' (#163) from fix/1126-vault-own into main
mesh-tools2026-10-28 14:20:39 +00:00
8bd0b5db15
Say which input woke each placement candidate's answer, so a probe's safety check tells a loop from moving inputs (issue 1126)
jschoubben2026-10-28 14:44:27 +01:00
b4fd2cc210
Merge pull request 'A one-shot at rest satisfies a stopped declaration, so the kernel's boot cleanup applies (issue 1126)' (#162) from fix/ace-tun-cleanup into main
mesh-tools2026-10-28 13:34:20 +00:00
1a021052fe
Drop the never-ran reading: a start timestamp of 0 does not mean a one-shot never ran (issue 1126)
jschoubben2026-10-28 14:26:48 +01:00
cf738cdb90
Read a one-shot that never ran as stopped, and one at rest as stopped to a stopped declaration (issue 1126)
jschoubben2026-10-28 14:19:13 +01:00
7a2af23764
Merge pull request 'Pin mesh-sdk f387581: the node composes refusals per module and folded modules' owned paths as the controller does (issue 1126, group fix/1126-seed-8)' (#161) from fix/1126-seed-8 into main
mesh-tools2026-10-28 13:27:09 +00:00
daaa1962bd
Pin mesh-sdk f387581, the group's head: a module's own refusal refuses that module, contributions in config words, folded modules own their manifest's paths (issue 1126, seed-8)
jschoubben2026-10-28 14:08:58 +01:00
df878ba1f7
Merge pull request 'The node answers a placement candidate once, retries a read the bus did not answer, and keeps a file's secrets entry by entry (issue 1126; group fix/1126-seed-same-3)' (#160) from fix/1126-seed-same-3 into main
mesh-tools2026-10-28 11:40:38 +00:00
1e01868d92
An unplaced node owes no pass, so no timer is armed again; every wait a test sets is put back when it ends; pin mesh-sdk 8520a4c, whose masking splits only a file's secrets (issue 1126; review of seed-same-3, round 1)
jschoubben2026-10-28 12:25:32 +01:00
9d04ae7edd
Hold the secrets row to the have read's error, as the loop fix's Env.Held returns it (issue 1126)
jschoubben2026-10-28 12:13:09 +01:00
16df7d0b7a
Merge branch 'fix/1126-answer-once' into fix/1126-seed-same-3
jschoubben2026-10-28 12:11:50 +01:00
cd1d2ff447
A read the bus did not answer is tried again after a bound, never kept as an answer: the shadow's answer, the node's composition and the own-secret step (issue 1126)
jschoubben2026-10-28 12:11:08 +01:00
faf6a23d91
Fill go.sum for mesh-sdk 70de942 (issue 1126)
jschoubben2026-10-28 12:06:25 +01:00
2f4e81f3b0
A file's secrets are kept entry by entry: the box that runs at one secret is reused only there, where it opens to the same value; pin mesh-sdk 70de942 (issue 1126, C1; the seed-7 probe)
jschoubben2026-10-28 12:05:48 +01:00
4182f8fbfb
The node answers a placement candidate revision once: a module's have whose health words alone moved, or a key written again with its value, no longer composes every group's answer again (issue 1126)
jschoubben2026-10-28 12:02:57 +01:00
c3a2ffde67
Merge pull request 'The placement test's resolved values carry their source, as mesh-config writes them (issue 1126)' (#159) from fix/1126-seed-same-2 into main
mesh-tools2026-10-28 10:08:46 +00:00
6502ba6ad6
The placement test's resolved values carry their source, as mesh-config writes them: a value with no source is laid by neither the controller nor a node composing its own (issue 1126, C2; the group check of 3cb7f74b347d)
jschoubben2026-10-28 10:47:01 +01:00
f6c0520f26
Merge pull request 'Node shadow: reuse a seal only at its slot, lay values as the controller does, newest candidate first, and hand the vault a drifted own secret (issue 1126, group fix/1126-seed-same)' (#158) from fix/1126-seed-same into main
mesh-tools2026-10-28 09:46:47 +00:00
c912bcab6e
The node agent finds a drifted own secret's running file by its id as the node runs it, its module's name first (issue 1126, cause C4; review round 2)
jschoubben2026-10-28 10:01:38 +01:00
63c0b445d7
Fill go.sum for mesh-sdk 1062b33, the group's head (issue 1126)
jschoubben2026-10-28 09:53:34 +01:00
653ff61662
The node agent hands the vault what runs of an own secret its shadow answer says another value of, through move-in's replace_running, while it applies the controller's compositions (issue 1126, cause C4)
jschoubben2026-10-28 09:51:48 +01:00
a7cd0a7807
Node shadow: reuse a running seal only at its own slot, lay values as the controller does, answer the newest candidate first and say how it goes (issue 1126, C1 C2, T1 T2 T3)
jschoubben2026-10-28 09:41:29 +01:00
7271cf151b
Merge pull request 'Node shadow: what runs is the composition at the have's digest, not the stale kept copy (issue 1126, group fix/1126-shadow-bodies)' (#157) from fix/1126-shadow-bodies into main
mesh-tools2026-10-28 07:46:33 +00:00
82d0e125b2
What runs is the composition the have names, never the copy of the declaration kept before the switch (issue 1126, probe #532: shanks' xterm, zsh and its plugins answered differing at the very digest their haves say runs)
jschoubben2026-10-28 01:42:17 +01:00
a4c24a1979
Pin mesh-sdk 362a3f1: a refusal names what another node cannot run here, and is answered without a composition per module (issue 1126, probe #532)
jschoubben2026-10-28 01:40:18 +01:00
cff69893a3
Merge pull request 'Node shadow: decides 'same value' by opening seals in memory, says when it is not ready or slow, carries the bus membership (issue 1126, group fix/1126-shadow-shows)' (#156) from fix/1126-shadow-shows into main
mesh-tools2026-10-28 00:21:51 +00:00
047237c911
The shadow shows its work: differing resources with masked bodies and whether a sealed value is the same, a minute not ready or a slow answer said in the journal and the answer; pin mesh-sdk 4e0c577 (issue 1126, seed #531)
jschoubben2026-10-28 01:11:55 +01:00
449cda1b00
Merge pull request 'Node agent: a switch never marks the new run's modules, a failed read or a bus pause keeps what runs, stale composer marks clear (issue 1126, group fix/1126-switch-safe)' (#155) from fix/1126-switch-safe into main
mesh-tools2026-10-27 23:52:28 +00:00
a6e53a4858
A composer's mark never covers another cause, and a run that ended marks and clears nothing (issue 1126, review of the switch, round 1)
jschoubben2026-10-28 00:41:25 +01:00
4993f1b1d7
Make the switch between composers safe: a composer tells only its own run's agent, a pass whose run ended refuses nothing, a bus that pauses is tried again, a mark keeps what runs and clears at the next start; pin mesh-sdk 7359d18 (issue 1126)
jschoubben2026-10-28 00:34:10 +01:00
199f6b48b1
Merge pull request 'Node agent: a failed placement read picks no owner, a deleted placement returns the node to the controller without a restart (issue 1126, group fix/1126-shadow-all)' (#154) from fix/1126-shadow-all into main
mesh-tools2026-10-27 22:44:12 +00:00
4636261435
A failing placement read chooses neither composer, a deleting head is compared with the controller's compositions at the node's wants, and a placement watch that ends is said; pin mesh-sdk e32d777 (issue 1126, review of the shadow, round 1)
jschoubben2026-10-27 23:37:59 +01:00
4e8fdfdf04
The way back: a node whose placement key is deleted returns to the controller's compositions without a restart, says so in its journal and its have, and answers such a candidate as returning; pin mesh-sdk 472d5f3 (issue 1126, the seed's revert)
jschoubben2026-10-27 23:25:59 +01:00
d00926e089
Compose with what the node runs, so a folded module of an old-form build is carried as it runs, and bound an archive read; pin mesh-sdk 2fd5ffd (issue 1126, the seed's shadow)
jschoubben2026-10-27 23:19:40 +01:00
bb15aab50e
Merge pull request 'Node agent: compose its own modules from their builds and providers' served keys under its own grant (issue 1126, group fix/1126-node-creds)' (#153) from fix/1126-node-creds into main
mesh-tools2026-10-27 20:32:37 +00:00
6a4718b712
Hold in a unit table which haves count a module as run inside the node's own composition, so a failed have naming nothing is caught without H8's timing (issue 1126, review round 2)
jschoubben2026-10-27 21:29:51 +01:00
d5adf9b72b
Drop two debugging lines from the build read and H8, and say why the refused read's wait stays above the history bound (issue 1126, review round 1)
jschoubben2026-10-27 21:21:19 +01:00
7365890298
Prove in H8 that a node reads a placed module's build and a provider's served key through its own session, refused without the grant, and take a failed have naming nothing as no module run inside the node's own; pin mesh-sdk 7a8e9f9 (issue 1126, review round 1)
jschoubben2026-10-27 21:18:45 +01:00
0862f97972
Pin mesh-sdk 538ffba, the group's head (issue 1126)
jschoubben2026-10-27 21:04:02 +01:00
45439fd742
Compose each module from its build and read what providers elsewhere serve, pinning mesh-sdk cebc651, so a self-composing node hands its moved modules and settles mailu's domain (issue 1126)
jschoubben2026-10-27 21:01:16 +01:00
0184e2a5b8
Watch the have bucket only where the node's grant allows, so a node composing itself is not refused by the bus (issue 1126)
fix/1126-fold-watch
jschoubben2026-10-27 09:27:54 +01:00
50c229f905
Merge pull request 'The node agent folds what it runs at no new-form build into its own composition, judged from its haves, so the first composition after a restart keeps the bus (issue 1126)' (#152) from fix/1126-fold into main
mesh-tools2026-10-27 08:09:06 +00:00
69b845c0f7
Read what a node runs inside its own composition from its haves, not from what the agent applied, so a restarted agent's first composition keeps the bus (issue 1126, review of the fold round 1)
jschoubben2026-10-27 09:03:59 +01:00
caafd9306e
Keep what the node runs inside its own composition there when it composes itself, so the seed's answer and the node's own composition keep the tunnel and the bus (issue 1126)
jschoubben2026-10-27 08:51:41 +01:00
0d22776b20
Merge pull request 'The node agent answers a placement candidate in shadow, applies nothing, and keeps its own sealed values in its have (issue 1126, ADR 0559 §4)' (#151) from feat/1126-l2b into main
mesh-tools2026-10-27 07:21:19 +00:00
1803d25c3a
Watch afresh and read from nothing at each shadow run, so a candidate deleted while it was down is not answered and no earlier watch stays open (issue 1126, review of L2b round 2)
jschoubben2026-10-27 02:48:54 +01:00
d56c576e9a
Begin the shadow composer again with a backoff when an input cannot be watched yet, and pin mesh-sdk's fixed head, so a node answers candidates for the whole link (issue 1126, review of L2b round 1)
jschoubben2026-10-27 02:44:39 +01:00
fbc6d6330f
Extend H8 with a placement candidate the node answers same and applies nothing for, and pin mesh-sdk's group head (issue 1126)
jschoubben2026-10-27 02:29:17 +01:00
fb0cdabe25
Answer every placement candidate in shadow in the node's own key, applying nothing, so a placement change is checked by the nodes it places before it merges (issue 1126, ADR 0559 §4)
jschoubben2026-10-27 02:26:01 +01:00
0474a2a3cb
Keep the node's own composition's sealed values in its key and read a policy within the agent's context, so a restart applies nothing again (issue 1126)
jschoubben2026-10-27 02:21:36 +01:00
180a7e7b80
Merge pull request 'A directory used as found is not a module's health, and a failed have names its cause (issue 1496, ADR 0557 §4, §5)' (#150) from fix/1496-start-health into main
mesh-tools2026-10-26 21:38:02 +00:00
be94d2689e
Merge pull request 'The node composes its own modules once the catalogue places it, and writes its record (issue 1126)' (#149) from feat/1126-nodes-compose into main
mesh-tools2026-10-26 21:11:36 +00:00
b225c7bb4c
A directory used as found is not a module's health, and a failed have says why (ADR 0557 §3, issue 1496)
jschoubben2026-10-26 22:04:24 +01:00
1d44288514
Pin mesh-sdk 9796444 (l2-next: feat/1126-nodes-compose merged with sdk main #101, the standing-test race fixes) (issue 1126)
jschoubben2026-10-26 22:05:41 +01:00
af2d2a2c14
Pin mesh-sdk 5f45175 (l2-next: feat/1126-nodes-compose merged with sdk main) after merging main (issue 1126)
jschoubben2026-10-26 21:59:21 +01:00
59d77dd457
Pin mesh-sdk feat/1126-nodes-compose 03dce12, the group's head: the checker refuses a pin that is neither trunk nor the group's head (issue 1126)
jschoubben2026-10-26 20:35:52 +01:00
23d66187a8
Review of L2, round 3: a have written with no composition keeps what the module's last have said runs (fingerprint, digest, sealed values), for every writer; a record module run nothing of since the start judges its move against its last have and waits for a yes (issue 1126, ADR 0547 §3)
jschoubben2026-10-26 20:29:07 +01:00
4476e58080
Review of L2, round 2: a refusal at the first compose after a start keeps what the module's have said runs (1); each have of a self-composing node carries the values its composition holds sealed, and the composer reuses them after a restart, so a rotated secret moves no composition at a restart (2); pin mesh-sdk dd9d9d5 (issue 1126, ADR 0547 §3)
jschoubben2026-10-26 20:23:16 +01:00
58de6aa10a
Review of L2: a node that cannot compose says so in each wanted module's have, failed, while it keeps what it runs (H2); the composer keeps the box the node runs when it opens to the vault's value, so neither the switch nor a restart moves a composition (H1); pin mesh-sdk 3968849, whose node asks the vault only for a module declaring a secret (H8's failure) (issue 1126)
jschoubben2026-10-26 20:09:40 +01:00
21d6583b5e
The node agent begins again composing its own when the catalogue places its node, with no restart (issue 1126, ADR 0549 §4)
jschoubben2026-10-26 19:34:24 +01:00
bb46a6ad0f
The node composes again when the vault says a secret changed, so a rotated secret or credential reaches it at once (issue 1126, ADR 0547 §2)
jschoubben2026-10-26 19:26:25 +01:00
f8afaefba0
The node keeps the mesh's own certificate it applies, from its kept declaration at start, for its record; one agent test folded to hold the count (issue 1126, ADR 0555 §3)
jschoubben2026-10-26 19:24:36 +01:00
1e38c42646
The node's composer asks the vault for the pair credentials its composition reads, as consumer and provider, sealed to its key (issue 1126, ADR 0550 §5)
jschoubben2026-10-26 19:21:22 +01:00
1241ee7041
Pin mesh-sdk 4d5f430: the node's wants say it composes them (Self) (issue 1126)
jschoubben2026-10-26 19:14:38 +01:00
2dc384d641
The node's composer asks the vault's own for its modules' secrets sealed to its key, and keeps a value first had while its generation stands; two agent tests folded to hold the count (issue 1126, ADR 0550 §5)
jschoubben2026-10-26 19:05:12 +01:00