4c1384faef
Merge pull request 'One bad module no longer drops its machine, too-large values and bus blackouts fail loud or are waited out, watches are never forgotten (issue 774)' (#138) from fix/sweep-2026-10-30 into main
jschoubben2026-10-30 18:12:47 +00:00
a37181261c
Never ask a call again that its callee answered, whatever its words (issue 774)
jschoubben2026-10-30 18:41:37 +01:00
206f794eb3
Grant a bar's holder the state a contributor's item shows, at its own machine's key (issue 774)
jschoubben2026-10-30 18:35:54 +01:00
ef1ec1c935
Name mesh-config among the controller's lease readers (issue 774)
jschoubben2026-10-30 18:26:23 +01:00
942f906222
Judge only the verbs of a mesh seat a module invokes, not its holder (issue 774)
jschoubben2026-10-30 18:25:59 +01:00
61b67d61e2
Export the accounts block's user entry, so a kept user is written in ComposeAccounts' own lines (issue 774)
jschoubben2026-10-30 18:19:20 +01:00
44dbb22ea7
Wait out a bus that answers nothing for a few seconds instead of losing the write (issue 774)
jschoubben2026-10-30 18:18:32 +01:00
1dc5d8cb3d
Run a watch's handler beside the runtime, and give a refused watch up loudly (issue 774)
jschoubben2026-10-30 18:15:46 +01:00
7115b7bf64
Refuse a catalogue where a module invokes a seat verb nothing answers (issue 774)
jschoubben2026-10-30 18:11:19 +01:00
e703e9b0e2
Judge every read for its reader where the bus's users are composed (issue 774)
jschoubben2026-10-30 18:08:02 +01:00
7b02f63daf
Refuse a key-value write too large for its bucket before it is put (issue 774)
jschoubben2026-10-30 18:02:18 +01:00
59311407e2
One bad module must not drop its node: plans are composed module by module, a foreseen own secret fills a file, a built bus manifest keeps its bundle (issue 774)
jschoubben2026-10-30 17:50:56 +01:00
1d9de5dbb6
Merge pull request 'Grant the provisioner client every machine's plans, as it watches them (issue 774)' (#137) from fix/provisioner-reads-every-plan into main
jschoubben2026-10-30 15:53:30 +00:00
af66ccb833
Grant the provisioner client every machine's plans, as it watches them, so g14 and shanks read their plans again (issue 774)
jschoubben2026-10-30 16:40:46 +01:00
42988a734b
Merge pull request 'The tool runner never carries the node-engine's state, so the bus user list composes again (issue 774)' (#136) from fix/runner-carries-no-engine-state into main
jschoubben2026-10-30 15:35:51 +00:00
6e78203959
Compose no placed user from the node-engine's manifest, so the tool runner never becomes a second writer of the engine's state (issue 774)
jschoubben2026-10-30 16:30:27 +01:00
d0625eea3d
Merge pull request 'One list of credential forms, so no part keeps its own copy (issue 774)' (#135) from fix/credential-forms-one-list into main
jschoubben2026-10-30 15:10:19 +00:00
9379e9a96a
Keep one list of credential forms in the catalogue, so no reader of a plan refuses a form another writes (issue 774)
jschoubben2026-10-30 16:03:14 +01:00
0c99e847a2
Merge pull request 'One codec for the grants part's memberships state, so its writer and readers cannot drift (issue 774)' (#134) from fix/memberships-shape into main
jschoubben2026-10-30 14:42:04 +00:00
83cf97b690
Refuse an old wrapper of a held-back membership, so a reader falls back to the assignments stream
jschoubben2026-10-30 15:36:23 +01:00
46d4b4da5e
One codec for the grants part's memberships, so its writer and the tool runner cannot drift
jschoubben2026-10-30 15:23:17 +01:00
2b1e148bf5
Merge pull request 'Design 47's last milestones as one release: the contracts for health, control records, provisioning and history leaving the controller (issues 774, 1126, 1952, 1953, 1954, 1955, 1289)' (#133) from feat/774-l3-reland into main
mesh-tools2026-10-30 11:01:40 +00:00
c2ec8b6b2f
Say nothing more on a step's log after one publish fails, so a bus that does not take its lines costs a step at most one timeout and never fails it
fix/checker-full-failure
jschoubben2026-10-30 11:09:35 +01:00
530d8d3007
Name the pull request a failure is of, so its last failure is found after its candidate is gone
jschoubben2026-10-30 10:58:16 +01:00
16bc0dcf3e
Say a failed test's whole output on its build module's own stream under the check and the step, read it back in pages, and let a module read its own streams, so a cut verdict names where the rest is
jschoubben2026-10-30 10:51:31 +01:00
2da0de75c3
Merge main's parse-only new words into the release, which supersedes them with its full implementation (issue 774)
jschoubben2026-10-30 01:11:16 +01:00
044ead7db8
Merge pull request 'Read the release's new manifest words and seat names, with no change of meaning, so the running parts accept design 47's manifests (issue 774)' (#132) from fix/774-new-words-first into main
mesh-tools2026-10-30 00:10:04 +00:00
78c9ec8817
Accept the release's new manifest words and know its new seats by name, meaning nothing new yet, so delivery 1's readers parse the release's catalogue before any part reads them (issue 774)
jschoubben2026-10-30 00:35:35 +01:00
6e4a3014cb
Keep the provisioner client's needs grant for one release, removed after the lease write, so the client before V3 still writes its needs while its delivery reaches each node (issue 1954)
jschoubben2026-10-30 00:14:53 +01:00
007b6fd45f
Drop stdio.Discover, the self-check's discovery and its read of the withheld hearings, which no probe uses now that the operator dropped D-root, D3 and D-heard (issue 1952)
jschoubben2026-10-30 00:02:07 +01:00
8fe3467753
Let a provider not ready yet wait and keep serving what it served, so a restarted gitea no longer stops serving its consumers until its keys load (issue 1954)
jschoubben2026-10-30 00:02:07 +01:00
fa5a6aeff5
Let a bundle ask the runtime who answers a verb, and the self-check's own account ask the bus's discovery, so D-root and D3 find holders without the controller (issue 1955)
jschoubben2026-10-29 23:58:21 +01:00
31e90aaa0f
Keep when each data item was first seen and when and why it was retired in its reading, so the self-check's D13 judges a new or retired item from disk-load's state (issue 1955, ADR 0571 clause 3)
jschoubben2026-10-29 23:56:06 +01:00
7bd0f6c2bd
Name the artifact sweep's seat mesh-artifact-sweep for its scope, grant the provisioner client its machine's plans in place of the needs, and keep the grants part's withheld hearings in one layout, so the seat names follow ADR 0121 and the client and the self-check read the bus (issue 1955, ADR 0571 clause 2, ADR 0570 clause 2)
jschoubben2026-10-29 23:53:51 +01:00
f3677eb6f3
Carry the engine's verdict on each account declared never to become root, and its contract, in the node's health report, so the self-check's DA and D-root judge on the machine's own word (issue 1952, ADR 0266)
jschoubben2026-10-29 23:48:08 +01:00
992ea0ab66
Let restic's bundle, not its night's process, write each item's last good night, since the night runs as the operator's account with no bus account (issue 1955, ADR 0436 §1-2)
jschoubben2026-10-29 23:41:16 +01:00
85f5fd0b22
Fail the grants table test for any row whose user is not composed, so a row can never pass for a missing user (issue 1955)
jschoubben2026-10-29 23:38:59 +01:00
9f0bb1cfa4
Move restic's last good night per item into the sdk's health layouts, so restic's night process writes it and the self-check reads one layout (issue 1955, ADR 0571 clause 3)
jschoubben2026-10-29 23:37:37 +01:00
08fc70783a
Read the bus through a module's declared states in frombus, with the runtime's adapter in fromruntime, so mesh-provisioner and disk-load compose from one reader instead of two copies (issue 1955)
jschoubben2026-10-29 23:31:34 +01:00
bb993dd606
Keep the builder's history as its own log that readers declare and follow, the memberships as the grants part's state, and refuse a module's own stream, so every module's data is in the bus's predefined forms and readable by its tools (issue 1955, ADR 0571 clauses 1, 4, 5, 7)
jschoubben2026-10-29 23:28:21 +01:00
196c5b6af2
Compose a node's placed data items from the bus and move the readings layout into the sdk, so disk-load measures without a composed file and restic, mounts, nfs-server and the self-check read one layout (issue 1955, ADR 0571 clause 3)
jschoubben2026-10-29 23:16:56 +01:00
dc78524e38
Let the artifact store's seat holder read the controller's lease, so its sweep starts only once the lease names no controller (issue 1955, ADR 0571 clause 2)
jschoubben2026-10-29 23:10:46 +01:00
f9a496d3e1
Carry each build's repository, directory and commit in the builder's log, so the indexer, the outside-built registrations and the assigner read where a build came from there (issue 1955)
jschoubben2026-10-29 23:09:47 +01:00
7fdbadc655
Add the seat artifact-store, the seat-holders state with its reader, and the builder's log layout, so the store's sweep, who holds which seat and build history leave the controller (issue 1955, ADR 0571 clauses 1, 2, 4)
jschoubben2026-10-29 23:09:25 +01:00
6eae0765f4
Name the machines a failing network part points at, so the watchman holds it there as the controller does without any machine's address (issue 774)
jschoubben2026-10-29 23:02:54 +01:00
94d0de5c19
Move the node's health report layout into the sdk and let each node write only its own key while the watchman reads them, so the six machine alerts leave the controller (issue 774)
jschoubben2026-10-29 22:58:05 +01:00
58a83249c8
Give a provision the vault itself provides no credential beside it, since its offer is the value (issue 1954, ADR 0570 clause 6)
jschoubben2026-10-29 22:53:15 +01:00
6b8c694381
Make every offer say its credential's form, pair or none where it names no own secret or issuer, and read no default, so the vault never mints a login for a provider that takes none (issue 1954, ADR 0570)
jschoubben2026-10-29 22:47:32 +01:00
dedd988fc9
Export a bus in memory and a mesh whose plan hands a module with a provision, so mesh-provisioner's whole test composes a real plan (issue 1954 H5)
jschoubben2026-10-29 22:44:49 +01:00
f701db0516
Key a provision's credential as the vault's own provision secret-<provision> and say what a provision depends on, so a provider waits for its credential and its own requirements (issue 1954, ADR 0570 clauses 3, 6)
jschoubben2026-10-29 22:43:56 +01:00
161fba56ae
Hold the provisioner's records to one writer in the credential table: only mesh-provisioner writes provisions and plans, readers only read, and it writes none of the grants part's states (issue 1954 L6-P5, ADR 0570 clauses 1, 8)
jschoubben2026-10-29 22:42:21 +01:00
692dbf9a17
Bind every provider by mesh-provisioner's plans and provision keys instead of the controller's assignments, act once a provision's dependencies are provided, say the outcome in its entry, and retire a consumer only on the operator's yes (issue 1954 L6-P3, P4, ADR 0570 clauses 2, 3, 5)
jschoubben2026-10-29 22:41:50 +01:00
66ff33dbd3
Name a provision's credential as the vault's own names it, read each node's provisions by its engine, and give mesh-config's held values their layout in the sdk, so the vault, the engine and the composition checks read one form (issue 1954, issue 1953 D7)
jschoubben2026-10-29 22:39:29 +01:00
6e39ed1852
Refuse a want's rule past the eighth in the refusals table, now that the eighth rule exists (issue 1954 D1)
jschoubben2026-10-29 22:37:41 +01:00
56514aa4a2
Add the assigner's eighth rule, every provision the build requires provided, so a want waits on its provisions as ADR 0570 §4 decides (issue 1954 D1)
jschoubben2026-10-29 22:37:11 +01:00
4a967933b3
Lay out a provision as a key of mesh-provisioner holding a reference and never a value, and a plan as a key of its own, so the holder, the vault, the clients and the providers read one record (issue 1954 L6-P2, ADR 0570 clauses 1, 2)
jschoubben2026-10-29 22:32:15 +01:00
233b6be5dd
Compose each node's provisioning plans from the bus alone, in a Planning mode that reads no secret, so mesh-provisioner composes the plans the controller did (issue 1954 L6-P1, ADR 0570 clause 2)
jschoubben2026-10-29 22:31:02 +01:00
4204afd240
Name mesh-config's compare, take-over and hand-back on its seat, so callers reach the config switch ADR 0565 decides by the seat (issue 1953)
jschoubben2026-10-29 22:28:45 +01:00
2d2aa7ba9b
Carry the catalogue's predefined list on the bridge's merged message, so the indexer keeps it without the controller's mirror (issue 1953 L5-D1, ADR 0565 §2)
jschoubben2026-10-29 22:21:12 +01:00
2e5cc4f166
Let a module's log keep its entries for an age, so the hand-act log holds each act 400 days as ADR 0565 decides instead of refusing when full (issue 1953 S-age)
jschoubben2026-10-29 22:17:50 +01:00
bc6c8a6d24
Let a bundle write a key with its own time to live and hear its expiry, so pulses, settles and bounds expire on the bus through the runtime (issue 1952)
jschoubben2026-10-29 22:14:42 +01:00
20cac82ab7
Give the control records their layouts, a person's policy and its one derivation, and the engine's own packages key, so the assigner, the indexer and the nodes keep them without the controller (issue 1953 L5-S2, S3, S4)
jschoubben2026-10-29 22:14:01 +01:00
fbd00c8943
Refuse a manifest that lists its claimed seat's event among its own emits, so a holder never says a seat event where no consumer hears it (issue 1952, second of a kind)
jschoubben2026-10-29 22:10:44 +01:00
7df90445ad
Add the seats mesh-wants and mesh-hand-acts, the engine's packages verb, the act layout and a recorder that falls back to the controller's log while the seat has no holder, so the control records have homes the lease does not hold (issue 1953 L5-S1, S2, S4)
jschoubben2026-10-29 22:09:16 +01:00
32f5ce3712
Refuse a tools account secret under a parent the runtime cannot pass, so the rule covers the module's 0700 mesh place too (issue 1952 S5, ADR 0564 Limits 4)
jschoubben2026-10-29 22:00:43 +01:00
8e3d7a4c3c
Give a tools bundle's bus-account secret to the runtime's account and refuse it where that account cannot reach, so the bus tools can read their credential (issue 1952 S5, ADR 0564 Limits 4)
jschoubben2026-10-29 21:59:11 +01:00
b6ef01d6c6
Let the watchman hear the bus module's slow consumers and closed connections and read the provisioner reports, and never the bus's API audit, so S9 and S21 have their facts without the vault's hashes (issue 1952 S5)
jschoubben2026-10-29 21:57:50 +01:00
7000bd5049
Let a tools bundle declare its own bus account and what it may remove, so the bus tools remove the controller's dead-letter consumer and the node-engine's acts on a declared account with no idle service (issue 1952 S5, ADR 0564 Limits 4)
jschoubben2026-10-29 21:52:52 +01:00
69fcb6c1c1
Fit the watchman's grant to what L4 does: hear its watchdogs' words and read a source's age and message, never deliver again or drop, so it holds no more than its job (issue 1952 S5)
jschoubben2026-10-29 21:44:53 +01:00
2a04bf0ac5
Let the watchman read and delete a given-up message only on the streams dead letters come from, each by name and never a bucket's, so keeping dead letters cannot read every bucket (issue 1952 S5)
jschoubben2026-10-29 21:43:15 +01:00
0b12b62a01
A failure among the change's own tests ends the check ask's level there, so the rest of the suite is not paid for (issue 1289)
jschoubben2026-10-28 11:17:45 +01:00
5a47192b57
Grant the health holders what ADR 0564 gives them and nothing more: named reads of the lease and the controller's conditions and hand acts, the watchman's own dead-letter consumer, and the bus tools' removal account (issue 1952 S5)
jschoubben2026-10-29 21:40:49 +01:00
83d928fe50
Refuse mesh-watcher and mesh-self-check on one node, so the watcher of the self-check never falls silent with it (issue 1952 S8, ADR 0564 clause 6, Limits 5)
jschoubben2026-10-29 21:37:59 +01:00
544720b00a
Read whether a module is being delivered on a node in one place, so the view and the condition keeper judge a delivery alike (issue 1952 S7, ADR 0564 clause 13)
jschoubben2026-10-29 21:37:59 +01:00
575a05e49e
Let a state create a key with its own time to live, so a pulse, a settle or a hold bound expires on the bus with no timer (issue 1952 S6, ADR 0564 clauses 4, 7, 13)
jschoubben2026-10-29 21:36:11 +01:00
4fff214eeb
Give the condition keeper the controller's condition bodies, the findings layout and the take-over key, so readers change only the seat they hear (issue 1952 S2-S4, ADR 0564 clauses 2, 3, 7-9)
jschoubben2026-10-29 21:35:16 +01:00
187fb63439
Add the four health seats, mesh-conditions, mesh-watchdogs, mesh-self-check and mesh-healers, so the controller's health has homes its lease does not hold (issue 1952 S1, ADR 0564 clause 1)
jschoubben2026-10-29 21:35:16 +01:00
22c9ddd32b
A runtime that already dropped a carried module's tools serves them again, read from what runs and its build (issue 1126, review)
fix/1126-held-tools
jschoubben2026-10-29 01:37:47 +01:00
94cee5d199
A data flag that differs alone moves no data: the judgement reads the data items first, and says the flag loudly (issue 1126)
jschoubben2026-10-29 01:36:17 +01:00
52056010fe
A module composed as what runs of it serves its tools as they run, so the runtime no longer drops it (issue 1126)
jschoubben2026-10-29 01:30:50 +01:00
307b6234e6
Merge pull request 'A held module offers what it runs, and its hold no longer spreads to the modules that read from it (issue 1960)' (#131) from fix/1960-no-hold-spread into main
mesh-tools2026-10-29 15:35:24 +00:00
dbcaa29a1a
Never hold a module because a module it reads from is held: it composes with what the held one last offered (issue 1960)
jschoubben2026-10-29 15:54:21 +01:00
b6768dad25
A data flag that differs alone moves no data: the judgement reads the data items first, and says the flag loudly (issue 1126)
jschoubben2026-10-29 01:36:17 +01:00
f50e004e8d
A module composed as what runs of it serves its tools as they run, so the runtime no longer drops it (issue 1126)
jschoubben2026-10-29 01:30:50 +01:00
394fec8a63
Merge pull request 'A held module composes only as what runs of it, so its hold no longer spreads to the modules that use it (issue 1126)' (#128) from fix/1126-held-as-runs into main
mesh-tools2026-10-29 00:07:03 +00:00
c2999a4e13
A held module is no dependence of its neighbours: its hold stops spreading (issue 1126)
jschoubben2026-10-29 00:49:00 +01:00
261f41aec1
A check ask may ask the merge alone, so the checker can name every group member that does not merge in one verdict
jschoubben2026-10-29 00:07:18 +01:00
d4c61ee8ff
Merge pull request 'The seed leaves a module as it runs today when it is held, failed or at an old-form build, and the modules held only behind it too (issue 1126)' (#127) from fix/1126-seed-oldbuild into main
mesh-tools2026-10-28 23:05:04 +00:00
76f7c4d223
A stub keeps its items and their templates, so a held module still contributes to other modules' collections; it drops only the templates for its own files (issue 1126)
jschoubben2026-10-28 23:56:33 +01:00
f609be7864
Keep as today what a node keeps today and what is held only behind it, saying how; a stub hands and collects nothing of its own (issue 1126)
jschoubben2026-10-28 23:49:22 +01:00
d747c1128e
Merge pull request 'L3: the vault mints bus accounts, the grants part and the node seat node-engine (issue 774, ADR 0561), rebased onto L2' (#126) from feat/774-vault-mints-sdk into main
mesh-tools2026-10-28 22:27:36 +00:00
f9afe32888
Merge pull request 'A node's answer holds as today what it holds today, and the seed carries its nodes' differences, named (issue 1126)' (#125) from fix/1126-seed-sdk into main
mesh-tools2026-10-28 21:59:48 +00:00
e84a121b8a
Let the seed carry the differences its nodes found, each named in its brief for the operator to approve knowingly; a refusal or silence still fails (issue 1126)
jschoubben2026-10-28 22:24:57 +01:00
06b13ec1cc
Show in a proposal's brief what stays held as each node holds it today (issue 1126)
jschoubben2026-10-28 22:17:57 +01:00
0830fcb25e
Hold that a refused module not held today keeps the answer refused (issue 1126)
jschoubben2026-10-28 22:17:40 +01:00