diff --git a/03-DESIGN/01-to-be/55-the-knowledge-base.md b/03-DESIGN/01-to-be/55-the-knowledge-base.md index 41fa48b2..d990358a 100644 --- a/03-DESIGN/01-to-be/55-the-knowledge-base.md +++ b/03-DESIGN/01-to-be/55-the-knowledge-base.md @@ -811,7 +811,8 @@ reached which nodes is not on it: a merged group no longer waits on the operator carries the ask's id, asker, headline and the channels it was offered on, and `closed` how it ended; never an option, a token or a warrant's proofs, so neither says more than `asks` already answers. Both go on a restricted stream of the router (ADR 0363 §4), heard only by a module the router's trusted config value `readers` grants, which names the - knowledge base alone; `decided` stays read by its asker only. + knowledge base alone; `decided` stays read by its asker only. The stream is of the template events: kept seven + days, capped at 64 MiB, dropping its oldest when full, so a page down longer than a week rebuilds from `asks`. - **Current on events, never polled** (ADR 0616 §3). Each source's block is built once at start from its verb, its first view, and then kept in memory from that source's events. A verb is asked again only for a source marked unanswered. - **A source that does not answer says so, never shows as empty** (ADR 0616 §6). A source is marked unanswered for one of two @@ -825,9 +826,12 @@ reached which nodes is not on it: a merged group no longer waits on the operator unanswered verb then turns the mark into one from the verb). These are the only asks the page makes after start. - **It writes nothing** (ADR 0616 §4). The page has no form and no verb behind it and answers GET only. It is served by the module's own process on a port the module declares, reached through the route proxy by a route the module - requires, which only the operator may open. + requires, which only the operator may open. The port answers the route proxy alone, never the mesh network: it + listens `from: machine` where the route proxy runs on the same node; a listening scope that grants one module's + process (the route proxy's) on another node has no manifest form today, an open point tracked on issue 1968. - **Every number on it can be read by a tool** (ADR 0616 §5): a tool of the knowledge base answers the page's model as data, - marked reads, so the page shows nothing a tool cannot read (tools-are-how-a-module-is-spoken-to). + marked reads, so the page shows nothing a tool cannot read (tools-are-how-a-module-is-spoken-to); a second tool, + marked acts, asks one source's verb again by hand and rebuilds its block, recorded as a hand act. - **Health.** The module's health carries the page's last rebuild and each source's last answer, and is degraded while any source is unanswered. - **Built after the ledger store**: the page reads the records from the ledger (§ 2.1), so it is built after the @@ -844,7 +848,8 @@ and in the health, never as an empty list, asked again on the backoff alone, its and a subscription stopping its heartbeat marks it unanswered from the subscription, asks nothing while silent, and asks the verb once on its next event or heartbeat. In the router, an ask offered emits `offered` once and each of its five ends emits `closed` once with how it ended, with no option, token or proof in either body; the knowledge base -hears the stream and another module, an asker among them, is refused. Live: after its delivery the operator opens the +hears the stream and another module, an asker among them, is refused. The page's port refuses a connection from any +module but the route proxy. The re-read tool rebuilds one source's block and asks no other. Live: after its delivery the operator opens the page and sees design 47's milestones, rendered headless and looked at before it is handed over. ## What it leaves out