From f6b3ec5e7828b902794b718aa14c8a933b5f7b44 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Fri, 9 Oct 2026 20:38:44 +0200 Subject: [PATCH] Map: who stops her units when the brake is held (mind-launch r2, brake-stop r1) Imagination imagination-brake-stop, session self-2026-10-09-eureka: body facts F18-F20, model rows for run, Brake and Units, and the rationale for a synchronous stop owned by `mind-control brake hold`. Co-Authored-By: Claude Opus 5.5 --- docs/eureka-body-map.md | 85 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 79 insertions(+), 6 deletions(-) diff --git a/docs/eureka-body-map.md b/docs/eureka-body-map.md index b1f6008..7188de3 100644 --- a/docs/eureka-body-map.md +++ b/docs/eureka-body-map.md @@ -15,6 +15,12 @@ Revised 2026-10-09 (Modeling, session `self-2026-10-09-morning`) after as read on 2026-10-08 and keep their tense; each carries a note where a cut has since changed it. F15-F17 are new. +Revised again on 2026-10-09 by Imagination (`imagination-brake-stop`, session +`self-2026-10-09-eureka`) at Huginn `df7507b`, after leaf-into-huginn, mind-authority, +mind-control-store and run-kind had merged. New facts are F18-F20, which name the +owner of the brake stop. The Brake, Units and run rows changed, and a rationale +section was added. + ## Pinned heads (fetched 2026-10-08 ~12:10 UTC) | Repo | Ref | Commit | Note | @@ -144,6 +150,35 @@ Each line: what was run, where, result. - **F17 The live Huginn release is still `107552dc`.** Read-only `ssh yggdrasil readlink /opt/gamecult/huginn/current` on 2026-10-09: `releases/107552dc4b27b8856b043616ae74c2ebe7908b66`. Main (`afc35f9`) is ahead of it by the leaf move and the relicense; no deploy has happened since. +- **F18 At Huginn `df7507b` nothing stops a unit of hers.** Read from `git show df7507b:` + on 2026-10-09 (Imagination `imagination-brake-stop`). `crates/mind-body` holds + `control.rs`, `cli.rs`, `main.rs` and `lib.rs`. `cli::run` (cli.rs:40-61) dispatches `show`, + `brake hold`, `brake release` and `dial set`. `brake hold` is `ControlWriter::open(&path)?.set_brake(false, ..)` + (cli.rs:53) and does nothing else. `git grep systemctl` over `crates/mind-body` finds nothing. + The binary sets umask 077 and calls `cli::run` with the root `CONTROL_ROOT` (main.rs:21-37). + The window probe runs the real binary with `brake release` and `brake hold` 100 times + (tests/control.rs:573-581), so a hold that ran `systemctl` would run it in the verify container. + No `launch.rs` exists yet: the Launcher is cut mind-launch. RunTurn and RunOperator carry + `NAMES` (crates/eureka-pipeline/src/lib.rs:507-508). +- **F19 Yggdrasil has no unit, user or control store of hers.** Read-only `ssh yggdrasil` + as `gamecultadmin` on 2026-10-09: + - `systemctl list-units --all 'mind-*'` and `list-unit-files 'mind-*'` both list nothing. + - `ls /etc/gamecult/minds` gives "No such file or directory". `command -v mind-control` + finds nothing. `id mind-eureka` gives "no such user". + - The host runs systemd 257 (257.13-1~deb13u1). `systemctl --help` lists + `stop UNIT...` and "--no-block Do not wait until operation finished", so a stop + waits by default. + - `systemctl stop --no-ask-password 'zz-probe-none@eureka:*.service'` as non-root returned 0: + a glob that matches no loaded unit is a no-op. `systemctl is-active 'huginn*.service'` + matched by glob (`active`). + - Operators act through `sudo`: the gamecult-ops runbook `huginn-yggdrasil.md:86` uses + `sudo systemctl stop huginn`, and `/etc/sudoers.d/` holds `90-gamecultadmin`. +- **F20 The ruling decides when the stop happens.** Ruling `eureka-body:ruling:self-run-actuator` says: + "Holding the brake stops running units (systemctl stop; SIGTERM exits 143 with the turn + unfinished, section 1.4)". It cites the OpenClaw inbox incident: a stop sent as a message + was not acted on in time, and the process was killed at the host (prior-art file + lines 323-325, secondary). Cut mind-wake r2 has the waker return `Held` before any query, + admission or unit call, and lists "the waker ... ending a live run" among its forbidden writers. ## The model page (step 0b) @@ -154,9 +189,9 @@ pipeline kinds are in Huginn `docs/eureka-substrate-map.md`. | --- | --- | --- | --- | | Pipeline wire ids | `epiphany.pipeline..v2`, epoch `epiphany.pipeline.epoch.v2`, defined by the leaf, the Huginn crate `crates/eureka-pipeline` (lib `eureka_pipeline`), ids unchanged. | Renamed once to `eureka.pipeline..v3` by one `mind.redb` migration, at the next breaking leaf change or before the first hosted mind (ruling `wire-names-rename-before-hosting`). Adding the `run` kind or the `Mind` authority variant is additive (old stored documents decode; no migration), so it does not trigger the rename; a field added with the leaf's `= absent` marker is additive too (leaf-read-anchors r2: old bytes decode, empty fields encode byte-identically, `golden/envelopes.txt` gains lines and loses none); a field added any other way would. | Huginn owns the leaf. The migration is a live-mind upgrade, which is the operator's (`mind-rules-which-forks`). | | Leaf crate and schema catalogue | Huginn `crates/eureka-pipeline`, `schemas/cultnet/` (13 pipeline schemas, `gamecult.persona_state.v0`, index, README). `epiphany.work_organ_state.v0` dies: no reader outside Epiphany (grep, F1/F3). | Landed at Huginn `afc35f9` (leaf-into-huginn). Wire pinned by `crates/eureka-pipeline/golden/envelopes.txt` and the opt-in `stored_documents_read_back`. Huginn is AGPL-3.0-only (ruling `eureka-body:ruling:leaf-relicensed-agpl`). | Huginn. Forbidden: any Cargo source resolving into GameCult/Epiphany (`nothing-runs-from-epiphany`). | -| `run` | `:run: