jochen
6fdaeb79ba
Issue 334 and ADR 0264: an ask a seat gave up on can only be dropped for now
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The review refused a grant over every seat's queue, and a copy published
again left the original stuck in it.
2026-10-08 21:08:12 +02:00
jochen
d1e0e121d6
ADR 0264 and issue 330: keep what a consumer gives up on until a person acts
...
Design 25 promised a dead-letter stream nothing built; a message a consumer
gave up on was lost after a week, silently once its condition cleared.
2026-10-08 21:08:12 +02:00
mesh-admin
4eb8be9e66
Merge pull request 'ADR 0263 (accepted), research 038, design 52: a share is a provision, a node mounts it on demand' ( #221 ) from feat/mounts-module into main
2026-10-08 18:39:59 +00:00
jochen
d05c9d7ca4
Name the safe order of taking shares into use without the retired word
mesh/delivery-group group feat/mounts-module delivered: every member is delivered
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
2026-10-08 20:22:05 +02:00
jochen
bffd0f90d0
ADR 0263 and design 52 after review: what each export promises, per-node grants, refusals, not-built checks, and a read-only-first rollout
2026-10-08 20:21:48 +02:00
jochen
0a38d9b21d
ADR 0265: a panicking verb answers, and refused logins are not a reconnect loop
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group fix/327-a-verb-reads-on-the-serving-connection delivered: every member is delivered
2026-10-08 20:04:19 +02:00
jochen
c3a0f7a595
ADR 0265 and issue 327: answer read verbs on the serving connection and name every connection
...
Hundreds of short connections an hour, all named mesh-controller, hid any
client reconnecting in a loop.
2026-10-08 20:04:19 +02:00
jochen
f30b2a3ae0
ADR 0262: note how a left-out module's data is backed up, as the controller now does it
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The record said its data is still copied; the shipped follow-up backs it up as this controller reads
it and lists an unplaceable line rather than failing the machine.
2026-10-08 18:38:09 +02:00
jochen
f4b79ba7c2
Design 52 says how the modules were built: the server's bucket carries each share's path, two root processes, settings default to none
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group feat/mounts-module checking: 2 of 3 member(s) ready
mesh/delivery superseded: a newer head of the same pull request
2026-10-08 18:37:15 +02:00
jochen
34899385ec
Accept ADR 0263 with the operator's choices: one share per folder so backups are never exported, mesh machines only
2026-10-08 18:23:23 +02:00
jochen
6a9bc3f4b3
ADR 0262: say what a left-out module loses, and how far an entry's unknown key is read
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The record claimed a left-out module kept what the machine holds for it and that an entry's unknown key
was read like a top-level one; neither is true of the merged controller.
2026-10-08 17:55:38 +02:00
jochen
f09c9befdf
ADR 0262: a module with a field the controller does not know is left out and raised, never read silently
...
Dropping an unknown key would run a module without something its manifest says. Also name the check by
what a key is about, narrow the listing to one machine, and say how to roll back below this record.
2026-10-08 17:55:04 +02:00
jochen
de7aca4fa6
ADR 0262: one listing of every preference, and research 037 surveying the literals to convert
...
The operator asked for one place that lists every module's preferences and each machine's value, and
for a list of the values the catalogues hard-code that should become preferences.
2026-10-08 17:55:04 +02:00
jochen
0e5a5e2085
ADR 0262: record the lenient read of stored manifests and the marked defaults layer
...
A stored manifest read strictly would fail the whole catalogue after a controller rollback, and a node
called default would lose its layer. Also scope the default, retire tunable, and list the new checks.
2026-10-08 17:55:04 +02:00
jochen
417db4d837
ADR 0262: let a preference carry a default so a running module can gain a setting
...
A ${setting:} nothing set failed composition, and settings refused a key no file asked
for yet, so no order of changes could add a setting to a running module. A manifest may
now default a preference; the operator's own value still has none.
2026-10-08 17:55:04 +02:00
jochen
3edafd78ab
Research 038, ADR 0263 and to-be 52: let the mesh own shares and mounts, so no node depends on a hand-written export or fstab line
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group feat/mounts-module rejected: a member's own check failed
mesh/delivery superseded: a newer head of the same pull request
2026-10-08 17:23:52 +02:00
jochen
6dda1b1d77
ADR 0261: one condition per pending assignment, and a raised row kept until it clears
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The second review of mesh-controller#150 changed points 1, 6 and 7; say
what the code now does.
2026-10-08 16:46:42 +02:00
jochen
3a09387c8e
ADR 0261: an assignment made while its module's build runs is kept pending
...
The review of mesh-controller#150 found the controller now makes an
assignment after the person's act, which no record decided. Decide it,
cite it from the glossary and to-be 45, and correct issue 325's account
of what is settled where and what is sent.
2026-10-08 16:46:40 +02:00
jochen
e182e9ab12
ADR 0260: correct the count of standing reads, and say drop-in directories are no module's and the lists grow only in the open
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
2026-10-08 16:12:54 +02:00
mesh-admin
9efa785f38
Merge pull request 'ADR 0260: a bar block shows a value its module keeps on the bus, and no module reads another's files' ( #212 ) from feat/the-bar-takes-blocks into main
2026-10-08 14:09:26 +00:00
mesh-admin
a95e8060c3
Merge pull request 'ADR 0257, issues 321-323, research 035: record the bases builds copy; what the pre-mesh images are' ( #207 ) from decision/a-copied-base-is-recorded into main
2026-10-08 14:02:47 +00:00
jochen
9afd6f8902
ADR 0260: say what review narrowed — one key per grant, per-machine state, wider path roots, a follower that speaks
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
2026-10-08 15:54:45 +02:00
jochen
56e78612dc
ADR 0257: the sweep after a build leaves an index for a confirmed collect
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
Let go of alone, an index's platforms would stay for ever under a collected record
(re-review of #207 ).
2026-10-08 15:50:36 +02:00
jochen
b7624cf023
ADR 0254 insight: state the two remaining costs, and point decisions 1 and 5 at their corrections
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
2026-10-08 15:45:34 +02:00
jochen
9b3ccfc1b4
ADR 0254 insight: a broken module goes back at once, and only a move that adds a group is excused, at a stated cost
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
2026-10-08 15:28:31 +02:00
jochen
64ef5a0ac8
ADR 0254: correct what the fix covers after its review, as a progressive insight (issue 318)
2026-10-08 15:28:31 +02:00
jochen
427b078093
ADR 0260: a bar block shows a value its module keeps on the bus, and no module reads another's files
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
The operator restated that modules talk over the bus; ADR 0255 had the bar print the
power module's file.
2026-10-08 15:24:04 +02:00
mesh-admin
4196b711f8
Merge pull request 'ADR 0256: one module reads a machine's hardware condition, and a fault is said through its health' ( #206 ) from decision/hardware-sensors into main
2026-10-08 13:20:58 +00:00
jochen
df41dfff38
ADR 0256: say exactly how a SAS drive, a USB drive and a stuck read are treated
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The SAS sentence now holds for modes with spaces, a hung read is unhealthy in two to three minutes, not
one, every USB drive is told sat, and the limits of a stuck read are recorded.
2026-10-08 15:04:03 +02:00
jochen
39585e3bb2
ADR 0258: name the mesh MCP server, not the retired console
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group fix/needs-you-from-the-console delivered: every member is delivered
The glossary retires "console"; the words an operator reads say where to act in
the mesh's own word.
2026-10-08 15:03:41 +02:00
mesh-admin
f5f4eedf7a
Merge pull request 'ADR 0254: a wait for a person's new login is not a gate's failure, and each module of a send keeps its own pass (issue 318)' ( #204 ) from fix/318-a-wait-for-a-person-is-not-a-failure into main
2026-10-08 13:03:12 +00:00
mesh-admin
fc9df13497
Merge pull request 'Issue 324 and ADR 0258: a desk click performs only an acknowledgement, an answer is a one-time ticket' ( #208 ) from fix/notifications-after-review into main
2026-10-08 13:03:00 +00:00
jochen
0406373545
ADR 0256: one reader of the drives, and a stuck read is said
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
After the second review: smartd is dropped as a second reader that could wake or keep awake the drives,
a stuck read or a drive not looked at is unhealthy, a drive asleep for a day is HIGH and never unhealthy,
and a board chip's maximum says nothing of a fan. The never-woken and hourly claims now say exactly what
holds.
2026-10-08 14:59:12 +02:00
jochen
3bfedcfa15
ADR 0258 and issue 324: the live window, data loss never silenced from a click, and where to give what no notification can
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group fix/notifications-after-review delivered: every member is delivered
The second review found the fix could not read what the live build kept, missed
quiet warnings known from history, and let a click silence data loss.
2026-10-08 14:56:48 +02:00
jochen
b6690c38cf
ADR 0257: platforms go only in a confirmed collect; say what stays, and what a rollback costs
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
The sweep after a build is real collection with no dry run in front of it, so it lets an
index go alone (review of #207 ).
2026-10-08 14:53:04 +02:00
mesh-admin
ef8b76461e
Merge pull request 'ADR 0255: the bar takes blocks as data from the module that knows the hardware' ( #205 ) from feat/the-bar-takes-blocks into main
2026-10-08 12:44:40 +00:00
jochen
dd149a72c0
Issue 324 and ADR 0258: a desk click performs only an acknowledgement
...
Review found that ADR 0253 let any process at the operator's session release,
stop or start a delivery in the operator's name, and that its tokens, fallback
words and quiet warnings failed on the paths that go wrong.
2026-10-08 14:40:02 +02:00
jochen
01e48196f7
Narrow ADR 0254 to what the walk path does, and say what a pending relogin excuses (issue 318)
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group fix/318-a-wait-for-a-person-is-not-a-failure delivered: every member is delivered
2026-10-08 14:38:08 +02:00
jochen
e4299b5521
ADR 0255: say what review changed — if-capability on offered kinds only, unrenderable pieces left out and named, and why the sampler runs everywhere
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group feat/the-bar-takes-blocks delivered: every member is delivered
2026-10-08 14:35:56 +02:00
jochen
f63828ce1c
ADR 0256: say exactly what raises a condition, and why a drive is read only hourly
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
Rule 4 now matches the module after review: the NVMe temperature bit, old-age attributes, a fan's minimum
or alarm and a board chip's limits raise nothing; a stale watch does. The standby caveat is recorded: no
mesh tool sees a drive's spin-down timer, so spinning drives are read hourly.
2026-10-08 14:35:21 +02:00
jochen
781681a117
ADR 0254: a wait for a person's new login passes the gate, so one module's wait stalls no walk (issue 318)
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group fix/318-a-wait-for-a-person-is-not-a-failure checking: 3 of 4 member(s) ready
mesh/delivery superseded: a newer head of the same pull request
2026-10-08 14:25:40 +02:00
jochen
59bc551b5b
ADR 0257, issues 321-323, research 035: record the bases builds copy, and say what the pre-mesh images are
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
The store's tools counted 23.8 GiB nothing records: copied bases the sweep could never
let go of, platforms a let-go index left behind, and images from before the mesh. Package
retention read no lockfile, so it kept versions by age alone.
2026-10-08 14:08:45 +02:00
jochen
356c5f23f4
ADR 0253: say whether the operator is needed, keep quiet what needs nothing, answer from the notification
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group feat/plain-notifications delivered: every member is delivered
The operator read the reworded popup and could not tell whether to act, and was
sent to open a session to act at all. The record now decides the verdict, the
quiet rule and the path by which a notification is answered.
2026-10-08 14:00:38 +02:00
jochen
c8b6a4eea8
ADR 0256: one module reads the machine's hardware, so a failing drive or fan is raised, not found dead
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
A machine's temperatures, fans and drive health were read by the laptop's vendor module only; the
machines' 20 drives were watched by nothing. The sensors module reads them on every machine, holds no
seat until a caller must reach it by role, and says a hardware fault through ADR 0240's health until the
machine judges its own hardware. To-be 48 gains §11 and phase G.
2026-10-08 13:48:52 +02:00
jochen
5852b66988
ADR 0255: the bar takes blocks as data from the module that knows the hardware
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery-group group feat/the-bar-takes-blocks rejected: a member's own check failed
mesh/delivery superseded: a newer head of the same pull request
The operator chose a generic boundary for the bar: a block is said in terms no bar
owns and rendered by the seat's holder, placed only where the machine reports the
hardware, and generic hardware comes from the generic seat's module, not a vendor's.
To-be 42 records it; ADR 0208 points to it.
2026-10-08 13:45:27 +02:00
jochen
7c49aa0ffc
Issue 320 and ADR 0253: a condition says itself to the operator in plain words
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
The operator could not read the mesh's notifications: they were the summary meant
for an agent, with ids, commits, keys and verbs, in UTC. The condition now carries
a headline, an explanation and a resolved line beside its summary.
2026-10-08 13:28:50 +02:00
mesh-admin
c3022d5e14
Merge pull request 'ADR 0251 and to-be 51: the registries say what they hold and keep what is named' ( #200 ) from design/051-the-registries-keep-what-is-named into main
2026-10-08 11:06:17 +00:00
jochen
f91735b629
Put the store's tools in a module beside it, since the store's module may not build (ADR 0251)
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
2026-10-08 12:08:02 +02:00
jochen
3449775cb6
ADR 0252: a module puts an account in a group, and the mesh says when a new login is needed
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
Issue 247 left adding the operator's account to a daemon's group a sudo step by hand. Decide that
a module declares it with the user resource's groups, that the mesh gives back only what it added,
and that the node-engine says relogin needed; amend to-be 41 with WP6 and resolve the issue.
2026-10-08 12:04:50 +02:00
jochen
f1e2ebce7a
Record how the registries keep what is named, so nothing piles up unseen (ADR 0251, to-be 51)
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
2026-10-08 11:51:59 +02:00