Name ADR 0475 in design 60, now its number is reserved
mesh/merge-gate head 0b21bd0b268f merged into trunk fa165392b12d — pass: the change touches no module of the mesh's graph
mesh/repo-check head 0b21bd0b268f merged into trunk fa165392b12d — pass: its merge-check.sh passed
mesh/delivery delivered

This commit is contained in:
2026-10-21 01:55:22 +02:00
parent e212e3841d
commit 0b21bd0b26
+10 -9
View File
@@ -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).