jschoubben
67dcf252ec
Check a plan's credential form against mesh-sdk's one list, so the client takes plans naming none again (issue 774)
...
mesh/check checking 67dcf252ecfa on 82ac613b4ed0 | novox/mesh-catalog#564 in group fix/credential-forms-one-list
mesh/delivery merged: source.main moved to novox/mesh-catalog@72cee59acc32
mesh/delivery-group group fix/credential-forms-one-list merged: every member is merged
Since 13:55 the client refused every plan with credential-form none
(gitea's forge-account, the artifact store), and g14 and shanks placed no
files for mesh-build-go, mesh-build-node, mesh-build-image or ssh-client.
Second meeting of the credential-form list kind: the controller's copy was
fixed alone before. Thorough: one list in mesh-sdk; this client drops its
copy and pins mesh-sdk 9379e9a. A none entry is never a holder's issued
value: its bound values come from the provider's entry, and a secret named
for it fails loudly instead of waiting on a vault that mints nothing.
2026-10-30 16:06:46 +01:00
jschoubben
787563358b
Leave the engine's acts out of the bus tools' removals, so ace's tool runner, which carries the bundle on its own account, is no second writer and the grants part composes the bus's user list again (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-catalog@82ac613b4ed0
mesh/check checking 787563358b67 on 82ac613b4ed0
2026-10-30 12:34:22 +01:00
jschoubben
f3a57dcc56
mesh-self-check: the whole-run integration test answers the setting probes with the probes it asserts, since the default list is D13 and D-fill
mesh/delivery merged: source.main moved to novox/mesh-catalog@8f212e559a3e
mesh/delivery-group group feat/774-l3-reland merged: every member is merged
mesh/check checking f3a57dcc56fb on 1aa22efb0d78 | novox/mesh-catalog#560 in group feat/774-l3-reland
2026-10-30 10:21:28 +01:00
jschoubben
35ff67bda0
Design 47's last milestones: the keeper, self-check, healers, hand-acts, provisioner, vault, artifact sweep, disk readings, credential forms (issues 774, 1952, 1953, 1954, 1955)
...
mesh/delivery-group group feat/774-l3-reland rejected: composed together: the checker's verdict at the members' heads (b48c90fea31f): integration: mesh-self-ch…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-self-check/cmd/mesh-self-check.TestTheSelfCheckWholeRunsOnTheBus: the run answered {Run:doctor-1793351737-1 At:20…
One commit with exactly the tree of the reviewed head 35b4509c0a , on main 12c2574c9d , so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
2026-10-30 02:21:51 +01:00
jschoubben
8bf85863ce
gitea: raise the forge's sshd MaxStartups to 100:30:200, so a burst of the mesh's machines fetching at once is not dropped
mesh/check being carried to 8bf85863cedb on 12c2574c9d54 | from f61265f7a0f3
mesh/delivery merged: source.main moved to novox/mesh-catalog@12c2574c9d54
2026-10-30 01:38:58 +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/check pass 22ff0d1000f3 on 96b129e54441 | judged by the candidate's mesh-build-go at d351f9c41ff8
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
2026-10-30 00:39:37 +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
96a37f58ca
mesh-config: read declarations from each placed module's own manifests as built, and placement alone, so a module from its own repository resolves (issue 1953)
...
mesh/delivery closed: the pull request closed unmerged
mesh/check pass 96a37f58ca76 on 030f9ee4e780 | unit 1173 run, 3272 kept, 13 skipped | integration 1212 run, 3274 kept, 22 skipped | over bound: unit, …
The controller's declared-config mirror never held de-spiegel's keys, and Resolve skipped
an assigned module it held no declarations of, silently: de-spiegel stayed held on novox
with its values set. Declarations now come from the indexer's trunk manifest with the
wanted build's laid over it per node; which module runs where from the seat
mesh-placement alone. A placed module with no readable manifest is listed as unresolved
with why, logged, and keeps its last resolved values.
2026-10-29 15:19:24 +01:00
jschoubben
c8240c38bb
Revert L3 (mesh-catalog, merge 15552413): its node-engine removed every held module on novox, the bus server among them, at 08:54 CET on 2026-10-29 (issue 774)
...
mesh/check being carried to c8240c38bb89 on 030f9ee4e780 | from 1555241393fe | novox/mesh-catalog#557 in group revert/774-l3
mesh/delivery merged: source.main moved to novox/mesh-catalog@030f9ee4e780
mesh/delivery-group group revert/774-l3 merged: every member is merged
L3 lands again with two fixes: a held module is never removed, and the grants cover L3's new subjects.
2026-10-29 09:42:30 +01:00
jschoubben
add6f143ca
mesh-delivery-gate: an answer stands only for the ask it answers, and a merge never handed says why
...
mesh/check pass add6f143ca23 on 158348ede789 | unit 1601 run, 5122 kept, 47 skipped | integration 1637 run, 5215 kept, 49 skipped | over bound: unit, …
mesh/delivery merged: source.main moved to novox/mesh-catalog@1555241393fe
mesh/delivery-group group feat/774-vault-mints-l2 merged: every member is merged
On 2026-10-29 the group feat/774-vault-mints-l2 was approved and never handed: hq#495 kept a Decline of an earlier ask beside the Approve of the next, readyAsks skipped it and handTurn returned nil for every member, with no log line. The Approve and a new ask now clear an earlier Decline, a run's answer names its ask (answered_ask), an approved merge that waits for nothing and is not handed logs why once and is a stalled line, and delivery_turns lists no unwritten turn while the check gates no merge.
2026-10-29 02:15:34 +01:00
jschoubben
b46089b698
Merge remote-tracking branch 'origin/main' into l3-mc-main
2026-10-29 02:15:33 +01:00
mesh-tools
158348ede7
Merge pull request 'mesh-delivery-gate asks the operator's Approve on a verdict only: the one-hour fallback goes (issue 1733)' ( #555 ) from fix/1733-no-hour into main
2026-10-28 21:29:52 +00:00
mesh-tools
ff4c6c0435
Merge pull request 'The Go, Node and image build modules watch their settings file and say a capacity of 0 in their health' ( #554 ) from fix/park-wakes into main
2026-10-28 21:03:17 +00:00
jschoubben
c193d2b389
Pin mesh-sdk 8eafc0c, the L3 group's head on mesh-sdk main with #120 and #121 (issue 774)
mesh/check pass c193d2b38970 on 158348ede789 | unit 1319 run, 5401 kept, 47 skipped | integration 1359 run, 5490 kept, 49 skipped | over bound: unit, …
mesh/delivery-group group feat/774-vault-mints-l2 ready: every member ready, and composed together they pass
mesh/delivery closed: a newer head of the same pull request
2026-10-28 21:56:06 +01:00
jschoubben
10447d8c1e
mesh-config reads the placement beside the controller's assignments while both stand, as L2 has it and the vault does, and is listed as a reader of them (issue 774, ADR 0549 §5; re-review)
2026-10-28 21:54:36 +01:00
jschoubben
5be6576117
Follow L2 under L3: the vault and mesh-config read the seat mesh-placement's placement, and the check that only listed modules read the controller's assignments moves into noplacement, as L2 deleted the placement check (issue 774, ADR 0567, ADR 0549 §3, §6)
2026-10-28 21:54:36 +01:00
jschoubben
24fad2b92a
mesh-vault: pin mesh-sdk 4e6e5cc, the L3 group's head rebased on L2 (issue 774)
2026-10-28 21:54:36 +01:00
jschoubben
d3eb5cae80
mesh-vault: secret-ask answers the callers its manifest names, each named as the runtime proved it, within the same bounds; the controller's relay as before (issue 774, ADR 0563 §8)
2026-10-28 21:54:36 +01:00
jschoubben
2043200201
messenger: ask each machine's own engine whether it is root-free, the node seat node-engine's root-free, not the controller's (issue 774, ADR 0563 §6)
2026-10-28 21:54:36 +01:00
jschoubben
ef618e8199
nats: the bus's certificate command moves here from mesh-controller with the same output, made once and checked, so the bus module makes its own certificate when a mesh is raised from nothing (issue 774, design 47 L3 s11)
2026-10-28 21:54:36 +01:00
jschoubben
c00005c141
mesh-vault signs: its signing key and authority made once with their operator copies, the verb sign for a node's own certificate from bus state, the event signed, the state signers and the tools that read and reassert them (issue 774, ADR 0550 §2)
2026-10-28 21:54:36 +01:00
jschoubben
6bbb8329e4
mesh-config resolves for the modules the catalogue's placement puts on a node alone, and the placement check refuses any other module that reads the controller's assignments unless listed with why (issue 774, ADR 0549 §3, §6)
2026-10-28 21:54:36 +01:00
jschoubben
e6b913cac7
mesh-vault: account_retire refuses while the controller holds the lease or before the wants are read whole, as the passes do (issue 774, review round 1)
2026-10-28 21:54:36 +01:00
jschoubben
411c1b8de8
mesh-vault: prove the vault whole on a real bus mints only from the lease write, and try a failed mint again at the pass; adopt the operator key before the watches open (issue 774, ADR 0561 §1-§4)
2026-10-28 21:54:36 +01:00
jschoubben
64e6688ec8
mesh-vault: tell where modules stand and which node holds the bus from the catalogue's placement first, so the vault does not depend on the controller's assignments for them (issue 774, ADR 0549 §3, §5)
2026-10-28 21:54:36 +01:00
jschoubben
2d57c9663a
mesh-vault: serve issue-account, the hand path that mints one wanted account now, and record a rotation at most once per loaded list's revision; a covered account still never rotates in place (issue 774, ADR 0561 §4, §9)
2026-10-28 21:54:36 +01:00
jschoubben
5c1729523b
mesh-vault: retire an account the grants part no longer wants only within ADR 0230's bounds, keeping its value, and re-enable it when wanted again; account_retire for a person past the bound (issue 774, ADR 0561 §2)
2026-10-28 21:54:36 +01:00
jschoubben
1628db6c80
mesh-vault: mint only while the controller's lease is handed away, read afresh before each mint, and say in vault_status what is held back and why (issue 774, ADR 0561 §3, §9)
2026-10-28 21:54:36 +01:00
jschoubben
0b9f19b612
mesh-vault: mint each account the grants part wants and the vault holds no value or adopted hash for, in the controller's shape, hashed before account-issued and secret-changed (issue 774, ADR 0561 §1, §2, §4)
2026-10-28 21:54:36 +01:00
jschoubben
f37f93e812
Drop the unreachable 'before its check ends' caveat (issue 1733)
mesh/check pass f37f93e812df on ff4c6c04358a | carried from mesh-delivery 1f6f4eda3208 | unit 470 run, 4760 kept, 13 skipped | integration 503 run, 48…
mesh/delivery merged: source.main moved to novox/mesh-catalog@158348ede789
mesh/delivery-group group fix/1733-no-hour merged: every member is merged
2026-10-28 21:00:09 +01:00
jschoubben
cf4879eaa1
Ask the Approve when the check's verdict arrives, not after an hour (issue 1733)
2026-10-28 20:59:46 +01:00
jschoubben
1e377fe862
Go build module: the compose test gives its module a slot, since a node with no capacity set now pulls nothing (issue 1126, ADR 0567 §15)
...
mesh/check checking 1e377fe8628c on 39ce149f7435
mesh/delivery merged: source.main moved to novox/mesh-catalog@39ce149f7435
The test built its module with no settings file and no Capacity; the new
buildstep.NodeCapacity answers 0 for that (no default names a node), so the
puller took no ask and the test timed out after 90 s in check 205f634c30df.
Failed first locally at origin/main af89893d (90.1 s), passes with the slot (2.5 s).
2026-10-28 20:23:42 +01:00
jschoubben
5c6899e641
Build modules: pin mesh-sdk 9e5666b (fix/park-wakes)
mesh/check pass 5c6899e64166 on 39ce149f7435 | judged by the candidate's mesh-build-go at 01347a5ab27d
mesh/delivery merged: source.main moved to novox/mesh-catalog@ff4c6c04358a
mesh/delivery-group group fix/park-wakes merged: every member is merged
2026-10-28 20:08:55 +01:00
jschoubben
848c0cbd03
Build modules: give the puller the settings file and say a capacity of 0 in health (needs the mesh-sdk fix/park-wakes pin)
2026-10-28 20:02:30 +01:00
jschoubben
59cad7154a
Pin mesh-sdk to the group's head 38dbe1d in the build modules, mesh-config, the gate and the vault; the vault's test answers by proposal (issue 1126)
2026-10-28 18:52:35 +01:00
jschoubben
3b35e78733
build-hours takes one window and names no node, node names enter digests and checks by their clauses, and a leftover particulars file is refused
2026-10-28 18:35:06 +01:00
jschoubben
e072abb35e
Go build module: a package whose tests read MESH_NODE_NAMES has the node list in its digest, so a new node misses a kept verdict
2026-10-28 18:16:34 +01:00
jschoubben
e389e770d9
Build modules: capacity and build hours are this node's own values, no default names a node; the Go test tool hands the check's node names to the tests
2026-10-28 18:15:33 +01:00
jschoubben
00613b438c
gitea commit trees: drop the listed directories, which only the bridge's placement files used
2026-10-28 18:12:13 +01:00
jschoubben
5548e1030c
mesh-config reads placement from the seat's state (held by the assigner), not the indexer's
2026-10-28 18:10:58 +01:00
jschoubben
4e3b140d43
Delivery gate: a placement change is no pull request path, so the ask drops its placement wording and case
2026-10-28 17:58:22 +01:00
jschoubben
b5aa226649
Build capacity is an integer per node layer, default 0: no manifest names a node's share (manifest side; the reader follows mesh-sdk S6)
2026-10-28 17:57:57 +01:00
mesh-tools
d836a31aa7
Merge pull request 'power: its loop and boot tests run on a fake clock, so a busy build node cannot fail them (issue 1126)' ( #551 ) from fix/power-loop-flake into main
2026-10-28 16:26:05 +00:00
mesh-tools
683ce7e37f
Merge pull request 'dnsmasq starts at boot: its drop-in no longer orders after a target the package orders it before (issue 1126)' ( #550 ) from fix/dnsmasq-cycle into main
2026-10-28 16:26:01 +00:00
jschoubben
3494548c88
power: the loop and run tests drive their own clock, so a loaded build node cannot starve their timing (flake in #549 's check)
mesh/check checking 3494548c8830 on d836a31aa721
mesh/delivery merged: source.main moved to novox/mesh-catalog@d836a31aa721
2026-10-28 17:12:11 +01:00
jschoubben
3f552a17f6
dnsmasq: the drop-in no longer orders after network-online.target and its address wait is 2 s at most (cycle dropped the start at boot, issue 1126)
mesh/check being carried to 3f552a17f697 on 683ce7e37f29 | from 3feeefc70f7c
mesh/delivery merged: source.main moved to novox/mesh-catalog@683ce7e37f29
2026-10-28 17:00:14 +01:00
jschoubben
16ea3824b5
gitea: gate and judge every trunk the gate's source names, not main alone
...
mesh/check checking 16ea3824b5ea on 3feeefc70f7c
mesh/delivery merged: source.main moved to novox/mesh-catalog@3feeefc70f7c
The operator, 2026-10-28: the gates and trunk_rule apply to every trunk,
the branches the mesh installs from, and later there may be more than
main. The trunks are read at the call from mesh-delivery-gate's source,
in one function (trunksOf), and fall back to main, said, only when it
names none. A force-push onto any trunk is refused, and trunk_rule says
whether the branch asked is a trunk.
2026-10-28 16:52:50 +01:00
jschoubben
fabb62da00
gitea: refuse a force-push onto a rule covering main until the module can ask the operator's Approve for it
...
The operator, 2026-10-28: a call waits for their Approve only if it removes
branch protection or allows a force-push to main. No TypeScript tool can
ask yet (no asker in the TypeScript SDK; ADR 0286's mark is not built in
the runner), so such a call is refused with nothing sent, and every other
call runs at once. No tool removes a rule.
2026-10-28 16:48:55 +01:00
jschoubben
8068cf74a7
gitea: read a repository's settings back in the forge's own form, and take the settings it was missing
...
enable_prune is never in the forge's answer and mirror_interval comes back
as a Go duration, so a write that worked failed its read-back. The first is
now said as not read back, the second compared as a duration.
allow_merge_update, default_update_style and has_code are taken,
projects_mode needs has_projects true, and the description names what is
left out: the name, the tracker and wiki objects, and the mirror's
credentials.
2026-10-28 16:44:11 +01:00
jschoubben
6e97ba3867
gitea: fail a protection or settings write the forge answered and did not apply, and take every field gitea 1.27.3 edits
...
Gitea reads the push whitelist and force-push allowlist flags only beside
their parent set true and passes over a missing default branch, both with
a 200, so the tool said set for what did not change. It now refuses a
dependent field without its parent, reads the rule back and names each
field not applied, and says what the forge changed beside the call. The
bypass allowlist fields complete the 32. gitea_repo_settings_set_full sets
a repository's settings, its default branch among them, as the forge's
administrator: gitea_default_branch_set is refused as mesh-tools.
2026-10-28 16:39:54 +01:00