--- status: graduated initiated: 2026-10-02 touches: - 02-DECISIONS/0040-what-a-module-is.md - 02-DECISIONS/0011-managed-files-are-generated-never-edited.md - 02-DECISIONS/0132-a-seat-carries-the-tools-its-holder-must-serve.md - 02-DECISIONS/0150-a-modules-own-code-runs-as-supervised-processes-under-one-account.md - 02-DECISIONS/0152-the-operators-surface-is-a-module-the-console.md - 02-DECISIONS/0161-what-deserves-a-seat.md - 03-DESIGN/01-to-be/05-the-node-host.md - 03-DESIGN/01-to-be/29-a-node-has-operator-accounts.md - 03-DESIGN/01-to-be/33-the-tools-the-mesh-answers.md - 03-DESIGN/01-to-be/34-the-console.md - 03-DESIGN/00-as-is/10-module-catalogue.md - 04-ISSUES/160-a-machine-says-little-about-itself-and-only-when-asked/00-report.md - 04-ISSUES/168-a-setting-reaches-every-file-and-contribution/00-report.md became: - 03-DESIGN/01-to-be/37-the-operators-machine.md - 02-DECISIONS/0173-the-operators-machine-is-the-meshs-and-a-module-is-what-it-declares.md - 02-DECISIONS/0174-a-node-varies-a-module-through-settings-and-kept-regions-never-an-edit.md - 02-DECISIONS/0175-one-tool-runtime-per-node-serves-every-modules-tools-on-the-host-side.md - 02-DECISIONS/0176-the-login-shell-is-a-node-seat-and-execute-is-its-contract.md - 02-DECISIONS/0177-a-unit-may-be-user-scoped-and-the-service-manager-is-a-node-seat.md --- # 018 — The operator's machine as modules **What.** The mesh owns the whole machine, not only the services on it. Everything a person configures on a node — the login manager, the display server, the window manager, the shell, the terminal, the launcher, the notifier, the audio setup, the boot images, the downloads folder, the agent at the terminal — is a module: a package, the files it owns under `/etc` and under the operator's home, the seat it holds, the tools it serves. One default configuration per module, varied per node only through settings rendered into the file or a kept operator region, never through an edit. The servers take the universal modules (shell, prompt, git, the agent); the workstations take those and the graphical stack, which a capability the machine reports gates. This effort writes that behaviour down, measures what the predecessor's desktop modules actually contain, and settles what the mesh must gain before the first of them can be written. **Why.** The predecessor is retired on every node. What it still owned on the two workstations — about thirty modules' worth of dotfiles, user units and `/etc` files — is now owned by nothing: no generator regenerates them, and a fix to one of them is a hand edit that nothing records. The migration scoped these modules out as *the workstation's own environment*, and [to-be 29](../../03-DESIGN/01-to-be/29-a-node-has-operator-accounts.md) names them as the last thing the predecessor was keeping alive. To-be 29 covers one directory, `~/.ssh`, and draws a boundary inside it. The operator wants no boundary: the machine is the mesh's, as far as it makes sense to configure it. That is a wider scope than any design states, and it reaches three records that were written for services: what a module is, where a module's tools run, and what a managed file may be. **What it touches.** The module definition ([ADR 0040](../../02-DECISIONS/0040-what-a-module-is.md)), seats and their contracts ([ADR 0132](../../02-DECISIONS/0132-a-seat-carries-the-tools-its-holder-must-serve.md)), where a module's tools run ([ADR 0150](../../02-DECISIONS/0150-a-modules-own-code-runs-as-supervised-processes-under-one-account.md), [ADR 0152](../../02-DECISIONS/0152-the-operators-surface-is-a-module-the-console.md), [to-be 33](../../03-DESIGN/01-to-be/33-the-tools-the-mesh-answers.md) §6), the host's vocabulary ([to-be 05](../../03-DESIGN/01-to-be/05-the-node-host.md)), managed files and settings ([ADR 0011](../../02-DECISIONS/0011-managed-files-are-generated-never-edited.md), [issue 168](../../04-ISSUES/168-a-setting-reaches-every-file-and-contribution/00-report.md)), and the catalogue's shape ([as-is 10](../../03-DESIGN/00-as-is/10-module-catalogue.md)). **Documents.** - [01 — The intended behaviour](01-the-intended-behaviour.md): the operator's wish, written as how the mesh behaves, in the mesh's own words. - [02 — What exists, and what is missing](02-what-exists-and-what-is-missing.md): the predecessor's desktop modules measured; which records already say what is wanted; the gaps. - [03 — One tool executor per node](03-one-tool-executor-per-node.md): where a module's tools run. The direction the operator set, the evidence for it, and what it supersedes. - [04 — The seats of the environment](04-the-seats-of-the-environment.md): the roles a machine has once, their candidate contracts, and what gates each. **What it had to settle, and where each landed.** *(Graduated 2026-10-02.)* 1. A module is one *managed thing*, software or not, and every module may serve tools — or ADR 0040 already says this and only its examples are narrow. 2. One tool executor per node, host-side, module-agnostic; which records it supersedes and in what form the console continues. 3. Per-node variation is a setting rendered into the file or a kept region, never an edit — ADR 0011 stands — and issue 168 is fixed before any environment module carries a setting. 4. User-scoped units on the host's `service` shape, and a service-manager seat whose holder serves the tools about them. 5. The operator account stated on every node; today no node record carries one. 6. The seats of the environment and their verbs, one record per seat, slowly, because a seat's tools bind every future holder. 7. Where the environment modules live: this catalogue, or one of their own as the media chain has; and whether a third-party organisation's tooling belongs in a public catalogue at all.