huginn: --session falls back to HUGINN_SESSION, set by mind-self-run #45

Merged
eureka merged 2 commits from eureka-substrate/session-from-env into main 2026-11-11 09:29:57 +00:00
Owner

Closes follow-up eureka-substrate:follow_up:gap-session-id.

  • huginn admit, huginn import and huginn persona put: --session is optional. Explicit flag wins; else env HUGINN_SESSION if non-empty; else refused as before (exit 2, InvalidInput, nothing sent). An env value over 200 bytes (Short) or not UTF-8 is refused naming the variable, without echoing it. Never CLAUDE_CODE_SESSION_ID, never a default.
  • mind-self-run: the child gets HUGINN_SESSION=<run label>, the last segment of the run id (e.g. mind-20261111T072944197Z), the spelling the run's opening receipt already carries as its session. Spawner::spawn takes the session to export; one Self spawn site (fresh and resume are the same call; a rotation is a new run and process and sets its own). Persona spawns pass None. A unit-provided HUGINN_SESSION is not on the child allow-list.
  • Not touched: the eureka-state MCP server (admit/persona_put tools still require session), the skill repo.

Tests: eureka-state 3 cli tests, mind-body 1 spawn-harness test and 1 real-process test; full cargo test -p eureka-state and -p mind-body pass.

🤖 Generated with Claude Code

Closes follow-up eureka-substrate:follow_up:gap-session-id. - `huginn admit`, `huginn import` and `huginn persona put`: `--session` is optional. Explicit flag wins; else env `HUGINN_SESSION` if non-empty; else refused as before (exit 2, InvalidInput, nothing sent). An env value over 200 bytes (Short) or not UTF-8 is refused naming the variable, without echoing it. Never CLAUDE_CODE_SESSION_ID, never a default. - `mind-self-run`: the child gets `HUGINN_SESSION=<run label>`, the last segment of the run id (e.g. `mind-20261111T072944197Z`), the spelling the run's opening receipt already carries as its session. `Spawner::spawn` takes the session to export; one Self spawn site (fresh and resume are the same call; a rotation is a new run and process and sets its own). Persona spawns pass None. A unit-provided HUGINN_SESSION is not on the child allow-list. - Not touched: the eureka-state MCP server (`admit`/`persona_put` tools still require `session`), the skill repo. Tests: eureka-state 3 cli tests, mind-body 1 spawn-harness test and 1 real-process test; full `cargo test -p eureka-state` and `-p mind-body` pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Spawner::spawn takes the session to export; the Self run gives the bare run label (the spelling the run's opening receipt carries). The Persona gives none.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
eureka merged commit 995a5b88f9 into main 2026-11-11 09:29:57 +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!45
No description provided.