b03bf4c118
A node's answer holds as today what it holds today, so a seed that reproduces today is the same (issue 1126)
jschoubben2026-10-28 22:13:37 +01:00
53f2649369
Merge pull request 'A build puller parked at capacity 0 wakes when its settings file changes, and retries a failed setting follow (issue 734's kind)' (#122) from fix/park-wakes into main
mesh-tools2026-10-28 21:03:13 +00:00
8eafc0c5ce
The placement reader names the seat mesh-placement's state, held by the assigner, as L2 moved it (issue 774, ADR 0567)
feat/774-vault-mints-l2
jschoubben2026-10-28 20:21:27 +01:00
50de0a5a71
The node seat's acts reads one act by its id (issue 774, ADR 0563 §9)
jschoubben2026-10-28 10:19:31 +01:00
2323ba19db
The node-engine's declared state acts: created by the grants part as a placed module's, its manifest placed on every node, and written by each node's engine under its own keys alone (issue 774, ADR 0563 §2, §3)
jschoubben2026-10-28 10:13:07 +01:00
63607ba169
The vault's secret-ask is said to answer the callers its manifest names (issue 774, ADR 0563 §8)
jschoubben2026-10-28 10:00:47 +01:00
82c54870ed
A module's trusted list of callers in the SDK, so the vault's secret-ask answers the callers its manifest names as the runtime proved them (issue 774, ADR 0563 §8)
jschoubben2026-10-28 09:58:27 +01:00
79231a9e6c
A node's engine answers its own node's node-engine verbs, says the seat's events and asks the operator as node-engine-<node>, and no other account answers them (issue 774, ADR 0563 §1, §3, §6)
jschoubben2026-10-28 09:45:48 +01:00
222d605f6f
The node seat node-engine: held by every node's engine, its six verbs and three events, and no module may claim it (issue 774, ADR 0563 §1)
jschoubben2026-10-28 09:43:40 +01:00
3a8997c58a
Bundle the mesh's authorities by certificate, and check a node's certificate against every one a bundle holds (issue 774, ADR 0550 §2)
jschoubben2026-10-28 09:27:17 +01:00
d6db3f38e6
The vault signs: the contract of its state signers, its verb sign and its event signed, a node's grants to ask it and to read what it trusts, and the authority composed as a bundle (issue 774, ADR 0550 §2)
jschoubben2026-10-28 09:26:12 +01:00
18a47ac3c7
Placed: a module in the first revision heard of a node's key stands since before it, so the seed's placement does not leave out what already ran (issue 774)
jschoubben2026-10-28 09:18:11 +01:00
1386219d4d
One reader of the catalogue's placement and the toolchain gate over it, in place of the three copies over the controller's assignments (issue 774, ADR 0549 §3, issue 1940); the assigner may read the lease (ADR 0549 §5)
jschoubben2026-10-28 09:15:39 +01:00
10d4d2f845
Checker seat test: the try replaces both shell commands (issue 774)
jschoubben2026-10-28 09:09:58 +01:00
b3100c55a1
Checker seat: the try's verb also replaces docker run postgres, as the controller's try did (ADR 0547 §10, issue 774)
jschoubben2026-10-28 09:09:23 +01:00
0062bdc4a6
buscompose: the assigner may read the controller's lease, to choose where grants are read from (issue 774)
jschoubben2026-10-28 09:11:27 +01:00
a1a688b19e
delivery: the grants part's grant keys and the source the assigner reads (a1; issue 774)
jschoubben2026-10-28 09:10:15 +01:00
54b17164ef
Checker seat test: fold into the closed-set seats test, no new test function (issue 774)
jschoubben2026-10-27 23:00:38 +01:00
3ed9a0e342
Checker seat: the try's end by hand is a verb too (issue 774)
jschoubben2026-10-27 22:49:44 +01:00
9b5657a3d6
Seat mesh-delivery-checker: the try and its read are verbs of the checker's own seat, replacing sh merge-check.sh (ADR 0547 §10, issue 774)
jschoubben2026-10-27 22:49:06 +01:00
1d4637e46b
Name the vault's verb issue-account on its seat, so its holder may serve it (issue 774, ADR 0561 §9)
jschoubben2026-10-27 22:42:53 +01:00
fefa8b88ea
Say when the lease is handed away, let the vault and the grants part read it, and let the grants part create the consumers an account needs, so both turn on at the lease write alone (issue 774, ADR 0561 §3, §6)
jschoubben2026-10-27 22:28:54 +01:00
8d9b3f779d
Build a minted account's value as the controller does, byte for byte, so a runtime reads the vault's unchanged (issue 774, ADR 0561 §2)
jschoubben2026-10-27 22:19:53 +01:00
da506bb3b8
Say which bus accounts the grants part wants, in a state only the vault reads, and what the vault says when it mints one, so the vault can mint from the grants part's word (issue 774, ADR 0561 §2)
jschoubben2026-10-27 22:19:26 +01:00
af08be36a2
Merge pull request 'A waiting ask hears its step's end even when its own watch goes deaf (four lost checks, 2026-10-28)' (#121) from fix/lost-check into main
mesh-tools2026-10-28 20:40:58 +00:00
6b43afa2ab
Merge pull request 'One predicate for a module the mesh provides itself (mesh-wireguard), used by the placement check (issue 1126)' (#120) from fix/1126-provided into main
mesh-tools2026-10-28 20:39:20 +00:00
f91340fe82
buildrun: open a steps watch again that closed having heard nothing, up to 3 closes in a row
jschoubben2026-10-28 20:35:02 +01:00
6aeb401095
buildrun: read an ask's step at every step end of its build module, so a deaf watch loses no end
jschoubben2026-10-28 20:29:30 +01:00
5228a5782d
Name the modules the mesh provides itself in one predicate, so the seed's check takes the private network as the composer and the grants part do (issue 1126)
jschoubben2026-10-28 20:12:51 +01:00
9e5666b4d6
Settings watch: arm again when the kernel drops it (IN_IGNORED), said once; the test waits on the arm, not a sleep
jschoubben2026-10-28 20:08:21 +01:00
c006aa8242
Build puller: wake on a settings file write, retry a failed config follow at the next event, say a capacity of 0 and why
jschoubben2026-10-28 20:01:46 +01:00
d7c790d242
Merge pull request 'The seat mesh-placement's contract, and node grants for its states (issue 1126, delivery 1 of 2)' (#119) from feat/1126-grants-first into main
mesh-tools2026-10-28 18:21:33 +00:00
38dbe1d3a3
Let a node agent hear the creation of the seat's placement and candidates, so it binds them with no timer (ADR 0567 §9, issue 1126)
feat/1126-placement-seat
jschoubben2026-10-28 18:47:13 +01:00
a2dbcf670b
Bound a proposal's answers and ask by pulse keys whose expiry the holder hears, and name a hand-back proposal, so no timer waits (ADR 0567 §4, §7, issue 1126)
jschoubben2026-10-28 18:43:39 +01:00
e987a8280b
Let a module's config values be proposed before the lease write: only a layer's places and accesses wait (ADR 0567 §13, issue 1126)
jschoubben2026-10-28 18:42:05 +01:00
45f5f76811
Keep the placement ask among the assigner's asks: its Approve's level, not its kind, needs the proof (ADR 0567 §5, issue 1126)
jschoubben2026-10-28 18:30:00 +01:00
4b4a173d84
Let withdraw mark a proposal for its holder to end, since the holder's process alone says the seat's events (ADR 0567 §2, issue 1126)
jschoubben2026-10-28 18:21:59 +01:00
0282229fd9
Name the placement ask and a proposal's again and warrant, so the holder asks through the teller as its other asks (ADR 0567 §5, §10, issue 1126)
jschoubben2026-10-28 18:20:27 +01:00
5a2a7eebfd
Hold that a check's node names reach the digest tool too, so a kept verdict misses when they change (ADR 0567 §12, issue 1126)
jschoubben2026-10-28 18:17:08 +01:00
004bbc2ce2
Carry every node's name on a check ask to the names check, so no repository lists them (ADR 0567 §12, issue 1126)
jschoubben2026-10-28 18:13:57 +01:00
fed64292f0
Read build capacity as an integer and build hours as one window, default 0: no repository names a node (ADR 0567 §12, issue 1126)
jschoubben2026-10-28 18:13:18 +01:00
7a82384e21
Grant a node's agent the seat's placement and candidates, so it composes from the seat's state (ADR 0567 §3, §9, issue 1126)
jschoubben2026-10-28 18:12:09 +01:00
7c565f2aa5
Move Intended and JudgeAnswers into mesh-sdk for a proposal: a difference is shown, only a refusal or silence fails (ADR 0567 §4, issue 1126)
jschoubben2026-10-28 18:11:18 +01:00
edc6f269f3
Name the seat's states, candidates by proposal and the proposal itself, so readers and the holder share one contract (ADR 0567 §1-§6, issue 1126)
jschoubben2026-10-28 18:09:38 +01:00
902e3c9e96
Refuse placement files on a forge message and delete placement-seed: no repository holds placement (ADR 0567 §11, issue 1126)
jschoubben2026-10-28 18:09:38 +01:00
c16e6213e1
Define the seat mesh-placement with its seven verbs, so placement has one contract whoever holds it (ADR 0567, issue 1126)
jschoubben2026-10-28 18:05:16 +01:00
98f2f24069
Merge pull request 'A node holds the one module it cannot compose and applies the rest, as its shadow already answers (group fix/1126-apply-culprit, issue 1126)' (#118) from fix/1126-apply-culprit into main
mesh-tools2026-10-28 16:34:46 +00:00
0de3006415
A module refused alone is held, composed as what runs of it, on the node that applies as in its answer: one rule for both paths (issue 1126)
jschoubben2026-10-28 17:15:51 +01:00
7aedd28f01
Merge pull request 'A module's own refusal refuses that module, not the node; contributions say unset values in config words; a folded module owns its manifest's paths (issue 1126, group fix/1126-seed-8)' (#117) from fix/1126-seed-8 into main
mesh-tools2026-10-28 13:27:05 +00:00
f387581b6b
A module's own refusal refuses that module, not the node: a stub whose contributions still fail the same is tried bare (issue 1126, seed-8: novox refused the whole candidate for de-spiegel's unset route names)
jschoubben2026-10-28 13:09:56 +01:00
eda82b1598
A folded module owns its manifest's paths, as the controller tells node-files them, not every path it runs at (issue 1126, seed-8: f1-circuits, snake and txt-game shifted node-tools' owned paths on ace)
jschoubben2026-10-28 13:09:56 +01:00
06742d0448
A contribution's unset required value is refused in its module's own form's words, as a file's is (issue 1126, seed-8: de-spiegel in the config form was told ${setting:…} and settings set)
jschoubben2026-10-28 13:09:45 +01:00
3d021445f7
Merge pull request 'A build module may say its node is not eligible, so asks go to a node that can build (group fix/ace-tun)' (#116) from fix/ace-tun into main
mesh-tools2026-10-28 13:07:40 +00:00
1618837ea9
A build seat's puller takes nothing while its module finds its node cannot build, and says why
jschoubben2026-10-28 12:38:26 +01:00
6097e4f3e0
Merge pull request 'A file's secrets are sealed values entry by entry, masked and named per secret (issue 1126; group fix/1126-seed-same-3)' (#115) from fix/1126-seed-same-3 into main
mesh-tools2026-10-28 11:40:35 +00:00
8520a4c099
Only a file's secrets are split entry by entry when masked and named: a vault box under vault-sealed is one masked word and one path, judged whole by what it opens to (issue 1126, C1; review of seed-same-3, round 1)
jschoubben2026-10-28 12:22:37 +01:00
70de9429e5
A file's secrets are sealed values entry by entry: each a slot of its own, kept where it opens to the value that runs, masked and named per secret (issue 1126, C1; the seed-7 probe: about 45 files on ace and novox differed by their secrets' bytes alone)
jschoubben2026-10-28 12:02:39 +01:00
79eb58efe4
Merge pull request 'Compose as the controller does, so a node's shadow can answer same (issue 1126, group fix/1126-seed-same)' (#114) from fix/1126-seed-same into main
mesh-tools2026-10-28 09:46:24 +00:00
11b3e6a95d
The node-engine's declared state acts: created by the grants part as a placed module's, its manifest placed on every node, and written by each node's engine under its own keys alone (issue 774, ADR 0563 §2, §3)
jschoubben2026-10-28 10:13:07 +01:00
277a5bd34d
Merge feat/774-l3-563 (f80d5d3) into the L3 assembly: a node's grants carry both the vault's sign and its node seat node-engine (issue 774)
jschoubben2026-10-28 10:02:41 +01:00
f80d5d3d86
The vault's secret-ask is said to answer the callers its manifest names (issue 774, ADR 0563 §8)
jschoubben2026-10-28 10:00:47 +01:00
3028c7ec4e
A drifted own secret is read from a resource id as a node runs it, its module's name first (only-office.needs-jwt), so the node agent finds what to hand the vault (issue 1126, cause C4; review round 2)
jschoubben2026-10-28 10:00:29 +01:00
5993dab6d1
Merge commit 'ec821f6' into asm-l3/774-vault-mints
jschoubben2026-10-28 09:58:50 +01:00
c285af02f9
Merge commit '4b226aa' into asm-l3/774-vault-mints
jschoubben2026-10-28 09:58:50 +01:00
49e853986b
A module's trusted list of callers in the SDK, so the vault's secret-ask answers the callers its manifest names as the runtime proved them (issue 774, ADR 0563 §8)
jschoubben2026-10-28 09:58:27 +01:00
5a2eb2b480
Merge commit 'c527fc7' into asm-l3/774-vault-mints
jschoubben2026-10-28 09:58:13 +01:00
1062b33d32
A node's shadow answer counts the values that drifted from the vault's, and names the own secrets among them (issue 1126, cause C4)
jschoubben2026-10-28 09:49:03 +01:00
bec931e72e
A node's engine answers its own node's node-engine verbs, says the seat's events and asks the operator as node-engine-<node>, and no other account answers them (issue 774, ADR 0563 §1, §3, §6)
jschoubben2026-10-28 09:45:48 +01:00
fa512c8637
The node seat node-engine: held by every node's engine, its six verbs and three events, and no module may claim it (issue 774, ADR 0563 §1)
jschoubben2026-10-28 09:43:40 +01:00
16b8d8a1ee
Compose as the controller does, so a node's shadow can answer same (issue 1126, C1 C2 C3 C5 C6, T1)
jschoubben2026-10-28 09:36:36 +01:00
ec821f6199
Merge remote-tracking branch 'origin/main' into feat/774-l3-sign
jschoubben2026-10-28 09:28:41 +01:00
c07cdaf2f4
Bundle the mesh's authorities by certificate, and check a node's certificate against every one a bundle holds (issue 774, ADR 0550 §2)
jschoubben2026-10-28 09:27:17 +01:00
de72cb9a11
The vault signs: the contract of its state signers, its verb sign and its event signed, a node's grants to ask it and to read what it trusts, and the authority composed as a bundle (issue 774, ADR 0550 §2)
jschoubben2026-10-28 09:26:12 +01:00
4b226aa78f
Placed: a module in the first revision heard of a node's key stands since before it, so the seed's placement does not leave out what already ran (issue 774)
jschoubben2026-10-28 09:18:11 +01:00
02645b5a0f
One reader of the catalogue's placement and the toolchain gate over it, in place of the three copies over the controller's assignments (issue 774, ADR 0549 §3, issue 1940); the assigner may read the lease (ADR 0549 §5)
jschoubben2026-10-28 09:15:39 +01:00
18e2e05bb5
buscompose: the assigner may read the controller's lease, to choose where grants are read from (issue 774)
jschoubben2026-10-28 09:11:27 +01:00
0b0c669b49
delivery: the grants part's grant keys and the source the assigner reads (a1; issue 774)
jschoubben2026-10-28 09:10:15 +01:00
c527fc7222
Checker seat test: the try replaces both shell commands (issue 774)
jschoubben2026-10-28 09:09:58 +01:00
2a1ad896fa
Checker seat: the try's verb also replaces docker run postgres, as the controller's try did (ADR 0547 §10, issue 774)
jschoubben2026-10-28 09:09:23 +01:00
be77f66563
Merge pull request 'frombus: blame only the modules a refusal names, and say which providers another node cannot run (issue 1126, group fix/1126-shadow-bodies)' (#113) from fix/1126-shadow-bodies into main
mesh-tools2026-10-28 07:46:23 +00:00
362a3f1378
A refusal for want of a provider names the modules another node cannot run in this composition, and a refusal naming no placed module is answered at once (issue 1126, probe #532)
jschoubben2026-10-28 01:39:07 +01:00
03da552cb3
Merge pull request 'Shadow answers show both bodies of each difference (secrets masked); a folded module is judged inside; the bus membership is carried (issue 1126, group fix/1126-shadow-shows)' (#112) from fix/1126-shadow-shows into main
mesh-tools2026-10-28 00:21:47 +00:00
4e0c57771e
Bound the bodies an answer shows, naming the rest (issue 1126)
jschoubben2026-10-28 01:09:02 +01:00
b31c4580aa
A candidate answer shows every differing resource, masked; a module folded in the node's own is judged there; the node's own carries its bus membership as it runs it (issue 1126, seed #531)
jschoubben2026-10-28 01:08:49 +01:00
47eb100992
Merge pull request 'frombus: a stub keeps its module's directories; compose returns nothing once its run ended (issue 1126, group fix/1126-switch-safe)' (#111) from fix/1126-switch-safe into main
mesh-tools2026-10-27 23:52:19 +00:00
7359d187db
A stub keeps its module's directories, so the places its own secrets and data name still resolve (issue 1126: novox refused nats's ${dir:mesh-state})
jschoubben2026-10-28 00:21:45 +01:00
47b1dcf08f
Merge pull request 'Shadow answers name every refusal, carry old-form builds as they run, and compare a deleted placement (issue 1126, group fix/1126-shadow-all)' (#110) from fix/1126-shadow-all into main
mesh-tools2026-10-27 22:44:08 +00:00
e32d777530
A deleting head's answer compares the controller's compositions with what runs, and is refused only without returning; fold the shadow's tests into TestInput (issue 1126, review of the shadow, round 1)
jschoubben2026-10-27 23:32:31 +01:00
472d5f3144
A node's have says whose compositions it applies, and its answer to a head deleting its placement says it returns to the controller's (issue 1126, the seed's revert)
jschoubben2026-10-27 23:22:54 +01:00
2fd5ffdd62
A node's answer names every module it cannot compose, a folded module of an old-form build is left to the node as it runs, and no store reached says why (issue 1126, the seed's shadow)
jschoubben2026-10-27 23:17:05 +01:00
3f7957e169
Merge commit 'a5d0e64' into feat/774-vault-mints
jschoubben2026-10-27 23:01:44 +01:00
9fdd33b03e
Checker seat: the try's end by hand is a verb too (issue 774)
jschoubben2026-10-27 22:49:44 +01:00
2e8c2a7f4c
Seat mesh-delivery-checker: the try and its read are verbs of the checker's own seat, replacing sh merge-check.sh (ADR 0547 §10, issue 774)
jschoubben2026-10-27 22:49:06 +01:00
d688f106e9
Name the vault's verb issue-account on its seat, so its holder may serve it (issue 774, ADR 0561 §9)
jschoubben2026-10-27 22:42:53 +01:00
cfe6094f46
Say when the lease is handed away, let the vault and the grants part read it, and let the grants part create the consumers an account needs, so both turn on at the lease write alone (issue 774, ADR 0561 §3, §6)
jschoubben2026-10-27 22:28:54 +01:00
bee33f4715
Build a minted account's value as the controller does, byte for byte, so a runtime reads the vault's unchanged (issue 774, ADR 0561 §2)
jschoubben2026-10-27 22:19:53 +01:00
2ecc94062e
Say which bus accounts the grants part wants, in a state only the vault reads, and what the vault says when it mints one, so the vault can mint from the grants part's word (issue 774, ADR 0561 §2)
jschoubben2026-10-27 22:19:26 +01:00
d48365aed0
Merge pull request 'frombus: a node composing itself takes its modules from their builds and reads what providers elsewhere serve (issue 1126, group fix/1126-node-creds)' (#109) from fix/1126-node-creds into main
mesh-tools2026-10-27 20:32:30 +00:00