Merge pull request 'Nothing reads decision records from hq: records_decisions retired, reserve asks the knowledge base, an empty import refuses (hq issue 488)' (#214) from fix/488-nothing-reads-records-from-hq into main

This commit was merged in pull request #214.
This commit is contained in:
2026-10-11 10:55:19 +00:00
18 changed files with 403 additions and 330 deletions
+7 -1
View File
@@ -28,6 +28,11 @@ operator, it is accepted only on the operator's Approve, given on a channel that
`ask`, `get`, `holds` and `history` stay within `bound` bytes (4096 unless asked for, at most 65536) and say what they cut
and how to read the rest. The module's own tool `knowledge_health` answers its health (below).
Its tool `knowledge_highest` answers the highest decision and research number it holds, every number spent
counted (accepted, proposed, reserved or withdrawn): the issue tracker's `reserve` starts and raises its counters
above them (hq issue 488). It refuses while nothing is held. It is a tool of the module, not a verb of the seat,
which serves the verbs ADR 0290 rule 6 names.
**Who acted** is the caller as the runtime proves it, never an argument: no verb takes one. The tool runner takes
the caller's bus user from the caller-named subject a call arrived on and hands it through the SDK
(`stdio.CallerOf`, hq issue 365). A call on the subject that names no caller (served beside it for one release, hq
@@ -123,7 +128,8 @@ as text. `get` serves each, and any other field a record of hq wrote under `fiel
## The import
`import` reads hq through the records module at the commit its checkout stands at. With `commit`, it refuses a
checkout standing elsewhere. It writes every decision record and research effort whole, as version 1, naming the
checkout standing elsewhere. At a commit where hq holds no decision record and no research effort (the records
have left it, hq issue 426), it refuses and says so, rather than answering "nothing created" as a success. It writes every decision record and research effort whole, as version 1, naming the
commit and path it came from. It creates only what is absent and never overwrites. It never asks for a number, so
no counter moves. A second run changes nothing and says so. `dry-run` writes nothing. From a terminal,
`mesh-knowledge dry-run <hq checkout>` gives the same dry run over a checkout on disk, against an empty knowledge