jschoubben
06d4f45e18
Pin mesh-sdk cadd7b1, the group's final head, in every member module (issue 1126)
mesh/delivery merged: source.main moved to novox/mesh-delivery@2915d74822cd
mesh/delivery-group group feat/1126-l2b merged: every member is merged
mesh/check checking 06d4f45e1885 on 2915d74822cd | novox/mesh-delivery#85 in group feat/1126-l2b
2026-10-27 02:44:11 +01:00
jschoubben
77dacfbb17
Grant the node agents the placement candidates through the grants part at the group's sdk head, and show in indexer_placement the answer of every node placed at the head or on the trunk, so the seed's nodes can answer and be seen (issue 1126, ADR 0559 §3, §7; review round 1)
2026-10-27 02:43:00 +01:00
jschoubben
d8592d9a4f
Pin mesh-sdk 062c29c, the group's final head, in every member module that uses the candidate contract (issue 1126)
2026-10-27 02:30:16 +01:00
jschoubben
ea4a163187
Pin mesh-sdk a37d262, the group's head, in the bridge, the indexer and the view (issue 1126)
2026-10-27 02:29:28 +01:00
jschoubben
fc92202e04
Take a later composition into a verdict that failed only because placed nodes had not answered, so a sleeping node's answer passes the check on its event with no new check (issue 1126, ADR 0559 §5)
2026-10-27 02:29:20 +01:00
jschoubben
d8da56c6da
Compose a catalogue pull request's own placement in the assigner's check and fail it on any placed node's unintended difference, refusal or silence past ten minutes, so a placement change is proven equal to what runs before it merges (issue 1126, ADR 0559 §5)
2026-10-27 02:29:20 +01:00
jschoubben
c2b1ba4c5d
Pin mesh-sdk ba398e2, the group's head with the node's whole candidate answer (issue 1126)
2026-10-27 02:20:17 +01:00
jschoubben
04bb2d1398
Show placement candidates and each node's answer in indexer_placement, add indexer_placement_reread, and drop a group's candidates when its head changes no placement file, so a missed message or a revert is recoverable by tool (issue 1126, ADR 0559 §3, §7, §8)
2026-10-27 02:18:21 +01:00
jschoubben
ad60ba3a46
Write a catalogue pull request's changed placement as placement-candidates <group>.<node> and delete them when it merges or closes, so each placed node composes it in shadow and answers (issue 1126)
2026-10-27 02:13:55 +01:00
jschoubben
ea3eac51bd
Carry a catalogue pull request's placement files at its head when it touches placement/, so the indexer can write them as candidates for the nodes to answer before the merge (issue 1126)
2026-10-27 02:13:55 +01:00
mesh-tools
cacf537004
Merge pull request 'The checker's failure is the build step's failure, and a verdict that hides its failing test is refused (issue 1901)' ( #84 ) from fix/1901-failure-contract into main
2026-10-26 23:44:21 +00:00
jschoubben
f4a86f5884
Merge main into fix/1901-failure-contract: the checker pins mesh-sdk a2759ec, the group's sdk head (issue 1901)
mesh/delivery merged: source.main moved to novox/mesh-delivery@cacf537004c9
mesh/delivery-group group fix/1901-failure-contract merged: every member is merged
mesh/check checking f4a86f58843d on cacf537004c9 | novox/mesh-delivery#84 in group fix/1901-failure-contract
2026-10-27 00:39:35 +01:00
mesh-tools
9f1b227fb8
Merge pull request 'The indexer fills each repository's taken key from merges it applied or a drained stream's heads, so a merge heard while the state was missing reads on the machines (issue 1280)' ( #83 ) from fix/1280-indexer-fills-taken into main
2026-10-26 23:22:01 +00:00
jschoubben
6c79e456a1
The indexer confirms a forge message's ack with the server before it fills taken keys (issue 1280)
mesh/delivery merged: source.main moved to novox/mesh-delivery@9f1b227fb8c0
mesh/check checking 6c79e456a100 on 9f1b227fb8c0
2026-10-27 00:20:16 +01:00
jschoubben
0b980203fe
Taken keys are filled only from merges the indexer applied or a drained forge stream's heads (issue 1280)
2026-10-27 00:18:23 +01:00
jschoubben
73bf290f58
The indexer fills every repository's taken key from the source's head at start and when the state appears (issue 1280)
2026-10-27 00:14:41 +01:00
mesh-tools
475bb4bb0b
Merge pull request 'The view's tools read their own reach by its bare name, and a test holds every state the commands read to what is issued (issue 1280)' ( #82 ) from fix/1280-view-reads-its-reach into main
2026-10-26 22:48:25 +00:00
jschoubben
efadc691e7
The view's tools read their own reach by its bare name, as the mesh issues it, and a test holds every state the commands read to what is issued (issue 1280)
...
mesh/delivery merged: source.main moved to novox/mesh-delivery@475bb4bb0b8f
mesh/check being carried to efadc691e7ea on 475bb4bb0b8f | from 4af36c69a761
view_reach asked for mesh-delivery-view.reach, a name the mesh never issued, so it failed on the machines;
the same line was not gofmt'd, which failed the try of main. Quick fix: the name. Thorough for this module: the
manifest test now refuses any stdio.State literal in cmd/ that is neither an own state nor listed in reads.
2026-10-26 23:27:05 +01:00
mesh-tools
4af36c69a7
Merge pull request 'Delivery records are true at the source: the indexer records what it took in, the view derives what reached the machines, a settle verb for held deliveries (issue 1280)' ( #80 ) from fix/delivery-records-true into main
2026-10-26 21:48:50 +00:00
mesh-tools
bd107d2015
Merge pull request 'A version that fails on one machine while another runs it healthy is that machine's failure, and goes no further meanwhile (issue 1496, ADR 0557 §1-§3)' ( #81 ) from fix/1496-start-health into main
2026-10-26 21:37:58 +00:00
jschoubben
f007ca4227
A node that runs a version alone-failed elsewhere still gets its want at it (ADR 0557 §2, issue 1496)
...
mesh/delivery merged: source.main moved to novox/mesh-delivery@bd107d20154c
mesh/delivery-group group fix/1496-start-health merged: every member is merged
mesh/check checking f007ca42279a on 4b36cc29a6ae | novox/mesh-delivery#81 in group fix/1496-start-health
Review of 50c4674 : the bar on new wants naming F while a node fails it alone
also caught a node that runs F with no live want, the issue-1945 recovery path:
it went on neither list and its node-engine gave the module up. The bar now
holds only a node that neither wants nor runs F.
2026-10-26 22:34:25 +01:00
jschoubben
50c4674dfa
While a node fails a version alone, no further node gets a want for it (ADR 0557 §2, issue 1496)
...
ADR 0557 version 9: a failure that is one node's holds nothing and sets nothing
back, but the version reaches no node that does not want it yet until it is
over. A node whose want does not name F gets no new want naming it (rule 2, in
words naming the failing nodes); wants already written stay.
2026-10-26 22:30:00 +01:00
jschoubben
c12b870104
The indexer binds its taken state when it appears, as issue 1790 asks of every state a delivery adds: an indexer started before the bus holds it still takes merges in and says the key it did not write (issue 1280, ADR 0556 clause 1)
mesh/delivery merged: source.main moved to novox/mesh-delivery@4af36c69a761
mesh/delivery-group group fix/delivery-records-true merged: every member is merged
mesh/check checking c12b870104e8 on bd107d20154c | novox/mesh-delivery#80 in group fix/delivery-records-true
2026-10-26 22:25:39 +01:00
jschoubben
92aedb9365
The first pass after a start clears failed-alone for every module and known node (ADR 0557, issue 1496)
...
Review round 2 of 16e4e61 : gating the first-pass clear on a failed have left a
condition an earlier process raised standing for good once its node recovered
while no assigner watched. The first pass now clears it for every module and
every node the presence bucket knows, a quiet clear at the router for one that
is not open.
2026-10-26 22:21:00 +01:00
jschoubben
368204115c
Pin the teller at mesh-sdk 68d65e6, the group's sdk head merged with sdk main (issue 1280)
2026-10-26 22:20:45 +01:00
jschoubben
971cdb44e2
Merge remote-tracking branch 'origin/main' into fix/delivery-records-true
...
# Conflicts:
# modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go
# modules/mesh-delivery-indexer/go.mod
# modules/mesh-delivery-indexer/go.sum
# modules/mesh-delivery-indexer/manifest_test.go
# modules/mesh-delivery-indexer/module.json
# modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/main.go
# modules/mesh-delivery-view/go.mod
# modules/mesh-delivery-view/go.sum
# modules/mesh-delivery-view/internal/view/read.go
# modules/mesh-delivery-view/manifest_test.go
# modules/mesh-delivery-view/module.json
2026-10-26 22:20:45 +01:00
jschoubben
16e4e61a0f
Only an online healthy witness, and only a first failure, keep a version from being held; failed-alone clears when a node leaves (ADR 0557, issue 1496)
...
Review of 2ee7589 : a node that sleeps after running F healthy kept its stale
have as a witness, so F stayed unheld while it failed on the online nodes; and a
failed-alone condition was never cleared once its node left the module.
A witness must now be online by the watchman's presence. F failing on a second
node is no longer one node's failure: the hold and the set-back stand (ADR 0557
version 6, §2). A remembered failed-alone key whose node is no longer one of the
module's nodes is cleared once; the first pass after a start clears it for every
node the presence bucket knows, for a module with a failed have.
2026-10-26 22:16:38 +01:00
mesh-tools
4b36cc29a6
Merge pull request 'Placement from the catalogue: the bridge carries it, the indexer writes it, the assigner compares it (issue 1126)' ( #76 ) from feat/1126-nodes-compose into main
2026-10-26 21:11:26 +00:00
mesh-tools
31ddd09087
Merge pull request 'The checker ends a check whose heads no candidate holds, and starts a group's check once its heads settle (issue 1890)' ( #79 ) from fix/1890-end-superseded-checks into main
2026-10-26 21:10:56 +00:00
jschoubben
68173de8bd
Pin the indexer, the teller and the view at mesh-sdk b4310df: the delivery-records work merged with sdk main (issue 1280)
2026-10-26 22:08:40 +01:00
jschoubben
960e3309bc
Merge remote-tracking branch 'origin/main' into fix/delivery-records-true
...
# Conflicts:
# modules/mesh-delivery-view/go.mod
# modules/mesh-delivery-view/go.sum
2026-10-26 22:07:28 +01:00
jschoubben
2ee7589474
A version healthy on another node is not held for one node's failed health check (ADR 0557, issue 1496)
...
On ace, 2026-10-26 21:19, a newly assigned mesh-build-node failed its first
health check at 8a98386f (later 31be2f24) while shanks, g14 and novox had run it
healthy for an hour. Being first by name, ace was the canary, and the assigner
held the version and moved the three healthy nodes back.
A failed health check of the newest fingerprint now holds it only when no other
node's have names it healthy (ADR 0557 §2 keeps ADR 0429 §6's hold and set-back
for that case). Otherwise the failure is that node's (ADR 0557 §1): nothing is
held or set back, the node keeps its want, and the assigner raises the node's
condition once (failed-alone.<node>.<module>), naming the node, the module, the
fingerprint and the have's words, and clears it once when it ends; the first
pass after a start clears what a previous process may have raised.
2026-10-26 22:06:32 +01:00
jschoubben
297992a4ae
Pin mesh-sdk 9796444 (l2-next: feat/1126-nodes-compose merged with sdk main #101 , the standing-test race fixes) (issue 1126)
mesh/delivery merged: source.main moved to novox/mesh-delivery@4b36cc29a6ae
mesh/delivery-group group feat/1126-nodes-compose merged: every member is merged
mesh/check checking 297992a4ae55 on 4b36cc29a6ae | novox/mesh-delivery#76 in group feat/1126-nodes-compose
2026-10-26 22:05:41 +01:00
jschoubben
3f85230417
Pin mesh-sdk 5f45175 (l2-next: feat/1126-nodes-compose merged with sdk main) after merging main (issue 1126)
2026-10-26 21:59:21 +01:00
jschoubben
43c3158bc6
Merge remote-tracking branch 'origin/main' into feat/1126-nodes-compose
...
# Conflicts:
# modules/mesh-delivery-view/go.mod
# modules/mesh-delivery-view/go.sum
2026-10-26 21:57:03 +01:00
jschoubben
d95e9f3229
End a check whose heads no candidate holds, and start a group's check once its heads settle (issue 1890)
mesh/delivery merged: source.main moved to novox/mesh-delivery@31ddd090876f
mesh/check pass d95e9f322913 on d581f9659a78 | unit 191 run, 525 kept | integration 201 run, 591 kept | composition passed on novox
2026-10-26 21:44:12 +01:00
mesh-tools
d581f9659a
Merge pull request 'Tries record their asks; the try limit counts tries on a build node; build_usage shows capacity, hours and steps (issue 1890)' ( #78 ) from fix/capacity-follows-cpu-share into main
2026-10-26 20:33:34 +00:00
jschoubben
ea94f9234c
Merge remote-tracking branch 'origin/main' into fix/capacity-follows-cpu-share
mesh/delivery merged: source.main moved to novox/mesh-delivery@d581f9659a78
mesh/delivery-group group fix/capacity-follows-cpu-share merged: every member is merged
mesh/check checking ea94f9234c97 on 3dd94f714d6e | novox/mesh-delivery#78 in group fix/capacity-follows-cpu-share
2026-10-26 21:29:44 +01:00
jschoubben
c19468b04e
Pin the checker and the view at mesh-sdk 805b4d9: the capacity work merged with sdk main
2026-10-26 21:29:44 +01:00
jschoubben
c47afd8f4b
build_usage says a seat's build hours, and when it is outside them
...
mesh/delivery closed: a newer head of the same pull request
mesh/delivery-group group fix/capacity-follows-cpu-share checking: 1 of 3 member(s) ready
mesh/check checking c47afd8f4b88 on 3dd94f714d6e | novox/mesh-delivery#78 in group fix/capacity-follows-cpu-share
A build module's capacity.<node> now carries its node's build window (the operator, 2026-10-26: g14
builds only from 18:00 to 06:00); the seat shows it, outside it says it takes nothing new, and a
value the module cannot read shows as any hour with the value and why. The checker's and the view's
SDK pin moves to mesh-sdk d00dac1.
2026-10-26 21:22:36 +01:00
jschoubben
afd5a3ba07
A module a node wants and runs nothing countable of holds no head back; the reached head's event names its merges as not yet on the machines; pin mesh-sdk e44cbaf (review of issue 1280, ADR 0556 clause 2)
2026-10-26 21:15:31 +01:00
jschoubben
7dbad4c6d2
Pin mesh-sdk 33144781 (taken, reach, settle layouts) in the indexer, the view and the teller (issue 1280)
2026-10-26 21:05:29 +01:00
jschoubben
083a5042f6
The view reads the wants by module once per derivation of the reach
2026-10-26 21:03:56 +01:00
jschoubben
351ca7c290
The teller checks a settle ask's warrant against mesh-delivery.settle, the act its options bind (issue 1280, ADR 0556 clause 5)
2026-10-26 20:58:20 +01:00
jschoubben
f907be2c14
The view derives per repository up to which merge every node runs it, keeps it as its state reach and says each reached head, so a fix on the machines reads delivered (issue 1280, ADR 0556 clauses 2 and 3)
2026-10-26 20:56:12 +01:00
jschoubben
6201f58c20
The indexer says per repository the last merge it took in, so the view knows its modules speak for that merge (issue 1280, ADR 0556 clause 1)
2026-10-26 20:49:00 +01:00
jschoubben
8fee764c73
Pin mesh-sdk feat/1126-nodes-compose 03dce12, the group's head: the checker refuses a pin that is neither trunk nor the group's head (issue 1126)
mesh/delivery-group group feat/1126-nodes-compose checking: 4 of 6 member(s) ready
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 8fee764c734e on d581f9659a78 | novox/mesh-delivery#76 in group feat/1126-nodes-compose
2026-10-26 20:35:45 +01:00
mesh-tools
3dd94f714d
Merge pull request 'The checker fails any repository's change that adds a binary, in any commit (issue 1577)' ( #77 ) from fix/1577-checker-refuses-binaries into main
2026-10-26 19:32:27 +00:00
jschoubben
c716670be0
The checker pins the SDK of review round 1, and its hid-the-failure cases join the older build module's test (issue 1901)
2026-10-26 20:19:07 +01:00
jschoubben
352066dde6
Review of L2: the assigner binds the indexer's placement state when it appears, with no restart (D1); the three new unit tests folded into existing ones, so no count rises (D2); pin mesh-sdk 3968849 (issue 1126)
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 352066dde611 on 3dd94f714d6e | novox/mesh-delivery#76 in group feat/1126-nodes-compose
2026-10-26 20:12:00 +01:00