Commit Graph

  • 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 jschoubben 2026-10-30 18:12:47 +00:00
  • a37181261c Never ask a call again that its callee answered, whatever its words (issue 774) jschoubben 2026-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) jschoubben 2026-10-30 18:35:54 +01:00
  • ef1ec1c935 Name mesh-config among the controller's lease readers (issue 774) jschoubben 2026-10-30 18:26:23 +01:00
  • 942f906222 Judge only the verbs of a mesh seat a module invokes, not its holder (issue 774) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-10-30 18:15:46 +01:00
  • 7115b7bf64 Refuse a catalogue where a module invokes a seat verb nothing answers (issue 774) jschoubben 2026-10-30 18:11:19 +01:00
  • e703e9b0e2 Judge every read for its reader where the bus's users are composed (issue 774) jschoubben 2026-10-30 18:08:02 +01:00
  • 7b02f63daf Refuse a key-value write too large for its bucket before it is put (issue 774) jschoubben 2026-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) jschoubben 2026-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 jschoubben 2026-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) jschoubben 2026-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 jschoubben 2026-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) jschoubben 2026-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 jschoubben 2026-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) jschoubben 2026-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 jschoubben 2026-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 jschoubben 2026-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 jschoubben 2026-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-tools 2026-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 jschoubben 2026-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 jschoubben 2026-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 jschoubben 2026-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) jschoubben 2026-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-tools 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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 jschoubben 2026-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) jschoubben 2026-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) jschoubben 2026-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-tools 2026-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) jschoubben 2026-10-29 15:54:21 +01:00
  • 575cb82fba 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-contributes fix/1126-924-held-and-judged jschoubben 2026-10-29 01:37:47 +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) jschoubben 2026-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) jschoubben 2026-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-tools 2026-10-29 00:07:03 +00:00
  • 979f2cd718 buildstep: keep a check ask's cache layer out of every step's reach, move through an os.Root, and layer the build cache alone fix/check-names-every-conflict jschoubben 2026-10-29 01:04:20 +01:00
  • 62a50ebcf8 buildstep: keep what one command of an ask writes into the caches for its later commands jschoubben 2026-10-29 00:51:26 +01:00
  • 2a86701891 buildstep: keep what one command of an ask writes into the caches for its later commands fix/check-speed-s2 jschoubben 2026-10-29 00:51:26 +01:00
  • c2999a4e13 A held module is no dependence of its neighbours: its hold stops spreading (issue 1126) jschoubben 2026-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 jschoubben 2026-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-tools 2026-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) jschoubben 2026-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) jschoubben 2026-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-tools 2026-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-tools 2026-10-28 21:59:48 +00:00
  • 77b48a4f1a Name in the seed's brief the first differing field's value as it runs and as composed, so the operator sees what changes (issue 1126) fix/1126-seed-held fix/1126-seed-differs jschoubben 2026-10-28 22:26:05 +01: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) jschoubben 2026-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) jschoubben 2026-10-28 22:17:57 +01:00
  • 0830fcb25e Hold that a refused module not held today keeps the answer refused (issue 1126) jschoubben 2026-10-28 22:17:40 +01:00