86be014907
mesh-build-go, mesh-build-node: Pin mesh-sdk at 43788bb, the group's head: a check ask runs every level after a failure
jschoubben2026-11-02 16:33:12 +01:00
06358f94bd
mesh-build-go: a unit level whose gofmt or vet fails still runs its tests, so one check names every failure
jschoubben2026-11-02 16:17:41 +01:00
c52afdf88b
Merge pull request 'The vault makes the first credential of every new consumer, as the controller did (issue 1126)' (#595) from fix/1126-provision-credentials into main
mesh-tools2026-11-02 15:31:37 +00:00
019614aedc
mesh-vault: make a new consumer's first credential whether or not it is handed
jschoubben2026-11-02 15:37:23 +01:00
fe7c5ccb64
Merge pull request 'Modules without the controller: vault judges each sensitive caller, nox records its hand acts, provisioner binds ahead of the want (issue 1126 group B)' (#594) from feat/1126-removal into main
mesh-tools2026-11-02 13:40:53 +00:00
fa6dc3a48b
Retake a pin whose forge listing failed, naming the forge's cause
jschoubben2026-11-02 12:52:10 +01:00
7c5df1d7aa
Decide a pin on a pull request head from the forge, not from go's words
jschoubben2026-11-02 12:49:38 +01:00
7f8701637f
Pin mesh-sdk to the group head of issue 1126
jschoubben2026-11-02 12:27:34 +01:00
067f2f4d61
Record no hand act for a cleanup that deletes nothing
jschoubben2026-11-02 12:24:41 +01:00
0ef81d85b3
Count nox's warrant acts for a vault verb as the operator's decisions
jschoubben2026-11-02 12:23:02 +01:00
04379702e5
Pin mesh-sdk to the group head of issue 1126
jschoubben2026-11-02 12:20:14 +01:00
9a3ead8fcd
Carry the plan entry only on a key no plan names
jschoubben2026-11-02 12:18:38 +01:00
fda81c129e
Key each provision with the plan entry it is composed from
jschoubben2026-11-02 12:17:27 +01:00
ecc7621274
Privilege no caller named controller in the vault; match a hand act's verb exactly
jschoubben2026-11-02 12:13:00 +01:00
3ed3266dde
End healers H3 and H4 and the bus-health probe's consumer half with the controller
jschoubben2026-11-02 12:07:26 +01:00
9e9877e6ec
Let one hand act warrant a retirement of several consumers
jschoubben2026-11-02 12:05:27 +01:00
0f0ec66e9a
nox records the hand act a sensitive vault verb is warranted by
jschoubben2026-11-02 12:05:09 +01:00
344fc6f6bf
End the self-check's bus-consumer probe, whose consumers were the controller's
jschoubben2026-11-02 12:04:30 +01:00
70396caeab
Pin mesh-sdk to the group head of issue 1126
jschoubben2026-11-02 11:56:55 +01:00
4aa24ba013
Drop mesh-conditions' use of operator-channel, since nothing in it asks the operator
jschoubben2026-11-02 11:55:54 +01:00
067117b8b8
Point the nats README's bus upgrade at the assigner's put and mesh-wants, since the controller's bus verb ended
jschoubben2026-11-02 11:55:54 +01:00
e7b3fd470b
Prove the bus tools' removals on the grant mesh-sdk composes
jschoubben2026-11-02 11:52:51 +01:00
f8e4c1b0ae
Stop serving the vault's move-asks, which only the controller called
jschoubben2026-11-02 11:49:55 +01:00
a73b02ea30
Drop the keeper's and config's take-over verbs with the controller's sources
jschoubben2026-11-02 11:47:44 +01:00
f83e6e4713
Make each sensitive vault verb judge its own caller
jschoubben2026-11-02 11:42:37 +01:00
f723d4372f
Let claude-code read its tools and machines from the bus, not the controller
jschoubben2026-11-02 11:37:53 +01:00
b44e600e87
Drop artifact-store-tools' controller client; the provisioner client reads placement
jschoubben2026-11-02 11:33:31 +01:00
ab610ffed4
Read a go download failure as a pin on a pull request head only when go does not know the revision, so a network failure is retaken and says its own cause
jschoubben2026-11-02 01:48:48 +01:00
c4a6452f21
Give mesh-mail-reader's two acceptance tests a due date a week from now, so they do not expire
jschoubben2026-11-02 02:54:35 +01:00
e009088150
Point messenger, mesh-watcher, restic and mesh-issues away from the controller
jschoubben2026-11-02 11:26:29 +01:00
40c4fabff6
Let the bus tools remove the controller's leftovers by one word
jschoubben2026-11-02 11:23:41 +01:00
0bfc72d230
Make the controller checks strict: nothing names the placed-nowhere controller
jschoubben2026-11-02 11:21:51 +01:00
32c4c52261
Merge pull request 'nox works without the controller: each command calls the seat or tool that owns its job (issue 1126)' (#593) from fix/1126-nox into main
mesh-tools2026-11-02 10:56:31 +00:00
d2de18fd6b
Merge pull request 'Without the controller: the vault retires and rotates, the healers act, the artifact store is swept, config and conditions stand alone (issue 1126)' (#592) from fix/1126-gates-catalog into main
mesh-tools2026-11-02 10:36:34 +00:00
63de1f7e0d
nox cleanup delete confirms with the holder's name, as the vault asks
jschoubben2026-11-02 10:47:56 +01:00
9523050a98
nox nodes reads placement with the console's answered-by line after it
jschoubben2026-11-02 10:44:43 +01:00
326897d877
mesh-config and mesh-conditions without the controller's lease
jschoubben2026-11-02 10:43:52 +01:00
a3e9f2cc0f
mesh-cli requires the console's endpoint and writes its address
jschoubben2026-11-02 10:42:03 +01:00
5cdf8295f3
nox calls the seats that own each job, not the unassigned controller
jschoubben2026-11-02 10:40:52 +01:00
0e6c358623
mesh-healers act and artifact-store-tools sweeps without the controller's lease
jschoubben2026-11-02 10:38:58 +01:00
fe7d4504bf
mesh-vault: retire and rotate without the controller's lease
jschoubben2026-11-02 10:35:59 +01:00
db104bdb08
Merge pull request 'The vault mints a joining node's token, account and certificate, and rotates a node's login over two; nox enrol open (issue 774)' (#591) from feat/l3-enrol into main
mesh-tools2026-11-02 07:56:27 +00:00
c84dfb5e0b
Pin mesh-sdk at dff0ce2, the enrolment group's rebased head, so every member builds the same contract (issue 774)
jschoubben2026-11-02 01:44:05 +01:00
67e4d4b062
Name the vault's enrolment wire test by its acceptance criteria alone, not by a review round (issue 774)
jschoubben2026-11-02 01:42:29 +01:00
f41a5a8df1
Vault: keep a rotation's hand acts in mesh-sdk's NodeLogin.Acts, and test a tunnel without its key or range
jschoubben2026-11-02 01:10:39 +01:00
09824b4839
Vault: answer the enrolment verbs in mesh-sdk's wire shapes, certify the serving key presented, record each rotation's hand act
jschoubben2026-11-02 01:03:19 +01:00
272eff8b39
Vault: take the node-logins key and the enrolment token from mesh-sdk's contract
jschoubben2026-11-02 00:29:28 +01:00
9249ca7b57
mesh-cli: nox enrol open opens a sealed enrolment token locally with the operator's private key
jschoubben2026-11-02 00:27:02 +01:00
049bd176c3
Vault: enrolment token and node account, signing for enrolment, a node's two logins and their rotation, own hand-out of a login
jschoubben2026-11-02 00:26:21 +01:00
98e08c0dd0
Merge pull request 'Modules stop depending on the controller before the lease write (issue 774)' (#590) from feat/l3-removal into main
mesh-tools2026-11-02 00:35:23 +00:00
2c5e9c9a98
Pin mesh-sdk at c21d8fd, the removal group's head, so every member builds the same contract (issue 774)
jschoubben2026-11-02 00:53:42 +01:00
e4382d016e
mesh-conditions answers hand-back as gone and writes nothing: nothing reads the take-over key any more (ADR 0564 clause 9)
jschoubben2026-11-02 00:51:55 +01:00
2877b87f29
A catalogue test refuses a manifest that still depends on the controller at the lease write (ADR 0571 §13)
jschoubben2026-11-02 00:21:13 +01:00
a8c1c275dd
messenger hears and asks the condition keeper alone, never the controller (ADR 0564 clause 9)
jschoubben2026-11-02 00:19:58 +01:00
432de55186
mesh-hand-acts and mesh-healers stop reading the controller's hand-act log (ADR 0571 §13)
jschoubben2026-11-02 00:17:52 +01:00
2f52f91b5c
mesh-config stops reading the controller's predefined list and declared-config mirror (ADR 0565 §4)
jschoubben2026-11-02 00:15:43 +01:00
c1a32b4385
The condition keeper stops watching the controller's conditions (ADR 0564 clause 9)
jschoubben2026-11-02 00:13:19 +01:00
4497f26257
pacman reads a node's declared packages from the node-engine alone (ADR 0565 clause 6)
jschoubben2026-11-02 00:12:53 +01:00
fc5b849d85
The bus module sets and restores a key-value bucket's expiry (ADR 0582)
jschoubben2026-11-02 00:12:14 +01:00
ce3bedd584
Merge pull request 'pacman's mirror list keeps a fallback tail; a failed check leads the merge ask's headline (ADR 0586, issues 1876, 1166)' (#589) from fix/mirror-tail-headline into main
mesh-tools2026-11-01 18:04:05 +00:00
90f7f87c2a
Say a failed check first in the merge ask's headline, since a merge is not gated on the check and the headline is the phone's only warning (issue 1166)
jschoubben2026-11-01 18:06:27 +01:00
68b5febee7
Keep the freshest mirrors first and a tail of four more in pacman's shared list, so a node has a fallback (ADR 0586, issue 1876)
jschoubben2026-11-01 18:05:26 +01:00
3483f603ae
Merge pull request 'pacman keeps one mirror list for the mesh and reads each node's own packages; the provisioner composes once (ADR 0585, ADR 0565 §6, ADR 0570; issues 1876, 1953, 1954)' (#588) from feat/node-packages into main
mesh-tools2026-11-01 17:02:26 +00:00
5ccce4967a
Keep three timeout tests' upper bounds well under the production timeouts, so a timeout that falls back to production still fails (issue 1814, review round 3)
jschoubben2026-11-01 17:26:58 +01:00
b3fcf408f2
Make tests that wait for concurrent work wait on the event or a condition with a long deadline (issue 1814)
jschoubben2026-11-01 17:24:19 +01:00
3d1a450406
pacman starts a round's run only once the node's file holds the round's mirror list, and a refresh never writes after a round opened (ADR 0585 §2, §4; review round 1)
jschoubben2026-11-01 16:32:05 +01:00
7375d613b4
Pin pacman and mesh-provisioner to the group's mesh-sdk head b2a27ed5 (issues 1953, 1876, 1954)
jschoubben2026-11-01 16:24:04 +01:00
0471b2e105
Merge remote-tracking branch 'origin/main' into feat/node-packages
jschoubben2026-11-01 16:20:59 +01:00
2f8cb338ff
Merge branch 'feat/compose-once' of /home/jochen/projects/novox/mesh-catalog-compose into feat/node-packages
jschoubben2026-11-01 16:19:54 +01:00
a6c2f7b31a
mesh-provisioner: compose a node once and read its own states from the copy (issue 1954)
jschoubben2026-11-01 16:19:13 +01:00
2b495c4818
pacman keeps one mirror list for the mesh, ranked in the write that opens each round and written by every node (ADR 0585, issue 1876)
jschoubben2026-11-01 16:18:22 +01:00
37613ec6a9
pacman reads the node-engine's packages as mesh-host.packages, the bucket each engine writes (ADR 0565 clause 6, issue 1953)
jschoubben2026-11-01 16:09:50 +01:00
cff7588797
Merge pull request 'Agree a toolchain by strict majority; a node on another version sits out (ADR 0584, issue 1578)' (#587) from fix/toolchain-majority into main
mesh-tools2026-11-01 15:04:11 +00:00
f06335cf7e
Pin the Go and TypeScript build modules to mesh-sdk 67354f8: a check ask for another toolchain is declined too (ADR 0584, issue 1578)
jschoubben2026-11-01 15:38:27 +01:00
c414d27c42
Pin the Go and TypeScript build modules to mesh-sdk 71be15f so a node off the agreed toolchain declines the ask (ADR 0584, issue 1578)
jschoubben2026-11-01 15:28:57 +01:00
fc300e3d72
Merge pull request 'Readers leave the controller: hand acts, packages, compare, provisioner on the watched reader (design 47 L5-L7)' (#586) from feat/l5-l7-main into main
mesh-tools2026-11-01 13:53:20 +00:00
2002b08505
gitea: the check-owed test reads a missing consumes list as empty, since group A removed gitea's last consume
jschoubben2026-11-01 10:39:03 +01:00
6de5c6680e
Pin group A's mesh-sdk head on main
jschoubben2026-11-01 09:57:46 +01:00
4a6395feae
pacman falls back to the controller's mirror for every node when the engine's state cannot be read, and says the engine's error (ADR 0565 clause 6, review round 2)
jschoubben2026-11-01 03:55:20 +01:00
1db0181920
pacman reads the node-engine's packages first and the controller's mirror per node until the lease write; compare counts only an indexer that was read, and a forge not heard is said in the row (review round 1)
jschoubben2026-11-01 03:52:43 +01:00
8c07d2ef67
claude-code records its warrant through the hand-act seat, and the group's modules pin mesh-sdk at 8311ecb
jschoubben2026-11-01 03:36:56 +01:00
a673fc52a7
mesh-config compare: leave out merged or closed pull requests' candidates and a module with no manifest and no mirrored keys, so compare can come out empty (issue 1953 L5d, L5e)
jschoubben2026-11-01 03:20:48 +01:00
b0dc7e08de
mesh-provisioner recomposes a node when one of its haves changes, and pins mesh-sdk at 8311ecb
jschoubben2026-11-01 03:33:48 +01:00
aa4a4253ad
mesh-provisioner composes from one watched copy of its reads, not key by key
jschoubben2026-11-01 03:31:17 +01:00
cd7582a0f2
mesh-config and mesh-healers record into the hand-act seat alone, and gitea consumes no event of the controller (ADR 0565 clause 11, ADR 0571 clause 13, issues 1953 and 1955)
jschoubben2026-11-01 03:29:48 +01:00
1d3e2b8aca
pacman reads the node-engine's packages, not the controller's declared-packages mirror (ADR 0565 clause 6, issue 1953)
jschoubben2026-11-01 03:22:13 +01:00
462bcfe451
Merge pull request 'Catalog readers decode instead of judging; mesh-build-go builds against the asked package versions (ADR 0578, 0573 §2)' (#585) from feat/judge-once into main
mesh-tools2026-11-01 07:54:14 +00:00
7f5631b61d
pacman falls back to the controller's mirror for every node when the engine's state cannot be read, and says the engine's error (ADR 0565 clause 6, review round 2)
feat/l5-l7
jschoubben2026-11-01 03:55:20 +01:00
07284d5a42
pacman reads the node-engine's packages first and the controller's mirror per node until the lease write; compare counts only an indexer that was read, and a forge not heard is said in the row (review round 1)
jschoubben2026-11-01 03:52:43 +01:00
ac9380262d
mesh-provisioner pins mesh-sdk at c77d17f: a follower joining a watched state loses no change
jschoubben2026-11-01 03:52:17 +01:00
432326264f
artifact-store-tools: date the sweep test's builder log on the real clock
jschoubben2026-11-01 03:20:00 +01:00
816cf74764
claude-code records its warrant through the hand-act seat, and the group's modules pin mesh-sdk at 8311ecb
jschoubben2026-11-01 03:36:56 +01:00
ca37ee8faf
mesh-config compare: leave out merged or closed pull requests' candidates and a module with no manifest and no mirrored keys, so compare can come out empty (issue 1953 L5d, L5e)
jschoubben2026-11-01 03:20:48 +01:00
48b1711bd1
mesh-provisioner recomposes a node when one of its haves changes, and pins mesh-sdk at 8311ecb
jschoubben2026-11-01 03:33:48 +01:00
bfa6aedb35
mesh-provisioner composes from one watched copy of its reads, not key by key
jschoubben2026-11-01 03:31:17 +01:00
3e08301b27
Pin every module to the group's mesh-sdk head after the gofmt fix
jschoubben2026-11-01 03:30:59 +01:00
41beb29777
mesh-config and mesh-healers record into the hand-act seat alone, and gitea consumes no event of the controller (ADR 0565 clause 11, ADR 0571 clause 13, issues 1953 and 1955)
jschoubben2026-11-01 03:29:48 +01:00