Huginn/crates/mind-body
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 9298371f95 Target gains repos: a campaign's repo set changes by target revision
PipelineTarget.repos (additive, `= absent`, epoch stays v2) names the
campaign's whole repo set from that revision on; repos_in_force is the one
owner of cut_spec membership and replaces the direct campaign.repos check;
a revision past the first may not empty the set its predecessor named
(EmptyRepos on the target id). Golden line and regenerated schemas follow
in the next commit (ruling campaign-repo-set-home).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 17:38:04 +02:00
..
src Target gains repos: a campaign's repo set changes by target revision 2026-10-22 17:38:04 +02:00
tests Target gains repos: a campaign's repo set changes by target revision 2026-10-22 17:38:04 +02:00
Cargo.toml mind-body: the waker, one cycle that reads the brake once, waits out the cadence since the newest Persona turn, and hands its Grant to open_and_launch 2026-10-12 08:16:10 +02:00
clippy.toml mind-body: the process environment is unreadable by library code, by lint 2026-10-10 20:15:18 +02:00
README.md mind-body README: host() lives in src/bin/mind-wake.rs; glob reaches it 2026-10-20 14:09:36 +02:00

mind-body

The Mind's body: the control store, the launch primitive and the mind-wake one-shot.

The container lane

tests/wake.rs holds one #[ignore]d test that runs the real mind-wake binary against the real huginn-daemon and a real store at the brake's root, and asserts that the host a run records is the kernel's hostname. It writes /etc/gamecult/minds, so it runs in a container only (/.dockerenv), as root, with the daemon built beside the binary. A plain cargo test skips it, and so does cargo mutants, which therefore reports the three host() mutants in src/bin/mind-wake.rs as missed. The lane that kills them:

cargo build -p huginn-daemon -p mind-body --all-targets \
  && cargo test -p mind-body --test wake -- --include-ignored

On Yggdrasil, run it through the verify stopgap in the Rust image (ygg-verify.sh <worktree> <rev> rust '<the command above>').

Mutation testing of the waker needs the glob form, because -f src/wake.rs finds no mutants in this workspace: cargo mutants -p mind-body -f "**/src/wake.rs" -f "**/src/bin/mind-wake.rs". The second glob reaches host(), whose mutants only the container lane kills.