diff --git a/02-DECISIONS/README.md b/02-DECISIONS/README.md index a1098ee..ad4a458 100644 --- a/02-DECISIONS/README.md +++ b/02-DECISIONS/README.md @@ -309,6 +309,7 @@ python3 00-META/checks/index.py fail if stale - **0206** — [A node reports the Anthropic grant it holds; the licence manager adopts a licence by refreshing it, and what each node should hold is the manager's state](0206-a-node-reports-the-anthropic-grant-it-holds-and-the-licence-manager-adopts-a-licence-by-refreshing-it.md) - **0208** — [The graphical session is one module per piece, on the mesh's seats](0208-the-graphical-session-is-one-module-per-piece-on-the-meshs-seats.md) - **0209** — [A login on a node moves that node to the account it logged in to; an API key is added from any node, sealed](0209-a-login-on-a-node-moves-that-node-to-its-account-and-an-api-key-is-added-from-any-node-sealed.md) +- **0211** — [A machine's power is a node seat, its moments take contributions, and its states are events](0211-a-machines-power-is-a-node-seat-its-moments-take-contributions-and-its-states-are-events.md) ### How it is built diff --git a/03-DESIGN/01-to-be/42-the-machines-modules-in-order.md b/03-DESIGN/01-to-be/42-the-machines-modules-in-order.md index 82b850e..3b8cb40 100644 --- a/03-DESIGN/01-to-be/42-the-machines-modules-in-order.md +++ b/03-DESIGN/01-to-be/42-the-machines-modules-in-order.md @@ -15,6 +15,7 @@ decisions: - 02-DECISIONS/0205-software-the-distribution-does-not-package-ships-as-a-pinned-archive-of-the-module.md - 02-DECISIONS/0207-a-module-depends-on-the-node-seats-that-apply-its-resources.md - 02-DECISIONS/0208-the-graphical-session-is-one-module-per-piece-on-the-meshs-seats.md + - 02-DECISIONS/0211-a-machines-power-is-a-node-seat-its-moments-take-contributions-and-its-states-are-events.md - 02-DECISIONS/0210-a-tools-configuration-is-its-seat-holders-and-every-other-module-extends-it-through-the-seat.md --- @@ -77,6 +78,15 @@ than reported. `kernel` is last because a mistake in it costs a boot. `docker` stays a module without the runtime seat until ADRs 0165 and 0166 are accepted. +**Added 2026-10-04.** Two more modules for every machine: +- `power` holds `node-power` ([ADR 0211](../../02-DECISIONS/0211-a-machines-power-is-a-node-seat-its-moments-take-contributions-and-its-states-are-events.md)). Other modules contribute code for + its moments (after boot, before sleep, after waking, before shutdown, on mains, on battery), and it + publishes the machine's power states on the bus. +- `dbus` holds the message bus. Modules shipping D-Bus policies or services contribute them to it. + It shares curated events, never raw traffic. An upgrade never restarts the bus live: its package + waits for a reboot. A live restart in the middle of a full upgrade took down a workstation's + logins on the day this was written. + ## Phase 2 — both workstations In order: