jschoubben
2ea803acce
ADR 0292: quote ADR 0283 decision 5 exactly, and weigh a declared part-to-provision mapping
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-11 03:11:25 +02:00
jschoubben
267a04ccad
Point ADR 0240 rule 5 and ADR 0283 decision 1 at ADR 0292, and give it its home in to-be 48 (issue 405)
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-11 03:09:14 +02:00
jschoubben
a6b08de850
ADR 0292: a consumer of the part a provider waits on is held, and passes its gate as a wait for a person (issue 405)
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check fail: its merge-check.sh failed: 02-DECISIONS/0292-a-consumer-of-the-part-a-provider-waits-on-is-held-under-the-wait-and-passes-its-gate-as…
2026-10-11 03:08:47 +02:00
jschoubben
0aa37ad8b0
Note on ADR 0240 rule 5 and ADR 0283 decision 1: what a provider waiting for the operator holds (issue 405)
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-11 03:06:01 +02:00
jschoubben
a5d1e0fbf6
ADR 0290 rewritten on the operator's word: a decision record lives whole in the knowledge base, reviewed and accepted there; and cycle.py sees issues that live only in the tracker (issue 436)
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-11 02:05:02 +02:00
jschoubben
b174269ec1
ADR 0290 and 0291: the operator's confirmations, no folder rule before issue 427, the verb return, the documents' row in to-be 53, and both senses of knowledge base
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-11 01:25:11 +02:00
jschoubben
4c4d96874f
ADR 0291: the choice of no export is this record's, not an answer the operator gave
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-11 01:02:02 +02:00
jschoubben
d606b4382f
ADR 0290 and 0291: the knowledge base holds each record's structure and clauses, and an issue lives whole in the tracker (research 045)
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-11 01:01:42 +02:00
jschoubben
f607598898
Check a partial supersession's date and refuse the older note form, as the review of this change found 0269's note on 0118 went round the check
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-11 00:52:13 +02:00
jschoubben
fd0b3b9976
Declare every partial supersession in both records and check it, so a reader who follows a citation to the older record learns what no longer holds
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-11 00:47:07 +02:00
jschoubben
6a408428d6
Write every extends target with its folder, as the frontmatter template says, so a reader of the field needs no second form
2026-10-11 00:43:13 +02:00
mesh-admin
eac30272ee
Merge pull request 'ADR 0283: the username lives in its sources entry, and the needs-operator words as built (issue 386)' ( #297 ) from fix/386-username-in-sources into main
2026-10-10 20:25:24 +00:00
jochen
8f99511160
Check every rule of ADR 0285, point ADR 0253 at it under its verdict rule, and cite the pull requests
...
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/400-alert-names-its-issue delivered: every member is delivered
Review of hq#299.
2026-10-10 22:09:24 +02:00
jochen
c79e416757
ADR 0285: say in every condition's message which issue tracks it and where it stands (issue 400)
...
The operator could not tell from a notification whether its cause was
known, tracked and being fixed. An issue tracks a condition by its key;
the tracker answers which issues track which conditions, and the router
says it in every message about the condition. Amends to-be 53 and 45,
playbook 03 and the glossary, and points ADR 0253 at the new line.
2026-10-10 22:09:24 +02:00
jochen
9be659b18c
Say how the writer tells its own lost acknowledgement from a former holder, list D16, and fix the settings heading (review of #303 )
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-10 22:05:17 +02:00
jochen
5a3513b819
Keep the epoch out of a mirror's value, age purge markers, say a lost event, and check every rule (review of #303 )
2026-10-10 22:05:17 +02:00
jochen
f90b74bf26
ADR 0289: the controller mirrors its records into buckets written only on a change (issue 419, research 036 G2)
...
Nodes, assignments, walks, builds and settings could be seen only by polling verbs, and a setting
changed with no event. Each becomes a record mirror: a bucket written from the store after the commit
and only when the value differs, one event per write, compared with the store on every self-check run
(D17, mirror-drifted, healer H6). The write-only-on-a-change rule from issue 326 now holds for every
bucket; the conditions bucket breaks it and issue 420 tracks that. The effort stays active for G1, G3
and the views.
2026-10-10 22:05:17 +02:00
jochen
8060c20fda
Separate the release paragraph from the execute bullet, and say the third call asks again
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-10 22:00:27 +02:00
jochen
1d6ee8885a
Bind old runners through the bus, say when the same call asks anew, and leave release unmarked until the controller's warrant passes the mark (review)
2026-10-10 22:00:27 +02:00
jochen
9b0c6741e7
ADR 0286: a tool or verb marked in its manifest runs only on the operator's approval of that one call (issue 417)
...
Graduates research 039. The tool runner (and the controller for its own verbs) asks the operator
through the existing operator-channel asks and runs the exact call once on the warrant, reusing the
act digest and warrant check of ADR 0259 and the shown-in-shape form of ADRs 0274 and 0277, so
risky agent calls stop resting on the agent's restraint. Amends to-be 46 and hands it off.
2026-10-10 22:00:27 +02:00
jochen
906d702b8d
Narrow ADR 0287's claimant rule to any seat naming the path, and correct two facts the review found
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-10 21:57:24 +02:00
jochen
6b49ed613c
ADR 0287: a seat names the paths its holder owns, so a file's owner is read from the seat (issue 412, research 023)
2026-10-10 21:57:24 +02:00
jochen
fb2d5d9f7f
Name what checks the fork's triggers and track the mirroring question and the missing kept-by (issues 421, 413)
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-10 21:52:00 +02:00
jochen
b6c592cb9d
Record the maintained MinIO fork as the object store, and choose Garage only after the consumers' S3 features are counted (research 015, issue 413)
2026-10-10 21:52:00 +02:00
jochen
9a2a2006b1
Cover ADR 0283's check row 7 with the insight, and align to-be 48 with the words as built
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
From the review of hq#297.
2026-10-10 21:44:11 +02:00
jochen
a3ac9fd547
Carry an SMB source's username in its sources entry, since a key naming a user may have no default (issue 386)
...
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The live module check refused mesh-catalog#190's smb-users setting (ADR 0262);
ADR 0283 decision 7 gets a dated insight, to-be 52 and the 0263 note follow.
2026-10-10 21:42:54 +02:00
jochen
ace8f6c398
Renumber the fixing-status record to ADR 0284 (issue 406)
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
hq #294 (issue 386) and #295 (issue 399) both merged a record numbered 0283;
#294 landed first and keeps it. The branch that lands last renumbers.
2026-10-10 21:35:34 +02:00
mesh-admin
61255b56d4
Merge pull request 'ADR 0283: an agent moves an issue to fixing under its own name, and an issue is resolved only from fixing (issue 399)' ( #295 ) from feat/399-fixing-status into main
2026-10-10 19:13:24 +00:00
jochen
2648d571b3
Point ADRs 0240 and 0254 at ADR 0283, bound a family member's name, and say the cost of a setting wait
...
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/386-a-wait-for-the-operator delivered: every member is delivered
From the review of hq#294.
2026-10-10 21:08:40 +02:00
jochen
8cdc9706e1
Use role names, not node names, in the worker examples (public repository)
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/399-fixing-status delivered: every member is delivered
2026-10-10 21:08:25 +02:00
jochen
21973e2e4a
ADR 0283: an agent moves an issue to fixing under its own name, and resolves only from fixing (issue 399)
...
mesh/delivery-group group feat/399-fixing-status checking: 0 of 2 member(s) ready
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
Two agents could start on one issue without seeing each other, and an issue
could be resolved without anyone having said they started its fix. Adds the
status fixing, the issue's worker (by, who@node) with take-over and a stale
bound, and resolved only from fixing; settles what to-be 53 left out as
claims, under the new glossary word worker. Amends to-be 53, playbook 03 and
the hq-diagnose and hq-status skills, with pointer notes on ADR 0275 and 0281.
2026-10-10 21:07:13 +02:00
jochen
242a6c548b
ADR 0283: a part waiting for the operator's secret or setting is said as waiting and passes the first-node gate (issue 386)
...
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/386-a-wait-for-the-operator checking: 1 of 2 member(s) ready
mesh/delivery superseded: a newer head of the same pull request
A module whose only unhealthy part waited for the operator's secret failed
its gate, held every later walk and told the operator there was nothing to
do. The record adds a waits answer and a waiting state, checked by the
controller, read by the gate as waits for a person, and said as a
needs-operator condition naming the act; and secret families so each SMB
source's password is one hidden line at the desk prompt.
2026-10-10 21:05:29 +02:00
jochen
15d5383a94
Accept ADRs 0164-0166 and give them a home in to-be 42
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The operator accepted them on 2026-10-10. The runtime seat and the default
half of declared settings are live; the rest is tracked by issue 398. To-be 42
cited them only as waiting, so it now names them.
2026-10-10 20:03:04 +02:00
jochen
a3e962f880
Accept ADR 0242: a recorded build moving only by a person's push is built and live
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh-controller #115 and mesh-catalog #106 shipped it (issue 295 resolved);
upgrade shows mailu as record under this ADR, and to-be 44 and 45 cite it.
2026-10-10 20:00:40 +02:00
jochen
0a6172640c
Accept ADR 0282: the operator decided the delivery budgets on 2026-10-10
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
To-be 47 lists the record among its decisions, ADR 0236 and ADR 0276 say
where their mechanism moves, and the glossary drops 'proposed'.
2026-10-10 19:57:07 +02:00
jochen
8b6c306cfd
ADR 0282: a core send sets aside a leaf judgement; the window row says how it was split; the repository rule cites ADR 0276
...
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
From the independent review: a core delivery could wait on a leaf judgement past
its ten minutes, the window figure's split was not stated beside it, and the
one-repository rule was credited to the wrong issue.
2026-10-10 19:53:36 +02:00
jochen
9414855fbe
ADR 0282 (proposed): a leaf fix runs healthy on every node within five minutes of its merge, a core module within ten
...
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 asked that a bug fix land on every node in under five minutes. 51
walks measured from the controller's own records put a leaf walk at a median of
6.0 minutes (7 of 20 within five) and say where the time goes: waiting behind
another walk, the first-node judgement, the merge window. The record weighs each
lever by what it would have saved, keeps three readings for core modules (ten
minutes, the measured worst being 8.8), and proposes the measure and condition
that check it. To-be 47 gains the section, the owners and five slices; the
glossary gains delivery time, delivery budget, core and leaf module.
2026-10-10 19:51:07 +02:00
jochen
5ef7d4dc36
ADR 0281, to-be 53 §11: an issue knows whether its fix is delivered, and a fix stuck after its merge is loud
...
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 approved measuring, from the delivery's own events, whether each fix
an issue names reached the machines; delivered is not resolved, and a merged fix
that does not arrive must be said rather than found.
2026-10-10 18:08:38 +02:00
mesh-admin
d836092329
Merge pull request 'ADR 0279, to-be 53 §10: the issue tracker triages every new issue, and an issue is ready when what it depends on is delivered' ( #285 ) from decisions/0279-the-issue-tracker-triages-every-new-issue into main
2026-10-10 16:00:22 +00:00
jochen
d5aecc7a31
ADR 0279: set says who set a value in its event; a value is changed, not cleared
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-10 17:54:55 +02:00
jochen
6b718eeca3
ADR 0279: a wontfix duplicate lets go only with its original; ready said once per spell; a delivery not asked is loud (review)
2026-10-10 17:54:48 +02:00
jochen
3e346e7cd7
ADR 0279: ready waits for the pull requests fixed-by names, not every entry
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-10 17:49:42 +02:00
jochen
daa9f171ae
Issue reports carry only opened: the tracker holds every status, so no copy can drift
...
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
The import of slice 3 (ADR 0275) was checked against every folder: no report changed since the
commit it read, and the tracker holds each report's status, owner, fix, design amendment, replay
and closing day. The keys are removed from all 361 reports, cycle.py refuses them in any report,
and the playbooks, skills and READMEs that still pointed at them name the tracker instead.
2026-10-10 17:44:18 +02:00
jochen
fa6acb04c9
ADR 0279, to-be 53 §10: the issue tracker triages every new issue, and an issue is ready when what it depends on is delivered
...
The operator asked for severity and what an issue needs to be estimated by the
judgement that already reads the backlog, and for dependencies between issues,
an issue being workable only once what it waits for is on the machines.
2026-10-10 17:38:06 +02:00
jochen
5f2f520018
ADR 0278: the check's worst case is under the tool runner's two minutes, not one
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-10 17:21:39 +02:00
jochen
f89c2c350d
ADR 0278: the check as a whole takes up to a minute, kept alive by the tool runner (issue 387); one judgement at a time
...
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
Review found the two questions together exceed the consumer's ack wait, which the
tool runner did not extend; the record says so and names the fix it waits on.
2026-10-10 17:20:00 +02:00
jochen
cf3065c660
ADR 0278, to-be 53 §9: the issue tracker checks every new issue for a duplicate
...
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 asked for duplicates to be consolidated, and better, when an issue is
opened rather than on a schedule. A judgement needs a model, and the mesh had no
channel for one; the agent module answers one question with no tools, under the
node's licence, and the tracker acts only on a clear duplicate, closing the newer
issue and keeping its report on the older one.
2026-10-10 17:04:27 +02:00
jochen
6d1310f1ea
An issue's status lives in the issue tracker: playbook 03, cycle.py and the notes slice 3 of ADR 0275 asked for
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-10 15:54:32 +02:00
mesh-admin
1ea678c6bd
Merge pull request 'ADR 0277: a trusted setting is proposed through a verb and set on the operator's warrant, and a module's own secret is asked for and typed at the desk' ( #278 ) from decisions/0277-a-trusted-setting-is-proposed-and-set-on-the-operators-warrant into main
2026-10-10 12:50:19 +00:00
jochen
3539446885
ADR 0277: the migrations are 0090 and 0091, and the code lands in two pull requests
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-10 14:42:47 +02:00