jschoubben
b0a275c126
Research efforts can be ideas, and at most three are active (issue 1970, ADR 0629)
...
The roadmap lives in the knowledge base: an idea is listed, never served as in force; propose refuses a further active effort.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 14:24:44 +01:00
mesh-tools
7fe569ef40
Merge pull request 'A failed backup names its cause: nats's dump keeps the snapshot's exit status and the container's state, restic reports the tail of what a command printed (issue 1585)' ( #608 ) from fix/1585-dump-stderr into main
2026-11-04 11:06:34 +00:00
jschoubben
4aa77a4237
nats dump keeps and says the snapshot's exit status; restic blots JSON credentials and cuts on a character
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@7fe569ef4067
mesh/check being carried to 4aa77a4237dd on 7fe569ef4067 | from 7f626147be0c
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:50:29 +01:00
jschoubben
6a39f43404
restic: a failed command reports the tail of its output, not only its exit status
...
Issue 1585: the backup before a nats move failed with only 'sh: exit status 1'.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:46:12 +01:00
mesh-tools
7f626147be
Merge pull request 'nats removes a push consumer; gitea, mesh-conditions, mesh-issues and messenger drop what named the removed controller (issue 1126)' ( #607 ) from fix/consumer-remove-any into main
2026-11-04 10:36:41 +00:00
jschoubben
080aed6855
gitea: the merge refusal no longer says how long the last check took; nothing writes that record (issue 1126)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@7f626147be0c
mesh/delivery-group group fix/consumer-remove-any merged: every member is merged
mesh/check being carried to 080aed68556a on 7f626147be0c | from 7a7db0166ad2, mesh-delivery dd90a26251b9
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:06:48 +01:00
jschoubben
4f67143a78
gitea: remove what only tests called: the gate writer's verdict and its ask and history weighing, the late-verdict comment, the check-duration writer, the sibling record's two writers (issue 1126)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:05:50 +01:00
jschoubben
1572ab9b25
messenger: remove the old controller's walk decoder and its plan-moved names; the view's events are the only walks (issue 1126)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:02:56 +01:00
jschoubben
b0b7dfc5eb
mesh-issues: the removed controller is no registered owner and no core owner; old issues keep what they name (issue 1126)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:02:12 +01:00
jschoubben
bf4ce7ef7b
mesh-conditions: remove the hold's controller special case, bound to a module that is no more (issue 1126)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:01:11 +01:00
jschoubben
052fb473d0
gitea: remove the code bound to no event since ADR 0571 clause 13: the verdict setter, the controller's checked and plan types, the build seat's started (issue 1126)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 11:00:53 +01:00
jschoubben
bff850f798
nats: nats_consumer_remove reads a push consumer too (issue 1126)
...
js.Consumer refuses a push consumer ("consumer is not a pull consumer"), so the
controller's leftovers on EVENTS and CONTROL could not be read and were not
removed. The tool now reads a consumer of either kind (CONSUMER.INFO only, which
is all its grant gives), before the delete and for the confirmation after it.
Quick fix: this change, in the tool, one function, about an hour with its test
rows (a pull and a push consumer). Thorough fix: the same tool also needs its
grant to cover the KV_* streams' consumers (mesh-controller-take-in,
mesh-controller-config-follow), and that grant is composed by mesh-sdk's
BusRemovalGrants from a closed set (ControllerLeftoverConsumersOn), not by the
manifest, so it is not in this commit: it needs a change in mesh-sdk and a
group delivery. Chosen here: the quick fix for the read, since it is one place
and blocks the operator's removal now; the grant is reported to the lead.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 10:45:00 +01:00
mesh-tools
7a7db0166a
Merge pull request 'mesh-vault: read which modules of a machine the vault judges handed, and why, with own_handed (issue 1966)' ( #606 ) from fix/handed-one-rule into main
2026-11-04 09:16:09 +00:00
jschoubben
237a534ca4
mesh-vault: read which modules of a machine the vault judges handed, and why, with own_handed (issue 1966)
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@7a7db0166ad2
mesh/delivery-group group fix/handed-one-rule merged: every member is merged
mesh/check being carried to 237a534ca4d3 on 7a7db0166ad2 | from dd458cb155f5, mesh-host 4d47ff5ce743
The vault leaves a handed module's own secrets out of `own`, judged by the plan in its assignment, and nothing read
that judgement: on 2026-11-04 the circle on ace (no plan, so not handed, so refused, so no plan) could be told only by
reading the provisioner's plans beside the node-engine's refusals. own_handed answers, per module the vault keeps an
own secret of on the machine or that is placed there, handed or not and why.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 02:29:37 +01:00
mesh-tools
dd458cb155
Merge pull request 'L3 final: core-credentials back, nats provides bus-state, artifact-store-tools calls the seat mesh-catalog, the old catalog module drops its claim (ADR 0614, ADR 0604, issue 774)' ( #605 ) from feat/l3-final into main
2026-11-04 00:23:42 +00:00
jschoubben
6c09be4a70
Keep a module's report under a bounded context the client's stop does not cancel (issue 774)
...
mesh/delivery-group group feat/l3-final merged: every member is merged
mesh/delivery merged: source.main moved to novox/mesh-catalog@dd458cb155f5
mesh/check checking 6c09be4a703e on dd458cb155f5 | novox/mesh-catalog#605 in group feat/l3-final
The test of a node coming back stops the client before the report of zsh is kept; the cancelled Put left s.applied without zsh, so leftModules never removed it (2 of 20 runs failed under -race, also at origin/main). Thorough: report() keeps under context.WithoutCancel with a 5 s bound; the same test now passes 40 of 40.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 00:46:08 +01:00
jschoubben
448f1ef481
Give mesh-provisioner and mesh-provisioner-client new manifest bytes (version 2), the recovery of the moment for stale verdicts
...
The running indexer holds refusals from 21:14 for the exact bytes of these manifests, which carry core-credentials again. A new digest is read afresh; the thorough fix of stale verdicts is in the indexer in this group (issue 774).
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-04 00:44:17 +01:00
jschoubben
093967af9b
Pin mesh-sdk 85ba0a9a70d8, the group's head of feat/l3-final (issue 774)
...
mesh/delivery closed: a newer head of the same pull request
mesh/delivery-group group feat/l3-final rejected: composed together: the checker's verdict at the members' heads (278aa5f0ccbe): unit: mesh-provisioner-client/…
mesh/check failed (2): unit: mesh-provisioner-client/cmd/mesh-provisioner-client.TestNatsANodeComingBackFil…; and 1 more | 093967af9b2f on be24f5ac387f
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 23:43:11 +01:00
jschoubben
be749c9513
The old catalog module drops its claim of the seat mesh-catalog and is deprecated; a check refuses a second claimant (ADR 0604 §6, issue 774)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 23:11:32 +01:00
jschoubben
4026392a6e
artifact-store-tools reads the definitions through the seat mesh-catalog's verbs modules and module (ADR 0604 §3, issue 774)
...
The verb module takes no commit; a definition is kept by the commit its answer names.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 23:11:05 +01:00
jschoubben
d632071317
nats provides bus-state, so a module that keeps bus state has a provider to wait for (ADR 0614 §5, issue 774)
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 23:09:59 +01:00
jschoubben
5fe7e3e6ba
Put core-credentials back in the bus's, the provisioner's and its client's manifests (L3 final, issue 774)
...
The indexer whose judge knows the word runs now, so the word returns; the new node-engine keeps what runs for a manifest that lacks it.
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 23:09:34 +01:00
mesh-tools
be24f5ac38
Merge pull request 'L3 recovery: take core-credentials out of the bus's, the provisioner's and its client's manifests until the judge that knows it runs (issue 774, issue 1585)' ( #604 ) from fix/l3-words-after-judge into main
2026-11-03 21:09:02 +00:00
jschoubben
f2eb548204
Take core-credentials out of the bus's, the provisioner's and its client's manifests until the judge that knows it runs
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@be24f5ac387f
mesh/delivery-group group fix/l3-words-after-judge merged: every member is merged
mesh/check being carried to f2eb54820469 on be24f5ac387f | from e6de42630355, mesh-delivery 4154c3040cee, mesh-tools 01ee2ef39488
The running indexer's judge refuses the word, a refused manifest holds the bus's user list, and so the indexer build
that knows the word is never granted. The node-engine on main still finds these modules by its name list, and the
vault keeps no list, so no credential is lost; the word comes back once the new judge runs (issue 774).
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 21:28:29 +01:00
mesh-tools
e6de426303
Merge pull request 'L3: a provider's have counts only from a build that offers the provision; the gate takes a merged message with no trees (ADR 0603 §5, issue 1367)' ( #603 ) from feat/l3b-bus into main
2026-11-03 20:12:47 +00:00
jschoubben
5fab8f118e
Pin mesh-sdk b7abe203a929, the group's head of feat/l3b-bus: it keeps, deprecated, the exported names the running parts still use
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@e6de42630355
mesh/delivery-group group feat/l3b-bus merged: every member is merged
mesh/check checking 5fab8f118e18 on e6de42630355 | novox/mesh-catalog#603 in group feat/l3b-bus
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 18:50:12 +01:00
jschoubben
d5237091a6
gofmt the provisioner's test: the group's check refused it unformatted
...
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
2026-11-03 18:43:32 +01:00
jschoubben
1a35e5cf4d
Pin mesh-sdk cf5812101b0b, the group's final head of feat/l3b-bus (the module graph is no part of mesh-sdk)
mesh/delivery-group group feat/l3b-bus checking: 4 of 4 member(s) ready
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 1a35e5cf4dc6 on 230230ce0ef1 | novox/mesh-catalog#603 in group feat/l3b-bus
2026-11-03 17:15:06 +01:00
jschoubben
e2fad6a50a
Pin mesh-sdk 65b7adc8bdd9, the group's head of feat/l3b-bus (the gate reads a merged message with no trees)
2026-11-03 17:15:06 +01:00
jschoubben
04ab9bc603
The gate's row: a merged message with no trees is read and refused by nothing (issue 1367; passes with the group's mesh-sdk pin)
2026-11-03 17:15:06 +01:00
jschoubben
333ab9de22
A provider's have counts as its outcome only from a build whose manifest offers the provision (ADR 0603 clause 5)
...
A provider whose build does not offer the provision it was asked for must
not be counted as having delivered it; the provisioner reads the build's
manifest (the builds read serves only this offer check and makes no plan,
ADR 0593 section 8) before it takes the provider's have as the outcome.
2026-11-03 17:15:06 +01:00
jschoubben
e84b9d13c4
Pin mesh-sdk e7ce86ff62b5, the group's head of feat/l3b-bus (review round 2)
2026-11-03 17:15:06 +01:00
jschoubben
9c36d4edd4
Pin mesh-sdk 825483043549, the group's head of feat/l3b-bus (review round 1)
2026-11-03 17:15:06 +01:00
jschoubben
4c137795a8
Pin mesh-sdk 09ec82cb3551, the group's head of feat/l3b-bus (ADR 0601)
2026-11-03 17:15:06 +01:00
jschoubben
281f586621
The bus module keeps record and says why as ADR 0601 has it: the operator's Approve of the release that carries its build is its yes, and its node backs its streams up before it applies
2026-11-03 17:15:06 +01:00
jschoubben
843da56d09
nats, mesh-provisioner, its client and mesh-vault pin mesh-sdk a973bfa (issue 774)
2026-11-03 17:15:06 +01:00
jschoubben
2d34ff468b
The bus, the provisioner and its client say their own secrets are the core's credentials, and the vault keeps no list of modules; pinned at mesh-sdk 4f141ff (issue 774, the operator 2026-11-03)
2026-11-03 17:15:06 +01:00
mesh-tools
230230ce0e
Merge pull request 'The vault mints ledger accounts and keeps a machine's in node-tools' own secret ledgers (issue 1966, B1)' ( #602 ) from feat/bus-state into main
2026-11-03 15:24:30 +00:00
jschoubben
34ce2895dd
Pin the group's mesh-sdk head f8bd12e in place of the local replace (issue 1966)
mesh/delivery merged: source.main moved to novox/mesh-catalog@230230ce0ef1
mesh/delivery-group group feat/bus-state merged: every member is merged
mesh/check pass 34ce2895dd33 on 1d1d5ec443d0 | unit 6460 run, 262 kept, 27 skipped | integration 6639 run, 264 kept, 35 skipped | over bound: unit, in…
2026-11-03 15:35:32 +01:00
jschoubben
0aa319154e
The vault mints ledger accounts like every kind and keeps a machine's credentials together in its ledgers (issue 1966 V2)
2026-11-03 13:34:27 +01:00
jschoubben
90ff598207
The vault makes node-tools' own secret ledgers as {} on every machine whose tool runner is wanted (issue 1966 V1)
2026-11-03 13:32:08 +01:00
mesh-tools
1d1d5ec443
Merge pull request 'cpu_top's process view cuts a rewritten title at its first space, so no argument reaches the answer' ( #601 ) from fix/741-argv0-title into main
2026-11-03 07:59:18 +00:00
jschoubben
3112692def
cpu_top cuts argv[0] at the first space: a rewritten process title held a whole command line (issue 741)
mesh/delivery merged: source.main moved to novox/mesh-catalog@1d1d5ec443d0
mesh/check being carried to 3112692defdf on 1d1d5ec443d0 | from 4915ff5d293f
2026-11-03 08:46:42 +01:00
mesh-tools
4915ff5d29
Merge pull request 'disk-load's cpu_top names the processes inside one unit' ( #600 ) from fix/741-cpu-by-process into main
2026-11-03 07:43:20 +00:00
jschoubben
dd4c53eefb
cpu_top by unit: program path only, pid reuse skipped, cgroup path kept under the root
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@4915ff5d293f
mesh/check being carried to dd4c53eefb23 on 4915ff5d293f | from 0b2d393b1100
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
2026-11-03 02:04:43 +01:00
jschoubben
32dc74788e
disk-load README: cpu_top unit argument
...
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
2026-11-03 02:03:21 +01:00
jschoubben
1fb32928ae
cpu_top ranks a unit's processes by CPU when given unit, so a desktop session names its program
...
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
2026-11-03 02:03:17 +01:00
mesh-tools
0b2d393b11
Merge pull request 'mesh-provisioner: never ask to retire access on an incomplete read' ( #599 ) from fix/940-no-retire-on-partial-read into main
2026-11-02 23:26:48 +00:00
jschoubben
134baf0e3b
Check again: the previous check failed only on ace's full root disk
...
mesh/delivery merged: source.main moved to novox/mesh-catalog@0b2d393b1100
mesh/check being carried to 134baf0e3b8f on 0b2d393b1100 | from f469eb387a30
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
2026-11-02 23:52:44 +01:00
jschoubben
7c78fd2e0c
mesh-provisioner: say a lasting unpublished hold by time, not by passes (issue 940, review 2)
...
mesh/delivery closed: a newer head of the same pull request
mesh/check failed (60): integration: mesh-knowledge/cmd/mesh-knowledge.TestARecordThatNeedsTheOperatorIsAc…; and 59 more | 7c78fd2e0c4f on f469eb387a30
A pass runs on every change of its node, and a newly placed module stays
unpublished for the minutes its build takes, so counting passes made every
new placement unhealthy while nothing was wrong. The health now says a hold
only once a module has stayed unpublished at one build for longer than 45
minutes (the build step's bound is 30), with since when; a published module
or another build starts the clock again.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
2026-11-02 23:22:43 +01:00