diff --git a/docs/eureka-body-map.md b/docs/eureka-body-map.md index 7188de3..d084e6b 100644 --- a/docs/eureka-body-map.md +++ b/docs/eureka-body-map.md @@ -21,6 +21,14 @@ mind-control-store and run-kind had merged. New facts are F18-F20, which name th owner of the brake stop. The Brake, Units and run rows changed, and a rationale section was added. +Revised again on 2026-10-09 by Imagination (`imagination-launch-r3`, session +`self-2026-10-09-eureka`) at the mind-launch head `8dee875`, after Soul's verdict +`eureka-body:verdict:cut-mind-launch.s1` falsified that cut with nine findings. New fact +F21. The run, Repetition breaker, Brake and Units rows changed, and the rationale gained +"Who decides one live run, and who ends a dead one" and "What the breaker counts". +Specs: `cut-run-live-admission.r1`, `cut-mind-launch.r3`, `cut-mind-wake.r3`, +`cut-brake-stop.r2`. + ## Pinned heads (fetched 2026-10-08 ~12:10 UTC) | Repo | Ref | Commit | Note | @@ -179,6 +187,36 @@ Each line: what was run, where, result. 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. +- **F21 What the mind can attribute a document to, at the mind-launch head `8dee875`.** Read + from a throwaway worktree on 2026-10-09 (Imagination `imagination-launch-r3`). + - A receipt's provenance is `{ faculty, agent, session, tool }`, all declared by the writer. + No selection alias reads `session`, so attributing by session means scanning headers. + `open_and_launch` admits a run with session equal to its run label + (`crates/mind-body/src/launch.rs:205`). Nothing makes a Self run's later admissions carry + that label: the Self organ is not built. + - Citations are typed content. A `cites` selection with no role over every schema is + supported and tested (`crates/huginn-mind/src/query.rs:1499`). A run's header facts carry + `turn`, `operated_by` and `claims` (query.rs:139). + - The breaker at 8dee875 scans every header in the mind, newest first, back to the oldest + counted run (`crates/mind-body/src/queue.rs:210`). Its cost grows with the whole mind. + - `Mind::admit` takes `&mut self` (`crates/huginn-mind/src/admission.rs:81`), so + admissions are serialized. The run rule is `run_claims_rule` (admission.rs:537-547). It is + applied when a run opens (admission.rs:526-529) and when a withdrawal reinstates a closed + run (admission.rs:685-694). It checks claims only. + - `MindRefusal` is huginn-mind's (`crates/huginn-mind/src/refusal.rs`), published in + `schemas/cultnet/huginn.mind_response.v1.schema.json` and pinned by + `published_wire_schemas_match_derivation` (wire.rs:276). The leaf's `PipelineRefusal` has + five variants (`crates/eureka-pipeline/src/lib.rs:59-65`) and is not where admission's rules + refuse. + - `Effective::Released { cadence, run_cap_usd }` is a public struct variant + (`crates/mind-body/src/control.rs:117-120`), so any caller can build one without reading the + store. `ControlState::effective` is called only by `read_effective` (control.rs:192-197). + - huginn-mind's `fixtures::run` builds an in-force SelfRun with `operated_by: Mind` + (fixtures.rs:331-342). The claim tests open several of them at once + (admission.rs:1987-2015). + - `Slug::validate_slug` and `Label::validate_label` are public + (crates/eureka-pipeline/src/lib.rs:287, 386). `RunTurn` and `RunOperator` spell their + variants through `Debug`, which is also their `NAMES` (lib.rs:436-452). ## The model page (step 0b) @@ -189,9 +227,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: