mesh-knowledge: refresh repairs records the knowledge base drafted, keeping their clauses while their source is unchanged; ADR 0114 and 0148 as fixtures (review of #213)
mesh/merge-gate pass: builds mesh-knowledge → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery covered: a later merge that contains it was delivered: novox/mesh-catalog@1b7f79f76177 (merged as 73367192 into main, walk plan-17917161183…

This commit is contained in:
2026-10-11 12:44:08 +02:00
parent 1cc0ab369f
commit 156fda4b33
5 changed files with 592 additions and 25 deletions
+10 -6
View File
@@ -115,12 +115,16 @@ no counter moves. A second run changes nothing and says so. `dry-run` writes not
`mesh-knowledge dry-run <hq checkout>` gives the same dry run over a checkout on disk, against an empty knowledge
base.
**`refresh`** (the import's third argument) repairs what an earlier import lost or misread (hq issue 487). For a record held whose every version
was written by the import or a refresh (no one has changed it since, and nothing waits over it), it reads the
record again at the commit and, when what it holds differs, writes it as a new version: "refreshed from hq at
<commit>: <path>", naming each field that differs. A record anyone changed after its import (drafted, accepted
over, corrected) is never touched, and its row says so. A record read again and found the same is left as it is,
so a second refresh changes nothing. With `dry-run` it says, record by record, what it would change.
**`refresh`** (the import's third argument) repairs what an earlier import lost or misread (hq issue 487). It
takes a record held whose every version was written by the import, a refresh, or the knowledge base's own
drafting and confirming of its clauses (nothing waits over it), reads it again at the commit and, when what it
holds differs, writes it as a new version: "refreshed from hq at <commit>: <path>", naming each field that
differs. It keeps what the knowledge base made of the record: written clauses with their statuses when hq writes
the same ones, drafted or confirmed clauses (and their drafting) while the text they were drafted from is what hq
says (else they are drafted again), and the clause a change of hq's names once judged. A record anyone changed
after its import (returned, corrected, accepted over) is never touched, and its row says so. A record read again
and found the same is left as it is, so a second refresh changes nothing. With `dry-run` it says, record by
record, what it would change.
A decision whose Decision section's own top-level list writes numbered statements with a bold lead gets them as
`written` clauses. A numbered list inside a `###` subsection of the Decision section is that subsection's prose,