jschoubben
820b4ee4c5
Merge remote-tracking branch 'origin/main' into final-pin
...
# Conflicts:
# modules/mesh-build-image/go.mod
# modules/mesh-build-image/go.sum
# modules/mesh-build-node/go.mod
# modules/mesh-build-node/go.sum
2026-10-30 01:12:22 +01:00
jschoubben
22ff0d1000
Pin the parse-only mesh-sdk 78c9ec8 in the build modules, which read each manifest they build, so the new words are read first (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-catalog@f61265f7a0f3
mesh/delivery-group group fix/774-new-words-first merged: every member is merged
mesh/check pass 22ff0d1000f3 on 96b129e54441 | judged by the candidate's mesh-build-go at d351f9c41ff8
2026-10-30 00:39:37 +01:00
jschoubben
fc66555ecc
Keep the client filling secrets and reading the controller's assignments until the lease write; plans for held modules; warrant says yes
...
Review round 3 (issue 1954): the node-engine of today writes ${secret:} as given and the new one fills only
provision keys, so the client fills secrets this release; plans exist only for modules with a want, so a
module without a seat plan is read from the controller's assignment and never leaves for want of one, and
the holder composes held modules at the build they run; the SDK's provider lets go only on "yes".
2026-10-30 00:25:12 +01:00
jschoubben
9cb177cae6
Pin mesh-sdk 6e4a301 in the modules the release changes, and keep the others on their pins (issue 774)
2026-10-30 00:23:45 +01:00
jschoubben
7d43574783
Pin mesh-sdk 6e4a301 in the build modules, which read each manifest they build, so the new words are read first (issue 774)
2026-10-30 00:23:30 +01:00
jschoubben
fe52629c28
Keep unchanged modules on their pins, so the delivery moves only what this release changes (issue 774)
2026-10-30 00:15:44 +01:00
jschoubben
1b16720030
Pin mesh-sdk 007b6fd, the release's final head (issue 774)
2026-10-30 00:10:13 +01:00
jschoubben
8ae8e88ddd
mesh-self-check: the setting probes is read by the module's code at runtime (ADR 0348 §5)
2026-10-30 00:05:05 +01:00
jschoubben
8432cb844f
Merge remote-tracking branch 'origin/feat/774-l3-reland' into merge-leaves
2026-10-30 00:04:42 +01:00
jschoubben
818f8d2616
mesh-self-check: the setting probes lists the probes that run, D13 and D-fill by default; one unlisted runs nothing and the verb says it is off by setting (the operator, 2026-10-30)
2026-10-30 00:04:41 +01:00
jschoubben
475ffdcb33
gitea waits and keeps serving while its keys are unread; pin mesh-sdk 007b6fd
...
After a restart the forge-account provider returned a plain error, which the helper writes as failed
with its values cleared, so every consumer lost its forge entry until the keys loaded. provider.ErrNotReady
keeps the entry serving, in waits (issue 1954).
2026-10-30 00:04:14 +01:00
jschoubben
5a1916cb46
Merge remote-tracking branch 'origin/feat/774-l3-reland' into merge-leaves
2026-10-30 00:02:54 +01:00
jschoubben
c1eb7783e8
Pin the newest mesh-sdk in the modules of the leaves (issue 1955)
2026-10-30 00:02:39 +01:00
jschoubben
cb7a5c9939
mesh-provisioner composes through fromruntime's reader; pin mesh-sdk fa5a6ae across A3's modules
...
The SDK now reads a module's `reads` through the runtime, so busread.go's own copy goes, and the
manifest is held to frombus.StatesReads (issue 1954).
2026-10-30 00:02:38 +01:00
jschoubben
0e32f95492
Merge branch 'feat/774-l3-reland-leaves' into merge-leaves
2026-10-30 00:01:12 +01:00
jschoubben
a783ffa497
Carry the kinds of D-root, D11 and D13's data held twice, which the operator dropped too, until the lease write (issue 1952)
2026-10-30 00:00:53 +01:00
jschoubben
0c0e8960d8
Carry the kinds of the probes the operator dropped (D2, D3, D4, D12, D-heard) until the lease write, so compare names them as ending with the controller and never as missing (issue 1952)
2026-10-30 00:00:09 +01:00
jschoubben
4a329f0443
Providers read the seat's plans and retire only on the operator's yes, removing the credential
...
ADR 0570 clauses 2 and 5: gitea, keycloak, postgres and route-adapter read mesh-provisioner.plans and
.provisions instead of the controller's assignments. postgres hands the database to a keeper and drops the
login; keycloak replaces the client's secret and keeps the client, so the data stays (issue 1954, V4).
2026-10-30 00:00:00 +01:00
jschoubben
6e5fd647c0
mesh-self-check: D13 raises empty-replacement and cleanup-waiting for retired readings and counts a missing backup from the first measurement; sdk 31e90aa (issue 1952, ADR 0233)
2026-10-29 23:58:11 +01:00
jschoubben
60231234a5
disk-load: keep a reading of an item no longer declared, retired with when and why, and clear it when declared again; sdk 31e90aa (issue 1955, ADR 0233)
2026-10-29 23:57:18 +01:00
jschoubben
936e7308bf
mesh-self-check: give D-fill's written-finding fixture its severity, so the row keeping a fill between the thresholds reads the finding it wrote (issue 1952)
2026-10-29 23:56:20 +01:00
jschoubben
62b53c2eda
docker: ask the seat mesh-artifact-sweep for the images a machine's declarations name, as ADR 0121 names the seat (issue 1955)
2026-10-29 23:55:58 +01:00
jschoubben
c2209864ee
mesh-self-check: D-fill judges every module's bucket and log against its cap from the bus module's nats_streams, with the controller's kind, key and words (issue 1952, ADR 0297 §6)
...
Its registry row and test rows are already in f7f02abb; this is the probe they call. Each KV_<module>_<name> and
LOG_<module>_<name> stream is said filling at three quarters of its max_bytes, and kept while a finding is written
until under seven tenths. One read of every stream, so the bus module not answering is the probe failing to run, which
clears nothing; bucket-or-log-unread is not raised.
2026-10-29 23:55:50 +01:00
jschoubben
50d46f6e94
Hold the seat by its name mesh-artifact-sweep, as ADR 0121 names a mesh seat for its scope (issue 1955, ADR 0571 clause 2)
2026-10-29 23:55:15 +01:00
jschoubben
f7f02abbb3
mesh-self-check: D13 judges the data from disk-load's readings, restic's last good nights and the indexer's manifests, with the controller's kinds, keys and words (issue 1952, ADR 0233)
2026-10-29 23:54:54 +01:00
jschoubben
89f63b3ab8
mesh-self-check: DA judges each machine's agent account on its engine's own report, so the probe moves off the controller with its kind, key and words (issue 1952, ADR 0266)
...
The agent account a machine names comes from placement; the engine's verdicts on it from its health report
(mesh-host.health, NodeHealth.Root and Contract); whether that verdict is on now from the watchman's presence, since
the report is written on a change only. The judgement is the controller's: no report, not heard, an engine older than
the judging, no verdict, or any verdict not healthy is not confined; a verdict waiting for the setuid search is quiet
for twelve hours from when this self-check first saw it waiting. machine.<node>.agent-root, urgent, the controller's
words. Rows in TestTheBusProbes; pins mesh-sdk f3677eb.
2026-10-29 23:52:17 +01:00
jschoubben
542c3214c6
mesh-provisioner-client: read plans from the seat, record no needs, leave ${secret:} for the node-engine
...
ADR 0570 clauses 1, 2 and 6 move the plan to mesh-provisioner_plans, fold needs into the seat and give
the node-engine the secret's fill, so the client no longer holds a value (issue 1954, V3).
2026-10-29 23:51:33 +01:00
jschoubben
63023ca5fe
Judge the store's mirror copies by what the builder's log says each build stood on, and the images a manifest pins by itself, so mirrors are recorded and image-missing covers what the controller judged (issue 1955, ADR 0571 clause 2)
2026-10-29 23:49:58 +01:00
jschoubben
cab031bf10
nats: nats_streams answers each stream's max_bytes beside its size (issue 1952)
2026-10-29 23:48:41 +01:00
jschoubben
f73f04b1e9
Remove the compiled programs of the build modules from the tree and ignore them (issue 1577)
2026-10-29 23:47:46 +01:00
jschoubben
86e1082fa0
restic: write each item's last good night when a night's files change, with no timer, on the sdk's layout; the night is judged by its unit and the awake process by the health tool (issue 1955)
2026-10-29 23:46:57 +01:00
jschoubben
de86f8123d
mesh-catalog: take builds in from the builder's log through builder_builds_since and its done keys, not the controller's built-before (issue 1955, ADR 0571 clause 9)
2026-10-29 23:46:57 +01:00
jschoubben
b1fa4855e6
restic: judge the night by its health tool again beside an awake process, and keep each item's last good night as its own state good (issue 1955, ADR 0571)
2026-10-29 23:46:57 +01:00
jschoubben
9d0ebe556e
disk-load: compose the node's data items through the sdk's runtime reader, not a copy of it (issue 1955)
2026-10-29 23:46:57 +01:00
jschoubben
ce8ea7bbe2
restic: the night process is judged by its unit; the module has no runtime account for a tool check to stand beside (issue 1955)
2026-10-29 23:46:56 +01:00
jschoubben
03938f8244
mounts: learn where the mesh keeps data from disk-load's readings, not the controller's data (issue 1955, ADR 0571 clause 3)
2026-10-29 23:46:56 +01:00
jschoubben
4ddf702145
nfs-server: learn the backup holder's data paths from disk-load's readings, not the controller's data (issue 1955, ADR 0571 clause 3)
2026-10-29 23:46:56 +01:00
jschoubben
44a3f24456
restic: read each item's reading and peak from disk-load's state and the item list from the sdk; the measuring leaves the backup holder (issue 1955, ADR 0571 clause 3)
2026-10-29 23:46:56 +01:00
jschoubben
f149768f5d
disk-load: take the node's data items from the bus and the readings layout from the sdk, with no composed file (issue 1955, ADR 0571 clause 3)
2026-10-29 23:46:56 +01:00
jschoubben
45902cd728
minio: read who holds a seat from the placement seat's state, not the controller's seats (issue 1955, ADR 0571 clause 4)
2026-10-29 23:46:55 +01:00
jschoubben
34a6932288
nfs-server: read the backup seat's holder from the placement seat's state, not the controller's seats (issue 1955, ADR 0571 clause 4)
2026-10-29 23:46:55 +01:00
jschoubben
7b5728b1f3
docker: ask the artifact-store seat for the images a machine's declarations name, not the controller (issue 1955, ADR 0571 clause 2)
2026-10-29 23:46:55 +01:00
jschoubben
3d3524dd69
mesh-watcher: read who holds the controller and the bus from the placement seat's state, not the controller's seats (issue 1955, ADR 0571 clause 4)
2026-10-29 23:46:55 +01:00
jschoubben
2802fdf783
disk-load: measure the node's data items and keep each reading and seven-day peak as its own state readings (issue 1955, ADR 0571 clause 3)
2026-10-29 23:46:55 +01:00
jschoubben
c2a6a6f6dd
Read the seat artifact-store's findings in the condition keeper, so S25's image-missing comes from its holder and not the controller (issue 1955, ADR 0571 clause 2)
2026-10-29 23:45:09 +01:00
jschoubben
1b1019972d
Hold the seat artifact-store in artifact-store-tools: the keep set from the store's listing, the wants and each module's five newest builds, the sweep at a build's end once the lease names no controller with each deletion recorded, and S25's image-missing (issue 1955, ADR 0571 clause 2)
2026-10-29 23:44:39 +01:00
jschoubben
1ba6c0de27
mesh-self-check: D8 reads placement's addresses and endpoints and asks each heard holder's ban list, so the probe moves off the controller with its kind, key and words (issue 1952, ADR 0564 §6)
...
The mesh's own addresses come from placement (each node's private address and its endpoint); who holds
node-intrusion-prevention, from seat-holders; who is heard, from the watchman's presence. Each heard holder is asked
seat:node-intrusion-prevention.banned@<node>, all at once. The finding is the controller's: machine.<node>.bans-the-mesh,
urgent, the same summary and words. A heard holder that does not answer makes the probe fail to run, never pass.
Rows in TestTheBusProbes; the manifest reads and invokes what the code does.
2026-10-29 23:44:35 +01:00
jschoubben
bb18541469
The vault reads each plan from mesh-provisioner, says each credential's outcome in its own bound state, mints nothing for form none, and answers rotate and issued for any proven caller (issue 1954)
...
Each outcome names the value by the vault's own name and generation, never the value; held is provided, issued or given waits, an entry goes only on a retiring key's Approve. The vault no longer reads the controller's assignments, so it leaves the list of their readers. Pins mesh-sdk 6b8c694.
2026-10-29 22:58:53 +01:00
jschoubben
a95ad78a9a
Carry plan-failed and stalled until the lease write as kinds that end with the controller, as the lead decided, so compare names no kind without a home (issue 1952)
2026-10-29 22:53:53 +01:00
jschoubben
1b1a94f35b
Give every alert kind the controller raises its home in the keeper's table, as the lead settled them under the operator's yes, so compare names no kind without one (issue 1952)
2026-10-29 22:52:54 +01:00