e4dbb49d2f
Integration: a node the placement names composes and applies its own module with no controller composition, and again on a changed config value (issue 1126, ADR 0547 §2)
jschoubben2026-10-26 18:51:36 +01:00
02d9d7b053
The node composes its own modules once the catalogue places it: one composer per node drains a mark set by any input's change, the agent applies what it composed when it differs, and a record move waits for a yes (issue 1126, ADR 0547 §2, §3)
jschoubben2026-10-26 18:44:58 +01:00
8be1c2ab0d
The node agent writes what the machine observes of itself as its record in its own have key, only when it changed (issue 1126, ADR 0555 §3)
jschoubben2026-10-26 18:32:54 +01:00
ff9386dccc
Merge pull request 'The node-engine runs yielding processes in one capped idle slice (issue 1806, ADR 0553/0554, change A)' (#148) from fix/build-cpu-yields into main
mesh-tools2026-10-26 14:22:54 +00:00
bba9081ca1
Merge pull request 'The node-engine moves a running daemon's build aside instead of deleting it (issue 734)' (#147) from fix/daemon-dir-kept into main
mesh-tools2026-10-26 14:16:00 +00:00
65cd7b4787
Retire a daemon's running build instead of deleting it before the restart (issue 734)
jschoubben2026-10-26 15:01:55 +01:00
a78239b2aa
Pin mesh-sdk at fix/build-cpu-yields' head (ADR 0553, ADR 0554)
jschoubben2026-10-26 14:47:02 +01:00
2ac0c4686a
The node-engine holds the node's one build CPU share as its own config (ADR 0553 §3, round 2)
jschoubben2026-10-26 14:40:24 +01:00
5233f7584d
Pin mesh-sdk at fix/build-cpu-yields' head (ADR 0553)
jschoubben2026-10-26 14:23:13 +01:00
8858dba25e
Merge main into fix/build-cpu-yields
jschoubben2026-10-26 14:22:43 +01:00
9254180cab
A yielding process runs in the node's one yielding slice, which holds the shared quota (ADR 0553, issue 1806)
jschoubben2026-10-26 14:21:24 +01:00
94f9aa298c
Merge pull request 'The node-engine writes the followed user list into the bus module's have even when it does not apply that module (issue 1945)' (#146) from fix/have-keeps-user-list into main
mesh-tools2026-10-26 12:52:15 +00:00
ee9fcaba20
Pin mesh-sdk at fix/build-cpu-yields' head (issue 1806)
jschoubben2026-10-26 13:49:41 +01:00
43f2d6020e
Write the bus's user list into a have no apply here says, merged over the key's value
jschoubben2026-10-26 13:38:40 +01:00
6250b1274b
A process that yields is written at idle priority under its share of the machine (issue 1806)
jschoubben2026-10-26 13:37:48 +01:00
7f04d12047
Merge pull request 'Bus node: follow the grants part's sealed user list after the operator's take-over, never both sources; hand the vault the loaded hashes (issue 1945)' (#145) from feat/1945-user-list-switch into main
mesh-tools2026-10-26 12:21:55 +00:00
e88ddab241
An apply of the bus module waits when the list on the machine cannot be read while the grants part's is followed, so the file is never removed as an orphan (review of the switch, issue 1945)
jschoubben2026-10-26 12:54:06 +01:00
06f70e11ee
Bring in the adoption handing; the bus node writes nothing before it heard the switch, retries the key's watch and keeps the follow last heard, and an apply never writes the controller's list while the grants part's is followed (review of the switch, issue 1945)
jschoubben2026-10-26 12:30:07 +01:00
61cec66ba8
gofmt the follower's test (issue 1945)
jschoubben2026-10-26 12:08:37 +01:00
5e2fadce15
Pin mesh-sdk at the group's head 83ee7769 (issue 1945)
jschoubben2026-10-26 12:07:10 +01:00
882e75c954
The bus node follows the grants part's sealed user list from take-over, the controller's otherwise, never both (ADR 0547 clauses 7, 8; issue 1945)
jschoubben2026-10-26 12:06:17 +01:00
1a190090ab
The engine states its key again until it hears the vault's key, and at a slow interval after, so a vault delivered after it or a changed vault key is heard (review of the adoption handing, ADR 0547 clause 9)
fix/1945-adopt-hashes
jschoubben2026-10-26 12:03:12 +01:00
fd381567f4
The bus node hands the loaded list's hashes to the vault, sealed to its key, in the bus module's have (ADR 0547 clause 9, issue 1945)
jschoubben2026-10-26 11:32:36 +01:00
1195cf4597
Merge pull request 'The node-engine retries an apply that met a passing bus error, so a reload does not leave a module failed (issue 1945)' (#144) from fix/apply-retries-transient into main
mesh-tools2026-10-25 22:42:41 +00:00
99285cb080
Retry an apply, a fetch by digest and a have write that met the bus reloading, and keep the cause in the have
jschoubben2026-10-25 23:37:02 +01:00
d75c66dc7e
Merge pull request 'The bus node writes the newest signed bus user list by itself, without a want (ADR 0547 bridge, issue 1945)' (#143) from fix/1945-user-list-follows into main
mesh-tools2026-10-25 21:16:06 +00:00
e196058f6f
Merge pull request 'The node-engine wakes the provisioner when an apply lets a file it refused be written (issue 924)' (#142) from fix/provisioner-retries-on-declaration into main
mesh-tools2026-10-25 21:08:52 +00:00
5e71ab6ae6
Count the bus's users from the list a digest names, take only a composition of this node and module, and refuse a list that would lock the mesh out (review of the bridge, ADR 0547 §8)
jschoubben2026-10-25 22:00:05 +01:00
3f02bd7ff6
The bus node writes the bus's user list alone from the newest composition of the bus module, with no want, and says it in the bus module's have (ADR 0547 §8, issue 1945)
jschoubben2026-10-25 21:50:49 +01:00
338797a527
Knock under the apply's lock, and read what is owed first (review of this fix)
jschoubben2026-10-25 21:49:23 +01:00
2c93f79429
Tell the provisioner's client to fill again once a settled apply may let through a write the filling refused (ace, 2026-10-25 21:17)
jschoubben2026-10-25 21:42:41 +01:00
5f16cf507a
Merge pull request 'Say a module's health is not yet judged while it changes, and judge it as soon as its change ends (issue 1945)' (#141) from fix/r6-health-unknown into main
mesh-tools2026-10-25 15:04:54 +00:00
b32a27c115
Owe a look when a module's change ends unjudged, so a module with nothing long-running is ok within a look of its apply
jschoubben2026-10-25 15:46:05 +01:00
c16e625a08
Say a module's health is not yet judged while its change is under way and until a look after it
jschoubben2026-10-25 15:32:59 +01:00
1cdb4d1a29
Say a module found running on its own have again at the agent's start, so its health is this engine's and not an older engine's unknown
jschoubben2026-10-25 15:27:23 +01:00
0dfbe1a179
Merge pull request 'Drop the node's own copy of a resource a module composition declares, and give the kept declaration's filled paths to their modules (issue 1945)' (#140) from fix/r6-own-composition-dupes into main
mesh-tools2026-10-25 13:51:00 +00:00
1bdbf47ffa
Leave out the node's own copy only by kind and id, never by a shared target (issue 1945, review)
jschoubben2026-10-25 14:29:06 +01:00
16f84b53da
Leave the node's own copy of a module's resource out, and carry the kept declaration's filled paths (issue 1945)
jschoubben2026-10-25 14:10:52 +01:00
57b553ac5a
Merge pull request 'Apply the revision of a composition its want names, read from the key's history, when the latest has another digest (issue 1945)' (#139) from fix/r6-want-names-revision into main
mesh-tools2026-10-25 12:30:40 +00:00
11a635796d
Bound a key's history read to 10 s and test it on a real bus; the witness test waits for its process to run from its image (issue 1945)
jschoubben2026-10-25 12:51:00 +01:00
8343c4fb36
Apply the revision of a composition key whose digest the want names, from the revisions the bucket keeps (issue 1945)
jschoubben2026-10-25 12:42:20 +01:00
3e3e43de52
Merge pull request 'Never lose the bus to a replace of its own container (issue 1945)' (#138) from fix/r6-bus-replace into main
mesh-tools2026-10-25 11:25:11 +00:00
175fb45c19
Take a container left set aside as the next apply's, and bound an apply to 30 minutes (issue 1945)
jschoubben2026-10-25 12:18:50 +01:00
219169dbd9
Set a running container aside until its replacement runs, and put it back when the replacement does not come up (issue 1945)
jschoubben2026-10-25 12:14:41 +01:00
b99d0b45bf
Run an apply in a context the bus's loss cannot end, and say why a killed command was killed (issue 1945)
jschoubben2026-10-25 12:09:28 +01:00
f06058390c
Merge pull request 'Apply again a module whose resources are gone, move a module with nothing to back up, and report ok for a running module with nothing to watch (issue 1944)' (#137) from fix/r6-reapply-missing into main
jschoubben2026-10-25 10:11:19 +00:00
958ccbde3e
Say a running module ok once looked at when nothing of it is judged, so mesh-host's canary can be healthy and its other nodes get the new engine (issue 1945)
jschoubben2026-10-25 11:08:10 +01:00
43d1c2456f
Apply a module again only for a newly missing resource, leave filled files out of the record check, and say when the applied state cannot be read (issue 1945)
jschoubben2026-10-25 11:04:08 +01:00
c46937da04
Apply a module again when the engine holds no record of its resources or its health says one is missing, and move a module with nothing to back up without a backup (issue 1944, issue 1945)
jschoubben2026-10-25 10:59:21 +01:00
cf455bc4fe
Merge pull request 'Never remove a module's resources while its own composition waits to be applied (issue 1944)' (#136) from fix/r6-node-own-keeps-moved into main
jschoubben2026-10-25 09:23:28 +00:00
ecf142e451
Let only a module's wanted or newest composition hold the node's own apply back, never a stale refused one (issue 1945)
jschoubben2026-10-25 02:01:24 +01:00
fa9e4483c8
Hold back the node's own apply while a module's composition cannot be read or is refused, naming it (issue 1944, issue 1945)
jschoubben2026-10-25 02:56:20 +02:00
e62c32c8c3
Leave a record another module's composition now holds, whatever its type, instead of removing it in the node's own apply; a removed module holds nothing back (issue 1944, issue 1945)
jschoubben2026-10-25 02:54:58 +02:00
2bfde7d659
Hold out a module whose own composition waits to be applied, so the node's own apply never removes the resources it moved there (issue 1944, issue 1945)
jschoubben2026-10-25 02:52:10 +02:00
db06feed2e
Merge pull request 'Refuse an apply that would write a provisioner file empty, naming the file (issue 1944)' (#135) from fix/r6-node-composition into main
jschoubben2026-10-25 00:17:56 +00:00
4e6b756bd2
Refuse an apply that would write a provisioner's file empty, read the node's own filled paths, and name the node's own composition when its apply fails (issue 1944, issue 1945)
jschoubben2026-10-25 01:49:00 +02:00
b833d09d28
Merge pull request 'R6: the node-engine applies from its wants and signed compositions, one module at a time; operator-signers (issue 1944)' (#134) from feat/r6 into main
jschoubben2026-10-24 23:17:39 +00:00
81758b24a8
Pin mesh-sdk to feat/r6 748c564, which carries main's composer (issue 1943)
jschoubben2026-10-24 23:06:00 +02:00
25ad5ce42c
Merge remote-tracking branch 'origin/main' into feat/r6
jschoubben2026-10-24 23:00:09 +02:00
285395d523
Merge pull request 'R4g finish: merge-check.sh gone, reads-outside markers (issues 1295, 1935)' (#133) from feat/r4g-finish into main
jschoubben2026-10-24 20:57:23 +00:00
be5f31ce66
What runs is the agent's compositions plus the kept declaration's rest: health, filling, take act, directories and the others held out of an apply read it; a restart trusts the node-engine's own haves; the bed tests run off Arch (review round 1)
jschoubben2026-10-24 18:13:40 +02:00
67db003813
Pin mesh-sdk to the head of feat/r6 (5da87a0)
jschoubben2026-10-24 17:50:20 +02:00
e5a06cc73d
The node agent waits for a backup's end on the holder's event, not by polling; the manifest consumes it (R6-A A5)
jschoubben2026-10-24 17:03:30 +02:00
20d0998cdd
The operator's public keys reach the node as the file operator-keys, fed by the node-engine's setting operator-signers (ADR 0539 clause 3)
jschoubben2026-10-24 16:57:15 +02:00
83f16cff8d
apply FILE is no hand path: mesh-compose and a want are (ADR 0539 clause 10); genesis keeps the carried bundle
jschoubben2026-10-24 16:55:23 +02:00
96d0322498
The node-engine reports reads-wants; a failed apply is said; the have's fingerprint and digest follow its health (R6-A A6)
jschoubben2026-10-24 16:43:26 +02:00
b2003e7a38
A composition is applied only when the controller or the operator signed it; the node agent's integration tests on an embedded bus (R6-A A9, A1, A5)
jschoubben2026-10-24 16:42:11 +02:00
3303797bfb
The node agent runs in the node-engine: watches the wants and compositions on the link, applies one module's composition, asks the backup, writes the haves (R6-A A1, A5, A6)
jschoubben2026-10-24 16:39:51 +02:00
d5dd7761c6
The node agent: follows the wants and the node's compositions, applies one module at a time, backs a data module up first, holds it on a failed backup (R6-A A1, A2, A5, A6)
jschoubben2026-10-24 16:36:21 +02:00
5f5f37b0b2
Pin mesh-sdk to feat/r6 S1-S3 (d6cef58): the composition bucket, the want's composition and backup answer, the have's composition and held phase
jschoubben2026-10-24 16:31:20 +02:00
c30b86ae22
Proved: the evidence is a have under the running build (comment)
jschoubben2026-10-24 16:26:39 +02:00
1598156752
The node-engine hears no declaration: the queue, orders, put-backs, unsaid, numbers and news go; a session says the facts in the node-engine's own order, and the first have proves a build (R6-A A7, A8)
jschoubben2026-10-24 16:25:11 +02:00
e2b6f37168
Apply one module at a time: a scope of the module and what the others hold, and an owner record, so a removal is the module's own (R6-A A3, A4)
jschoubben2026-10-24 16:16:32 +02:00
13bdcb694b
Mark the packages whose tests read files outside their directory, found by the review (issue 1935)
jschoubben2026-10-24 04:39:01 +02:00
89ebd0eefe
Merge remote-tracking branch 'origin/feat/r4g-finish-1935' into HEAD
jschoubben2026-10-24 04:26:19 +02:00
b4f6537f80
Mark the packages whose tests read files outside their directory, so mesh-build-go never keeps their verdict (issue 1935)
feat/r4g-finish-1935
jschoubben2026-10-24 04:01:02 +02:00
7618f661ea
Fail, not skip, when the checker places no controller beside the node-engine (issue 1295)
jschoubben2026-10-24 03:43:49 +02:00
3c3628c0ce
Merge pull request 'R4g (mesh-host): merge-check.sh goes; the checker judges the repository (design 47)' (#132) from feat/r4g into main
jschoubben2026-10-23 17:50:55 +00:00
4b4bb09a05
Make the apply tests fit the checker's isolated step: accept any who in the refused line, skip aloud where no group can be set (issue 1919, R4g)
jschoubben2026-10-23 18:54:53 +02:00
11b0a1fb29
Skip aloud the controller's step-nine check where the running checker places no controller (issue 1295, R4g)
jschoubben2026-10-23 18:35:32 +02:00
6ea77844d6
Judge the other genesis modules' toolchains; set aside only build-agent (issue 1152, R4g)
jschoubben2026-10-23 18:20:50 +02:00
976c9998d6
Delete merge-check.sh; the checker's levels run what it ran (issue 1295, S3; ADR 0529)
jschoubben2026-10-23 15:26:03 +02:00
48c3e3834c
Merge pull request 'Take a root-made directory in the mesh's own tree, and hold a container until the file it mounts exists (issue 1873)' (#131) from fix/1873-mesh-tree-dirs into main
mesh-tools2026-10-22 20:41:08 +00:00
0d12fb11a4
Make no container before a file it mounts is there, and clear the empty directory a runtime left at a file's path (issue 1873)
jschoubben2026-10-22 22:29:39 +02:00
03b9c47af4
Judge the mesh's tree by where a path leads, not only by its text (issue 1873, review)
jschoubben2026-10-22 22:27:45 +02:00
cdbff1777e
Take a directory in the mesh's own tree that the engine's account owns as the mesh's, not as found (issue 1873)
jschoubben2026-10-22 22:23:04 +02:00
59e6a6fa2a
Merge pull request 'Write the store's superuser secret where the postgres module now keeps it, and read the bus's release from its upstream image (issues 1873, 1875)' (#130) from fix/1873-system-state-dirs into main
mesh-tools2026-10-22 20:04:32 +00:00
8c0bb9d453
Read the bus's release from the nats module's pinned server image, not a NATS_BASE build argument (issue 1875)
jschoubben2026-10-22 21:46:34 +02:00
de809d7e0a
Keep the store's superuser file in the postgres module's own directory, not in /var/lib/postgres (issue 1873)
jschoubben2026-10-22 21:36:38 +02:00
4065b45ae8
Merge pull request 'Have a replacement image before removing a running container (issue 1742)' (#129) from fix/1732-held-moves-asked into main
mesh-tools2026-10-21 19:07:56 +00:00
09c77d57b8
Have a replacement container's image before removing the running one, so an unobtainable image leaves the service up (issue 1742)
jschoubben2026-10-21 19:16:32 +02:00
c231d1031f
Merge pull request 'Read a declared file from the node's own object bucket, declaration-files-<node> (issue 1695, ADR 0488)' (#128) from feat/1696-declaration-files into main
mesh-tools2026-10-21 16:31:25 +00:00