From 0b21bd0b268f5e21fba9e58c5075f9af0b8b6535 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 21 Oct 2026 01:55:22 +0200 Subject: [PATCH] Name ADR 0475 in design 60, now its number is reserved --- 03-DESIGN/01-to-be/60-the-brother-module.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/03-DESIGN/01-to-be/60-the-brother-module.md b/03-DESIGN/01-to-be/60-the-brother-module.md index 0c1b00da..55dd6411 100644 --- a/03-DESIGN/01-to-be/60-the-brother-module.md +++ b/03-DESIGN/01-to-be/60-the-brother-module.md @@ -8,6 +8,7 @@ decisions: - "ADR 0467" - "ADR 0468" - "ADR 0474" + - "ADR 0475" --- # 60 — The brother module @@ -19,7 +20,7 @@ one call, reads the device's state and its admin pages, restarts it, and changes where a mistake cannot lock the operator out or open the device. Only the module's device process ever holds the device's admin password or the bucket's key.** (ADR 0464 and ADR 0467 are in force. Proposed, and not in force: ADR 0468 for the device process, the bucket and -the parts; ADR NNNN for the feeder, multi-page and several-document scans and the one-call print; ADR 0474 for +the parts; ADR 0475 for the feeder, multi-page and several-document scans and the one-call print; ADR 0474 for reading every page, configuring, the refused pages and the restart.) **Acceptance.** The operator, or an agent through the mesh MCP server, scans a document from the glass and finds it @@ -68,22 +69,22 @@ fingerprint is refused and nothing is sent. ## 2. Scanning -What ADR 0464 decided is the glass, one page, one PDF page. ADR NNNN (proposed) widens it to the feeder, to several +What ADR 0464 decided is the glass, one page, one PDF page. ADR 0475 (proposed) widens it to the feeder, to several documents on the glass and to documents of several scans; until it is accepted, only ADR 0464 holds. - **The glass.** One page over the whole glass. The document lies on the lid, which is a white of its own, so the module measures the lid where no document lies and cuts the document out of it with a small margin. When it finds no document, or one that fills the glass, it keeps the whole page and says it did not crop (ADR 0464 §3). -- **Several documents on the glass** (ADR NNNN, proposed). Documents lying apart on the glass are each cut out and +- **Several documents on the glass** (ADR 0475, proposed). Documents lying apart on the glass are each cut out and filed as a PDF of their own. -- **One document of several glass scans** (ADR NNNN, proposed). A caller starts a document, adds a glass scan to it +- **One document of several glass scans** (ADR 0475, proposed). A caller starts a document, adds a glass scan to it as often as it needs, and finishes it, and the pages become one PDF. A document left unfinished is filed whole after 30 minutes, so no scan is lost. -- **The feeder** (ADR NNNN, proposed). The feeder scans whole sheets, one side or both, and every page of the run +- **The feeder** (ADR 0475, proposed). The feeder scans whole sheets, one side or both, and every page of the run goes into one PDF, in the order the scanner gave them: one object in the bucket and one announcement, with its page count. A feeder page is never cropped. A run that is cut off before its end is an error, never a short PDF said as success; a unit test checks it. -- **A long run** (ADR NNNN, proposed). A feeder run may take longer than a call through the mesh MCP server may +- **A long run** (ADR 0475, proposed). A feeder run may take longer than a call through the mesh MCP server may wait. Such a call answers that the scan started, with an id, and the caller reads its outcome by that id. A scan that was announced is always filed. - **The real resolution.** The module reads the resolution from the image it receives, never from what it asked: a @@ -99,7 +100,7 @@ is the evidence. ## 3. Printing A caller prints in one call: `printer.print` takes a kept scan by its key, a document it has uploaded, or a file -under the operator's home folder, which the verb uploads and prints in the same call (the file: ADR NNNN, proposed); +under the operator's home folder, which the verb uploads and prints in the same call (the file: ADR 0475, proposed); with the copies, the sides and the paper. The device process fetches the document from the bucket and sends it to the printer in a format the printer itself lists as accepted, read before the job; a document in another format is refused with the printer's list (ADR 0468 §5). A document larger than one bus message travels in parts, each under the bus's @@ -166,7 +167,7 @@ Configure changes the device's pages and never the module's config (ADR 0474, pr ## 6. Health -The device process's health is its unit. The module's health, as ADR NNNN proposes, compares the certificates the +The device process's health is its unit. The module's health, as ADR 0475 proposes, compares the certificates the printer serves, without a login, with the pinned one, and is unhealthy, naming the new fingerprint, when the printer serves one that is not pinned; a printer that does not answer is healthy with a note, and with no printer address set the module waits for that setting. Until that is accepted, a changed certificate shows only when a verb is refused. A certificate the device @@ -182,4 +183,4 @@ missing page and expects the error. document travels through a signed link to the bucket instead, and only its key crosses the bus. - **Restart is not built yet.** `printer.restart` is decided (ADR 0467 §5) and follows `printer.configure`. - **Not built yet either:** several documents on the glass, a document of several glass scans, the long run's id - and the print of a file (ADR NNNN, proposed). + and the print of a file (ADR 0475, proposed).