jschoubben
5a2eb2b480
Merge commit 'c527fc7' into asm-l3/774-vault-mints
2026-10-28 09:58:13 +01:00
jschoubben
18e2e05bb5
buscompose: the assigner may read the controller's lease, to choose where grants are read from (issue 774)
2026-10-28 09:11:27 +01:00
jschoubben
0b0c669b49
delivery: the grants part's grant keys and the source the assigner reads (a1; issue 774)
...
Why: the grants part writes grants.<module>.<fp> in shadow beside the controller's; the assigner switches source only when the lease is handed away.
2026-10-28 09:10:15 +01:00
jschoubben
c527fc7222
Checker seat test: the try replaces both shell commands (issue 774)
2026-10-28 09:09:58 +01:00
jschoubben
2a1ad896fa
Checker seat: the try's verb also replaces docker run postgres, as the controller's try did (ADR 0547 §10, issue 774)
2026-10-28 09:09:23 +01:00
jschoubben
3f7957e169
Merge commit 'a5d0e64' into feat/774-vault-mints
2026-10-27 23:01:44 +01:00
jschoubben
a5d0e64200
Checker seat test: fold into the closed-set seats test, no new test function (issue 774)
2026-10-27 23:00:38 +01:00
jschoubben
9fdd33b03e
Checker seat: the try's end by hand is a verb too (issue 774)
2026-10-27 22:49:44 +01:00
jschoubben
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)
2026-10-27 22:49:06 +01:00
jschoubben
d688f106e9
Name the vault's verb issue-account on its seat, so its holder may serve it (issue 774, ADR 0561 §9)
2026-10-27 22:42:53 +01:00
jschoubben
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)
2026-10-27 22:28:54 +01:00
jschoubben
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)
2026-10-27 22:19:53 +01:00
jschoubben
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)
2026-10-27 22:19:26 +01:00
mesh-tools
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
2026-10-27 20:32:30 +00:00
jschoubben
7a8e9f9706
Wait for a done key whose artifact names no reference, as the controller's take-in does, and hold the fold guard with a row (issue 1126, review round 1)
mesh/delivery merged: source.main moved to novox/mesh-sdk@d48365aed010
mesh/delivery-group group fix/1126-node-creds merged: every member is merged
mesh/check checking 7a8e9f970648 on d48365aed010 | novox/mesh-sdk#109 in group fix/1126-node-creds
2026-10-27 21:12:13 +01:00
jschoubben
d7a758894a
Leave a module the node runs inside its own composition to its manifest, as the fold composes it, so taking builds in moves no folded module (issue 1126)
2026-10-27 21:11:20 +01:00
jschoubben
04de3e5da2
Compose a node's own modules from their builds and read what providers elsewhere serve, so a self-composing node hands moved modules and settles served settings as the controller does (issue 1126)
...
frombus composed every module from the indexer's raw manifest: no moved module
was handed, so the node stood in for own secrets the vault leaves to the
provisioner (the seed's refusals on all four nodes), and a provider elsewhere
had no config values, so mailu's served domain refused shanks.
- takein: the controller's take-in of a done key (artifacts, launchers, the
templates archive's texts, Resolve) as one SDK rule; catalogue.Launchers holds
the launcher rule buildstep now delegates to.
- frombus: each module placed on the composing node, and each kept at another
build (Scope.KeptAt, a fingerprint), composes from its built manifest; another
node's modules give the keys their served values fill (Reader.Served).
- buscompose: Declared.Served and Principal.ServedReads grant every node the read
of exactly those keys of mesh-config_resolved.
- compose.ArtifactStoreAddress: the store as the node's composition routes to it.
2026-10-27 21:11:20 +01:00
mesh-tools
9f92233a28
Merge pull request 'process: a module's own bus connection, subjects and durable consumer in one helper (issue 1242)' ( #108 ) from fix/1242-bus-helper into main
2026-10-27 19:49:19 +00:00
jschoubben
8ad9372b19
Name another module's own-stream subject in the SDK too (issue 1242)
mesh/delivery merged: source.main moved to novox/mesh-sdk@9f92233a2890
mesh/delivery-group group fix/1242-bus-helper merged: every member is merged
mesh/check checking 8ad9372b1952 on a262c7dbe0ff | novox/mesh-sdk#108 in group fix/1242-bus-helper
2026-10-27 20:38:20 +01:00
jschoubben
3236cbad43
Give a module's own credential its dial, subjects and durable consumer in mesh-sdk, so a part no longer hand-writes them (issue 1242)
2026-10-27 20:36:14 +01:00
mesh-tools
a262c7dbe0
Merge pull request 'A node folds a placed module with no new-form build into its own composition, as the controller does, so the tunnel and the bus are not dropped when nodes compose themselves (issue 1126)' ( #107 ) from fix/1126-fold into main
2026-10-27 08:09:03 +00:00
jschoubben
05b6783103
Fold a module no new-form build names into the node's own composition, as the controller does, so a self-composing node keeps the tunnel and the bus (issue 1126)
...
mesh/delivery merged: source.main moved to novox/mesh-sdk@a262c7dbe0ff
mesh/delivery-group group fix/1126-fold merged: every member is merged
mesh/check checking 05b678310366 on 56de5ba84010 | novox/mesh-sdk#107 in group fix/1126-fold
mesh-wireguard (built by nobody) and every module a node runs inside its own
composition (Node.InOwn, from frombus.InOwn of what it runs) were cut out as
skipped: every node's shadow answered differs to the placement seed, and a node
composing itself after it would drop their resources. compositions now folds
them in place, module taken off, filled paths with them, as mesh-controller's
compositionsOf does; a want naming a new-form build still moves one out.
2026-10-27 08:50:26 +01:00
mesh-tools
56de5ba840
Merge pull request 'A placement change is answered by the nodes it places: the candidate contract, composing a given placement, and replicated seats in the placement check (issue 1126, ADR 0559)' ( #106 ) from feat/1126-l2b into main
2026-10-27 07:21:03 +00:00
mesh-tools
43eef46c41
Merge pull request 'A build step names the process that runs it, so a restarted build module clears what a gone process left running (issue 1890)' ( #105 ) from fix/1890-step-owner into main
2026-10-27 07:19:36 +00:00
jschoubben
cadd7b1b2f
Ask the vault in a candidate answer only for credentials of modules the node runs, and refuse a stand-in of a running module, so a placement that adds a module is answered as added (issue 1126, ADR 0559 §4)
mesh/delivery merged: source.main moved to novox/mesh-sdk@56de5ba84010
mesh/delivery-group group feat/1126-l2b merged: every member is merged
mesh/check being carried to cadd7b1b2f8f on 43eef46c4121 | from b0cbc4e6aca8, mesh-catalog 64530a8dcb08 | novox/mesh-sdk#106 in group feat/1126-l2b
2026-10-27 02:43:10 +01:00
jschoubben
062c29c3a2
Judge a node's own composition in its candidate answer only where it runs one, as its agent applies it only on a want (issue 1126)
2026-10-27 02:27:04 +01:00
jschoubben
a37d2622ed
Name the words of a composition failed only for an answer not heard, and what an answer's revision is, so the assigner and the checker judge a late answer alike (issue 1126)
2026-10-27 02:22:59 +01:00
jschoubben
ba398e2460
Answer a placement candidate as ADR 0559 has it: added and removed modules, per-module refusals, both digests of a difference, and a node's read of every candidate key (issue 1126)
2026-10-27 02:19:27 +01:00
jschoubben
82f10c3bc9
Let frombus and the composer compose with a given placement and compare a node's compositions with what it runs, so a placement candidate can be answered and checked (issue 1126)
2026-10-27 02:12:11 +01:00
jschoubben
7e99c354ac
Give a catalogue pull request's placement a candidate state and each node an answer in its own have, so a placement change is checked by the nodes it places before it merges (issue 1126)
2026-10-27 02:07:47 +01:00
jschoubben
8e81d87610
Let a replicated mesh seat be held on several nodes in CheckPlacements, so the seed of today's placement is not refused (issue 1126)
2026-10-27 02:04:01 +01:00
jochen
db1007ffdd
Delete a gone process's ask key instead of ending it, so its redelivery still answers the asker (issue 1890)
...
mesh/delivery merged: source.main moved to novox/mesh-sdk@43eef46c4121
mesh/delivery-group group fix/1890-step-owner merged: every member is merged
mesh/check pass db1007ffdda1 on b0cbc4e6aca8 | unit 6014 run, 233 kept, 16 skipped | integration 6067 run, 265 kept, 24 skipped | over bound: unit, in…
ADR 0525 §6 has the stream redeliver an ask whose node stopped, and the
asker takes the first end it reads: ending the key at a restart failed
checks a redelivery would still run. The sweep now deletes such a key,
guarded by the revision read, so the asker keeps waiting and the stale
key leaves the counts of what runs; a hand-started step of a gone owner
is still ended at once. A missing boot id is said once at start.
2026-10-27 01:29:48 +01:00
jochen
981a35b598
End a step left by a previous process at once: every step names its owner (issue 1890)
...
A delivery that replaced mesh-build-go left a check ask's key running, and
the new process's start sweep spared it as an ask younger than the step
bound, so it held a build slot until a hand end (issue 1890, note 21).
Each step now records its owner (boot id, pid, process start); the sweep
ends a running step of another owner at once and says its owner, while a
key with no owner keeps the earlier rule. The conformance kit gains the
left-running case every build module runs through its own start sweep.
2026-10-27 01:19:29 +01:00
mesh-tools
b0cbc4e6ac
Merge pull request 'A build step's failure contract: go -json and TAP parsers and a conformance kit every build module runs, so a verdict names the failing test (issue 1901)' ( #104 ) from fix/1901-failure-contract into main
2026-10-26 23:44:13 +00:00
jschoubben
a2759ec92e
Merge main into fix/1901-failure-contract: the capacity tests stay one function, so the SDK's test count does not grow (issue 1901)
mesh/delivery merged: source.main moved to novox/mesh-sdk@b0cbc4e6aca8
mesh/delivery-group group fix/1901-failure-contract merged: every member is merged
mesh/check checking a2759ec92ec9 on f178323b5790 | novox/mesh-sdk#104 in group fix/1901-failure-contract
2026-10-27 00:39:10 +01:00
mesh-tools
f178323b57
Merge pull request 'The mesh-vault seat promises own, the verb L2 gave the vault (issue 1126)' ( #103 ) from fix/1126-vault-seat-own into main
2026-10-26 22:00:44 +00:00
mesh-tools
684acb922d
Merge pull request 'Delivery records are true at the source: the layouts for what a repository's merges reached (issue 1280)' ( #102 ) from fix/delivery-records-true into main
2026-10-26 21:48:43 +00:00
jschoubben
e78e881ecb
The vault's seat promises own, which L2's vault serves and its claim names, so the controller's catalogue check passes (issue 1126)
...
mesh/delivery merged: source.main moved to novox/mesh-sdk@f178323b5790
mesh/delivery-group group fix/1126-vault-seat-own merged: every member is merged
mesh/check failed: unit: github.com/novox/mesh-controller/cmd/mesh-controller.TestModuleCheckPassesTheCatalogue: the catalogue does not pass its own c…
mesh-catalog's mesh-vault claims its seat serving own (a machine's node-engine asks its own machine's secrets and
pair credentials sealed to its stated key), and buscompose already grants that call to node principals
(AsksItsOwnSecrets, VaultOwn); only the seat's verb list lacked it, so a claim naming it was refused.
2026-10-26 22:38:58 +01:00
jschoubben
68d65e6bbf
Merge remote-tracking branch 'origin/main' into fix/delivery-records-true
mesh/delivery merged: source.main moved to novox/mesh-sdk@684acb922d99
mesh/delivery-group group fix/delivery-records-true merged: every member is merged
mesh/check checking 68d65e6bbf61 on 823d52051f03 | novox/mesh-sdk#102 in group fix/delivery-records-true
2026-10-26 22:19:13 +01:00
mesh-tools
823d52051f
Merge pull request 'Nodes compose: placement, node records and one composer input for three callers (issue 1126)' ( #98 ) from feat/1126-nodes-compose into main
2026-10-26 21:11:05 +00:00
jschoubben
b4310dfb8e
Merge remote-tracking branch 'origin/main' into fix/delivery-records-true
2026-10-26 22:04:42 +01:00
jschoubben
9796444201
Merge remote-tracking branch 'origin/main' into feat/1126-nodes-compose
...
mesh/delivery merged: source.main moved to novox/mesh-sdk@823d52051f03
mesh/delivery-group group feat/1126-nodes-compose merged: every member is merged
mesh/check checking 979644420117 on 7187beaf042b | novox/mesh-sdk#98 in group feat/1126-nodes-compose
# Conflicts:
# test/standing.test.ts
2026-10-26 22:03:26 +01:00
mesh-tools
7187beaf04
Merge pull request 'The provider loop's tests wait on what they mean, not on the clock (issue 1901 note 27)' ( #101 ) from fix/standing-test-races into main
2026-10-26 20:58:44 +00:00
jschoubben
5f45175ed0
Merge remote-tracking branch 'origin/main' into feat/1126-nodes-compose
2026-10-26 21:56:47 +01:00
jschoubben
18e541c1ba
The standing test allows 10 ms between the loop's clock and the test's stamp of an announcement
mesh/delivery merged: source.main moved to novox/mesh-sdk@7187beaf042b
mesh/check pass 18e541c1badc on 7187beaf042b | carried from 2cbe21937153 | a compiled program is not refused: mesh-build-node reported no programs | u…
2026-10-26 21:55:46 +01:00
jschoubben
cf930388f9
The standing test's runs last 0.6 of failingAfterMs of clock as well as two attempts, so a success that does not reset a run is caught; the addition test holds a thousand stable passes, so 'first pass' is proved (review of the standing test races)
2026-10-26 21:49:03 +01:00
jschoubben
36ae0c691b
The standing and retirement tests wait on what they mean, not on a slept fraction of a bound: announcements are timed from the clock at the moment they are said, short runs are counted in attempts, an addition is proved by a hold it must not wait for (the second timing race of one kind in a day; issue 1126)
2026-10-26 21:44:06 +01:00
mesh-tools
2cbe219371
Merge pull request 'A build seat's capacity follows its CPU share and its build hours; asks say their phases (issues 1890, 1806)' ( #100 ) from fix/capacity-follows-cpu-share into main
2026-10-26 20:33:28 +00:00
jschoubben
3a095a66be
The standing test keeps c failing alone after its ask is dropped, so its only recovery is its retirement: clearing every failure at once raced the loop's read of the new list under load (issue 1126; the hidden failure of try-1793042418286545971, issue 1901)
2026-10-26 21:33:20 +01:00
jschoubben
805b4d9a35
Merge main into fix/capacity-follows-cpu-share: the build modules' binary refusal (sdk #99 ) beside the capacity work
mesh/delivery merged: source.main moved to novox/mesh-sdk@2cbe21937153
mesh/delivery-group group fix/capacity-follows-cpu-share merged: every member is merged
mesh/check checking 805b4d9a3536 on dae8e288d2e1 | novox/mesh-sdk#100 in group fix/capacity-follows-cpu-share
2026-10-26 21:26:58 +01:00