diff --git a/03-DESIGN/00-as-is/13-the-console.md b/03-DESIGN/00-as-is/13-the-console.md index c24d94b..c45170b 100644 --- a/03-DESIGN/00-as-is/13-the-console.md +++ b/03-DESIGN/00-as-is/13-the-console.md @@ -38,7 +38,8 @@ The console asks the `mesh-controller` seat's `tools` verb beside the modules an tools as `.` — `mesh-controller.status`, `mesh-controller.push` and the other ten. A call to `.` reaches the seat when the prefix is a seat declaring that verb, and the module otherwise; `seat:.` says so outright. When the control plane does not answer, the list -names `mesh-controller (seat)` as not answering and carries the modules' tools regardless. +names `mesh-controller (seat)` as not answering and carries the modules' tools regardless. The +`mesh-controller` *module* is always named as not answering: it serves no module tools, only its seat's. ## Around it diff --git a/03-DESIGN/01-to-be/33-the-tools-the-mesh-answers.md b/03-DESIGN/01-to-be/33-the-tools-the-mesh-answers.md index 9e0d28a..e1215ac 100644 --- a/03-DESIGN/01-to-be/33-the-tools-the-mesh-answers.md +++ b/03-DESIGN/01-to-be/33-the-tools-the-mesh-answers.md @@ -1,6 +1,6 @@ --- layer: to-be -status: in-progress +status: implemented code: [mesh-controller, mesh-tools] updated: 2026-09-30 decisions: @@ -139,6 +139,24 @@ verb answers every seat's tools from the records, because the console cannot rea console lists a role's tools beside the modules' own and resolves `.` to the seat when the seat declares that verb. Which verbs each *other* seat serves stays a decision per seat, still untaken. +## What shipped, 2026-09-30 + +mesh-controller PRs 166 and 167, mesh-tools PR 21. Verified on the live mesh the same evening: the +console on a workstation lists the twelve verbs as `mesh-controller.` beside 67 module tools, and +`mesh-controller.nodes` and `mesh-controller.status` answer through it with what the commands print. + +Two things shipped bent. **The grant arrived after the holder started**: the controller composes the +bus's user list and a push delivers it, so the first controller to serve its seat subscribed before +the broker's list named the grant, the server refused all twelve subscriptions, and the client never +retried — a holder now rebinds a refused subscription every thirty seconds (PR 167), and a controller +roll-out that adds a grant is followed by a push to the broker node. **A JSON verb's answer was parsed +from both output streams**, so `status --json`'s warnings hid the document as data; the answer is now +parsed from standard output alone (mesh-controller PR 168, pending). The `output` field carried it +either way. + +What stays as designed and not built: which verbs any *other* seat serves, and §3 for module-declared +seats' schemas beyond the names their manifests already list. + ## What this does not settle - Which verbs each seat should serve. That is a decision per seat, and the reason to do it slowly: a diff --git a/03-DESIGN/01-to-be/35-reading-the-record.md b/03-DESIGN/01-to-be/35-reading-the-record.md index 40d8416..0eff58f 100644 --- a/03-DESIGN/01-to-be/35-reading-the-record.md +++ b/03-DESIGN/01-to-be/35-reading-the-record.md @@ -1,6 +1,6 @@ --- layer: to-be -status: in-progress +status: implemented code: [mesh-catalog modules/records] updated: 2026-09-30 decisions: @@ -71,6 +71,20 @@ harmless. The mesh session of design 15, when it exists, calls this rather than | a sync against an unreachable origin leaves the checkout standing and says why | silence and success never look alike | | live: through the console, `records_search` for a phrase that appears only in a design document here returns it | issue 006's closing check | +## What shipped, 2026-09-30 + +mesh-catalog PR 183, then PR 185. Verified on the live mesh the same evening: `records` assigned to the +control node with `{"repository": …}` as its setting, its checkout at the repository's `main` with 478 +documents, its five tools listed by the console beside every other tool, and — ADR 0025's check — +`records_search` for a phrase from this document's title returned it from where it is written, with +the commit. The first live search missed: the phrase chosen from ADR 0025 straddled a line break under +emphasis, and the reader matched single lines. PR 185 matches a line together with the next and +ignores emphasis marks, which the module's test now covers; until it rolls, a phrase that wraps is one +to shorten. + +The reader's `consumes` names the forge module's event rather than the `git` seat, because the seat +declares none; a merge into the repository was seen and pulled within seconds. + ## What this does not settle - Ranking or meaning. A search that understands a question is the session's job, not the reader's. diff --git a/04-ISSUES/006-hq-is-not-indexed-into-the-knowledge-base/00-report.md b/04-ISSUES/006-hq-is-not-indexed-into-the-knowledge-base/00-report.md index 08eba24..a8812d3 100644 --- a/04-ISSUES/006-hq-is-not-indexed-into-the-knowledge-base/00-report.md +++ b/04-ISSUES/006-hq-is-not-indexed-into-the-knowledge-base/00-report.md @@ -1,9 +1,9 @@ --- -status: located +status: resolved opened: 2026-08-23 located-in: [mesh-catalog modules/records, mesh-catalog modules/mesh-console] -fixed-by: -amended-design: 02-DECISIONS/0025-the-design-record-is-read-not-copied.md +fixed-by: ADR 0153; mesh-catalog PR 183 (records), PR 185 (a phrase that wraps) +amended-design: 03-DESIGN/01-to-be/35-reading-the-record.md --- # 006 — This repository is not indexed into the knowledge base, and the claim that it is holds up a decision @@ -193,3 +193,16 @@ forge and answering `records_search`, `records_read`, `records_list`, `records_s [35 — Reading the record](../../03-DESIGN/01-to-be/35-reading-the-record.md). The module's test runs 0025's check against a repository it makes; this record closes when the same check passes through the console on the live mesh, and says so below. + +## Resolved, 2026-09-30 + +The check ADR 0025 names passed on the live mesh: through the console on a workstation, +`records_search` for a phrase that appears in one design document here returned that document and the +commit it was read at, from a checkout the mesh keeps and nobody copied. What this record asked on +2026-08-23 — *does the searcher find it without already suspecting it exists?* — is answered by where +the tool sits: in the same list as the forge's and the mesh's own, described as the thing to search +before forming a hypothesis. Reachable became surfacing when the surface became a list. + +Open beside it, and not this record's: the mesh has no symptom-indexed memory at all since the +cut-over ([as-is 07](../../03-DESIGN/00-as-is/07-knowledge.md) says so), and the lessons of these +days are in this repository by hand.