Steward rulings: a peer steward's decision is a typed ruling in the follower's mind (stacked on #46) #48

Merged
eureka merged 7 commits from hands/eureka-body-steward-rulings into main 2026-11-11 12:56:58 +00:00
Owner

Stacked on #46 (hands/eureka-body-persona-mind-role, head 8018322): the rule check uses its sender_role. #46's commits are this PR's base and must merge first:

  • 69f9003 persona: another Mind reads as role=mind from the swarm's addressing table
  • 8018322 persona tests: goldens read libby as role=mind

Spec eureka-body:cut_spec:cut-steward-rulings.r1, report eureka-body:cut_report:cut-steward-rulings.h1, fork answered by eureka-body:ruling:persona-rule-field-steward-only (steward-only).

A peer steward's decision becomes a typed ruling in the follower's own mind.

  • RulingAuthority leaves unit_enums! for a hand-written enum with Steward { steward, repo, words, event }. Unit variants stay bare strings; the 44 existing golden envelope lines are byte-identical; ruling schema and the wire schemas are regenerated. No epoch bump.
  • huginn-mind: authority row by name(), Steward puts repo and about; index text adds her words; huginn header prints authority=Steward steward= repo=, never the words.
  • Addressee rows carry the repos of the one stewardship read; project_names_of is replaced by stewardships_of.
  • Persona reply gains required rule (max 4). The organ derives authority, decider, repo check (heartbeat table) and event; the model types none of them. Refused and told back: own id, operator, non-Mind, words she never said, a repo she does not steward or an unread table.
  • recall names the decider; REMEMBER_DESCRIPTION's Decided clause rewritten.

Deploy is Self's: one release flips every binary that decodes rulings; rollback past this needs heartbeat.cc archived and any Steward ruling withdrawn first.

Known: tests need unshare -r; 5 mind-body integration tests (control.rs root-store checks, persona_bin) fail in this environment and touch no changed code; clippy -D warnings was already red at main and gains no new warning. Deviations (static repo fault text, no mutation pass) are in the report.

🤖 Generated with Claude Code

**Stacked on #46** (`hands/eureka-body-persona-mind-role`, head 8018322): the rule check uses its `sender_role`. #46's commits are this PR's base and must merge first: - 69f9003 persona: another Mind reads as role=mind from the swarm's addressing table - 8018322 persona tests: goldens read libby as role=mind Spec `eureka-body:cut_spec:cut-steward-rulings.r1`, report `eureka-body:cut_report:cut-steward-rulings.h1`, fork answered by `eureka-body:ruling:persona-rule-field-steward-only` (steward-only). A peer steward's decision becomes a typed ruling in the follower's own mind. - `RulingAuthority` leaves `unit_enums!` for a hand-written enum with `Steward { steward, repo, words, event }`. Unit variants stay bare strings; the 44 existing golden envelope lines are byte-identical; ruling schema and the wire schemas are regenerated. No epoch bump. - huginn-mind: `authority` row by `name()`, Steward puts `repo` and `about`; index text adds her words; `huginn` header prints `authority=Steward steward= repo=`, never the words. - Addressee rows carry the repos of the one stewardship read; `project_names_of` is replaced by `stewardships_of`. - Persona reply gains required `rule` (max 4). The organ derives authority, decider, repo check (heartbeat table) and event; the model types none of them. Refused and told back: own id, operator, non-Mind, words she never said, a repo she does not steward or an unread table. - recall names the decider; `REMEMBER_DESCRIPTION`'s Decided clause rewritten. Deploy is Self's: one release flips every binary that decodes rulings; rollback past this needs `heartbeat.cc` archived and any Steward ruling withdrawn first. Known: tests need `unshare -r`; 5 mind-body integration tests (control.rs root-store checks, persona_bin) fail in this environment and touch no changed code; clippy `-D warnings` was already red at main and gains no new warning. Deviations (static repo fault text, no mutation pass) are in the report. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Config::sender is deleted; sender_role over the session's addressing decides a
sender's role on message, earlier and tail lines, trace inputs, the names a
memory may be about, and who she may open a direct with.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
eureka merged commit ceb1dbdb86 into main 2026-11-11 12:56:58 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Huginn!48
No description provided.