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)
jschoubben2026-10-27 21:12:13 +01:00
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)
jschoubben2026-10-27 21:03:17 +01:00
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)
jschoubben2026-10-27 20:57:58 +01:00
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
mesh-tools2026-10-27 19:49:19 +00:00
8ad9372b19
Name another module's own-stream subject in the SDK too (issue 1242)
jschoubben2026-10-27 20:38:20 +01:00
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)
jschoubben2026-10-27 20:36:14 +01:00
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
mesh-tools2026-10-27 08:09:03 +00:00
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)
jschoubben2026-10-27 08:50:26 +01:00
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
mesh-tools2026-10-27 07:21:03 +00:00
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
mesh-tools2026-10-27 07:19:36 +00:00
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)
jschoubben2026-10-27 02:43:10 +01:00
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)
jschoubben2026-10-27 02:27:04 +01:00
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)
jschoubben2026-10-27 02:22:59 +01:00
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)
jschoubben2026-10-27 02:19:27 +01:00
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)
jschoubben2026-10-27 02:12:11 +01:00
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)
jschoubben2026-10-27 02:07:47 +01:00
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)
jschoubben2026-10-27 02:04:01 +01:00
db1007ffdd
Delete a gone process's ask key instead of ending it, so its redelivery still answers the asker (issue 1890)
jochen2026-10-27 01:29:48 +01:00
981a35b598
End a step left by a previous process at once: every step names its owner (issue 1890)
jochen2026-10-27 01:19:29 +01:00
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
mesh-tools2026-10-26 23:44:13 +00:00
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)
jschoubben2026-10-27 00:34:30 +01:00
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
mesh-tools2026-10-26 22:00:44 +00:00
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
mesh-tools2026-10-26 21:48:43 +00:00
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)
vaultseat-next
jschoubben2026-10-26 22:38:58 +01:00
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
mesh-tools2026-10-26 21:11:05 +00:00
b4310dfb8e
Merge remote-tracking branch 'origin/main' into fix/delivery-records-true
jschoubben2026-10-26 22:04:42 +01:00
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
mesh-tools2026-10-26 20:58:44 +00:00
5f45175ed0
Merge remote-tracking branch 'origin/main' into feat/1126-nodes-compose
jschoubben2026-10-26 21:56:47 +01:00
18e541c1ba
The standing test allows 10 ms between the loop's clock and the test's stamp of an announcement
jschoubben2026-10-26 21:55:46 +01:00
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)
jschoubben2026-10-26 21:49:03 +01:00
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)
jschoubben2026-10-26 21:44:06 +01:00
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
mesh-tools2026-10-26 20:33:28 +00:00
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)
jschoubben2026-10-26 20:33:23 +01:00
805b4d9a35
Merge main into fix/capacity-follows-cpu-share: the build modules' binary refusal (sdk #99) beside the capacity work
jschoubben2026-10-26 21:26:58 +01:00
d00dac140b
A build module takes asks only within its node's build hours
jschoubben2026-10-26 21:19:16 +01:00
e44cbaf57f
A module with no floor holds no head back; a merge among its changes reads not yet on the machines (review of issue 1280, ADR 0556 clause 2)
jschoubben2026-10-26 21:12:48 +01:00
1f70c4c0aa
A settle ask's group begins with a colon, which no branch name holds, so a branch named settle/... still merges on its Approve (review of issue 1280)
jschoubben2026-10-26 21:12:24 +01:00
5ecda46124
A settle ask's group and the act its options bind, shared by the gate and the teller (ADR 0556 clause 5)
jschoubben2026-10-26 20:57:49 +01:00
aa8e9afc7c
A module's floor counts every running have, healthy or not; health stays in its words (ADR 0556 clause 2, insight)
jschoubben2026-10-26 20:52:01 +01:00
54a8afac73
The view's reach carries the reached head and each change's source revision; nothing records a merge as delivered (ADR 0556 v8)
jschoubben2026-10-26 20:48:24 +01:00
43de3c937d
Layouts of the indexer's taken and the view's reach, and the delivery seat's settle verb, so whether a merge is on the machines can be derived (issue 1280, ADR 0556)
jschoubben2026-10-26 20:44:49 +01:00
03dce12378
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)
jschoubben2026-10-26 20:33:23 +01:00
dae8e288d2
Merge pull request 'A change that adds a compiled binary is refused, in any repository (issue 1577)' (#99) from fix/1577-checker-refuses-binaries into main
mesh-tools2026-10-26 19:32:25 +00:00
dd9d9d5b5f
Compare haves with SameHave in the round-trip tests, now that a have carries a list (issue 1126)
jschoubben2026-10-26 20:20:12 +01:00
2c0ab3a592
A have carries the values a self-composing node's running composition holds sealed to its key, so its composer reuses them after a restart (review of L2, round 2; issue 1126, ADR 0547 §3)
jschoubben2026-10-26 20:19:54 +01:00
47a66e3c0d
Take a crashed file's cause only from what the run wrote after the last test, give a subtest's panic to that subtest, and keep the SDK's test count (issue 1901, review round 1)
jschoubben2026-10-26 20:17:42 +01:00
3968849b1b
Review of L2: the export is a placement file at its version with its modules (S1); a node asks the vault only when a module placed on it declares an own secret, so one with none composes whether or not the vault answers (H8's failure) (issue 1126)
jschoubben2026-10-26 20:08:32 +01:00
02f50bd9d6
A build seat's capacity follows its node's build CPU, and a running ask says its phases
jschoubben2026-10-26 19:52:54 +01:00
81ec7bd7de
Drop the failure contract's unused version constant: a result names its build module with By (issue 1901)
jschoubben2026-10-26 19:50:17 +01:00
fe11db9293
MergeInto also names programs a commit of the branch added and a later one removed: the merge commit would keep the blob in history (issue 1577)
jschoubben2026-10-26 19:47:17 +01:00
e40dd0f56a
One failure contract for a build step's failed test, its parsers and a conformance kit every build module runs (issue 1901)
jschoubben2026-10-26 19:45:35 +01:00
9713c3023a
Placement carries a settings-form module's config values, which mesh-config does not hold, and the export writes them (issue 1126, ADR 0555 §1): the media modules on one node would compose without them
jschoubben2026-10-26 19:38:37 +01:00
53c2def1a5
VaultSecretChanged is a variable (its seat is), and gofmt (issue 1126)
jschoubben2026-10-26 19:25:19 +01:00
f55b34febc
A node composing its own hears the vault's secret-changed, names and generations only (issue 1126, ADR 0547 §2)
jschoubben2026-10-26 19:25:09 +01:00
944a35d200
A node's record carries the mesh's own certificate as the machine holds it, and frombus composes with the composing node's (issue 1126, ADR 0555 §3)
jschoubben2026-10-26 19:23:06 +01:00
7d81e8326f
frombus gives the composing node's core credentials as the vault's boxes sealed to it, from the same own secrets (issue 1126, ADR 0349 §16, ADR 0550 §5)
jschoubben2026-10-26 19:22:58 +01:00
91413de335
compose names the pair credentials a node's composition reads as consumer and provider, and frombus asks them sealed before it composes (issue 1126, ADR 0550 §5)
jschoubben2026-10-26 19:18:46 +01:00
6447a1c6d4
placement-seed writes each node's first placement file from the controller's export, checked before anything is written, once (issue 1126, ADR 0549 §4, ADR 0555 §6)
jschoubben2026-10-26 19:17:45 +01:00
4d5f430224
A want the node composes itself says so (Self) and names the build alone; every other want names its composition as before, so no caller of the old form changes (issue 1126, ADR 0547 §2)
jschoubben2026-10-26 19:13:56 +01:00
dfe3ba9475
frombus exports a node's placement from a composition input, Input's inverse for what a person decides, and the controller's seat declares placement-export (issue 1126, ADR 0555 §6)
jschoubben2026-10-26 19:11:34 +01:00
f1d7c7377d
frombus reads the composing node's own secrets sealed to it, and node principals may ask the vault's own in their own name (issue 1126, ADR 0550 §5)
jschoubben2026-10-26 19:03:00 +01:00
22bc4dc8ef
MergeInto names the changed files that are compiled programs, read in the workspace, so a check can refuse build output (issue 1577)
jschoubben2026-10-26 18:59:35 +01:00
b72de2b75a
A node applying what it composed refuses a composition that stands in for anything its input lacks, the bus's user list alone held out (issue 1126, ADR 0547 §2)
jschoubben2026-10-26 18:59:05 +01:00
6df0dfe208
Node principals read what they compose their own modules from; the composer copy is held per user to the controller's grants plus exactly these (issue 1126, ADR 0547 §2, ADR 0549 §3)
jschoubben2026-10-26 18:44:06 +01:00
9532b78724
A node's own want names no composition from the second milestone: the node composes its own (issue 1126, ADR 0547 §2)
jschoubben2026-10-26 18:41:33 +01:00
e49309d61c
A want names the build alone from the second milestone, and the yes a person gave; a have waits for that yes with its judgement (issue 1126, ADR 0547 §2, §3)
jschoubben2026-10-26 18:39:46 +01:00
9789c8379a
Node principals read every node's own facts, where its record rides; the composer copy is checked to grant all the controller's grants and only that and the issue 1790 rows more (issue 1126, ADR 0555 §3)
jschoubben2026-10-26 18:33:36 +01:00
2b0689f654
A node's record rides in its own have key, <node>.node: no bucket, writer or grant of its own, and its key's change is what readers hear (issue 1126, ADR 0555 §3)
jschoubben2026-10-26 18:29:45 +01:00
5b1e990eb4
The tunnel found at adoption and the names of the hub's peers are kept in the placement; whether the hub took it over and who enrolled under a peer's key are read from placement and records, as the controller reads them (issue 1126, ADR 0555)
jschoubben2026-10-26 18:26:11 +01:00
a431746c0e
What a person decides of a node lives in its placement file and what the machine observes in its record; two nodes on one address or two hubs are refused (issue 1126, K2)
jschoubben2026-10-26 18:17:59 +01:00
5db53e738f
Name the catalogue repository whose placement files are read (issue 1126, ADR 0549 §1)
jschoubben2026-10-26 18:10:25 +01:00
9f7f50de8d
A merged message of the catalogue carries its placement files, so the indexer reads placement at the merge without asking the forge again (issue 1126, ADR 0549 §2)
jschoubben2026-10-26 18:08:59 +01:00
bdd4c7b875
The judgement of a move is a pure function in mesh-sdk, so a node agent judges what it composed against what it runs (issue 1126, ADR 0547 §3, ADR 0377 §3)
jschoubben2026-10-26 18:07:20 +01:00
e982072443
frombus fills the composition's input from placement, node records, the indexer's manifests and mesh-config's slice, so one composer serves the node agent, the check and the grants part (issue 1126, ADR 0547 §2, ADR 0549 §3)
jschoubben2026-10-26 18:06:04 +01:00
146cd858a3
Placement and the node record have one layout in mesh-sdk, so the indexer, the node agents and the composition check read them alike (issue 1126, ADR 0549 §1-§2, ADR 0547 §2)
jschoubben2026-10-26 18:02:13 +01:00
a7a1fbd34e
Merge pull request 'A module waits for a state created after it starts (issue 1790)' (#97) from fix/1790-state-appears into main
mesh-tools2026-10-26 14:47:31 +00:00
1888d1d230
Merge pull request 'A git or ssh-keygen failure keeps its own words (forgekey.Said)' (#96) from fix/fetch-reads-all into main
mesh-tools2026-10-26 14:47:25 +00:00
960d6c34d2
Merge pull request 'The composer gives build modules the node's share: idle, capped builds (issue 1806, ADR 0553/0554, change B)' (#95) from fix/build-cpu-yields-compose into main
mesh-tools2026-10-26 14:31:13 +00:00
ff81bdf8cc
Keep git's own words in a fetch's reason: a bare "error:" line no longer stands for the forge's refusal
jschoubben2026-10-26 15:12:24 +01:00
65ee43f075
Merge remote-tracking branch 'origin/main' into fix/1790-state-appears
jschoubben2026-10-26 15:24:34 +01:00
c3e8fc4ba6
process: an awaited bucket says loudly once when the bus refuses hearing its creation, and hears it again and binds at each reconnect (issue 1790, review)
jschoubben2026-10-26 15:24:33 +01:00
75be8acbad
Merge pull request 'Build seats yield: the decoder, buildcpu and NodeLimits (issue 1806, ADR 0553/0554, change A)' (#94) from fix/build-cpu-yields into main
mesh-tools2026-10-26 14:22:47 +00:00
d103ed88ab
Merge pull request 'forgekey: a command starts in a directory that exists (issue 734)' (#93) from fix/daemon-dir-kept into main
mesh-tools2026-10-26 14:15:57 +00:00
fd7d93333e
Keep a failed toolchain probe a loud refusal; only the command directory is fixed (issue 734, review round 1)
jschoubben2026-10-26 15:11:04 +01:00
d515c71e1c
process: a bucket missing at a part's start is bound when the bus says it was created, keeping what was written meanwhile; buscompose grants each principal the creation of the buckets it may bind (issue 1790)
jschoubben2026-10-26 15:11:00 +01:00
36061b5c56
Start commands in a directory that exists, and decline an ask whose toolchain could not be read (issue 734)
jschoubben2026-10-26 15:01:57 +01:00
4ef49d0391
Merge fix/build-cpu-yields into the composer half
jschoubben2026-10-26 14:46:11 +01:00
17b7cc480d
Merge main into fix/build-cpu-yields
jschoubben2026-10-26 14:46:01 +01:00
6ac8c5c229
The composer gives a build seat's holder its node's one share, the node-engine's build-cpu-share (ADR 0553 §3, §4)
jschoubben2026-10-26 14:42:20 +01:00
21252194d5
Merge pull request 'A check ask can name needs and packages, and a node that lacks a need declines it (issue 890, ADR 0552)' (#91) from feat/890-placement into main
mesh-tools2026-10-26 13:40:35 +00:00
545a0c9cb4
Merge pull request 'An asker of the build seats hears when its ask is given up, and the seat's users may read their own dead letters (issue 734)' (#92) from fix/734-lost-ask into main
mesh-tools2026-10-26 13:40:30 +00:00
527d87613e
Without the composer's share a step has no thread limit; with it, the share over the module's own capacity (ADR 0553 round 2)
jschoubben2026-10-26 14:39:39 +01:00
36c92861d2
Merge main into fix/build-cpu-yields
jschoubben2026-10-26 14:22:26 +01:00
852ba81c5a
Build seats yield to one shared slice per node; the composer half waits for the engines (ADR 0553, issue 1806)
jschoubben2026-10-26 14:20:05 +01:00
3203358c4c
buildrun: an asker keeps whether it hears DEAD_LETTERS, and its health tool answers from it (issue 734, review round 1)
jschoubben2026-10-26 14:18:41 +01:00
9b01c94a9e
buildrun: the asker hears DEAD_LETTERS again on its next reconnect or ask, in the background, and says whether it hears; buscompose grants only what a pulled ordered consumer needs (issue 734, review round 1)
jschoubben2026-10-26 14:16:58 +01:00
33395f68b3
Merge main (issue 1890's step records) into feat/890-placement: a decline begins its step with what it is
jschoubben2026-10-26 14:05:30 +01:00