The predecessor is retired on every node and what it still owned on the two workstations — some thirty modules of dotfiles, user units and /etc files — is owned by nothing. To-be 29 covers one directory under the home; the operator wants the whole machine, system folders and home alike, as modules: one default configuration each, varied per node by settings or a kept region, never an edit; roles the machine has once as node-scoped seats with tool contracts; the graphical stack gated by a capability so the same catalogue serves the servers. Four documents: the intended behaviour in the mesh's words; the predecessor's desktop measured (34 modules, one with 88 files, 4 flavors and ~90 theme variables) against what the records already give and what is missing (the account is empty on every node, no user-scoped units, settings leak, tools run in a container per module per node); the direction the operator set for where tools run — one executor per node, host-side, module-agnostic, the console renamed and moved out of its container, superseding 0047/0150 for tools; and the candidate seats of the environment with first verbs, the shell first.
5.2 KiB
status, initiated, touches, became
| status | initiated | touches | became | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| active | 2026-10-02 |
|
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 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), seats and their contracts (ADR 0132), where a module's tools run (ADR 0150, ADR 0152, to-be 33 §6), the host's vocabulary (to-be 05), managed files and settings (ADR 0011, issue 168), and the catalogue's shape (as-is 10).
Documents.
- 01 — The intended behaviour: the operator's wish, written as how the mesh behaves, in the mesh's own words.
- 02 — What exists, and what is missing: the predecessor's desktop modules measured; which records already say what is wanted; the gaps.
- 03 — One tool executor per node: 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: the roles a machine has once, their candidate contracts, and what gates each.
What this must settle before it graduates.
- 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.
- One tool executor per node, host-side, module-agnostic; which records it supersedes and in what form the console continues.
- 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.
- User-scoped units on the host's
serviceshape, and a service-manager seat whose holder serves the tools about them. - The operator account stated on every node; today no node record carries one.
- The seats of the environment and their verbs, one record per seat, slowly, because a seat's tools bind every future holder.
- 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.