A registry-only mount at /usr/local/cargo/registry left the package-cache lock under CARGO_HOME=/usr/local/cargo in each
container's own layer, so sibling containers (cargo-mutants stages, concurrent ygg-verify jobs) shared no lock and removed
each other's half-unpacked crate directories. Reproduced on Yggdrasil from an empty registry: 15 of 18 containers failed
with a registry mount, 15 of 18 with RUSTC_WRAPPER= too, 0 of 18 with the volume as CARGO_HOME.
ygg-verify.sh and cargo-mutants.sh mount eureka-cargo-home at /cargo-home and set CARGO_HOME and PATH for the rust image.
Removed: the retry without RUSTC_WRAPPER, its note and diag plumbing, and its two tests and the FAKE_CM_DEADWRAP switch.
Kept: container errors tail 25 lines.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stage containers sharing the eureka-sccache volume died mid-build with cargo's
"could not execute process ... sccache ... (never executed)" or a missing dep-info
file in their own target dir, though the image's sccache is present, executes, and
a lone container builds clean. The wrapper only caches, so a failed build with
RUSTC_WRAPPER set is retried once without it; the job summary carries a NOTE line
saying which way it went, the first attempt's log is kept, and a build dead either
way stays a red baseline (exit 4) with its cause. Container errors now tail 25
lines, not 5. Tests: dead wrapper recovers with NOTE; red with and without the
wrapper stays red.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Four paragraphs written for the Persona, carrying the operator's rulings
persona-doctrine-set-ruled, perfect-machine-is-the-core-instruction,
inversion-of-control and speech-nudge-ruled. Drops "(an idle wake takes no
turn)": a scheduled wake with no messages now takes a turn. #operator now
names what the operator decides herself.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- full-baseline-skipped: stage 2 runs even when stage 1 settled every name (one name rides along; cargo-mutants runs no baseline for an empty selection), so a red suite is a red job
- timeout-mult-splits-missed: CONFIRM_TIMEOUT_MULT defaults to 5 and stage 2 gets --minimum-test-timeout like stage 1
- escaper-pipe-untested: the escaper is the --escape mode, run by the driver and by tests/test-tools.sh with each metacharacter
- zero-test-stage1-wasted: the plan container derives each file's filter and counts its tests (cargo test -- <filter> --list); 0 tests goes straight to stage 2; the container-side baseline.log count is deleted
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One verify job per range: a plan container lists the mutants (diff taken at the
workspace root), stage 1 runs each file's mutants against that file's tests only
and decides only caught and unviable, stage 2 confirms every survivor, timeout,
unfiltered or zero-test file on the full suite, sharded over free slot leases,
and the merge prints one MUTANTS line and the final MISSED/TIMEOUT names.
NAMES reruns chosen survivors; TEST_ARGS skips flaky tests.
Deletes ygg-verify.sh's MISSED/TIMEOUT summary grep and its inline cargo mutants
usage example; the host-mode export gains YGG_SLOTS and YGG_ROOT. Briefs and
SKILL.md name the script; the mock docker grows /cm and /out, with a fake cargo
and a fake flock for the new test-tools.sh cases.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A cut window or caller list now reserves the lines its notes need, the
suggested --max-lines prints everything, and the 50-hit, 20-file, 160-character,
CR and --only bounds each have an assertion.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Campaign row names the opening set; target row gains repos; cut_spec row
gains reads. Bounds name target repos (16) and campaign repos (8). The
cut-spec repo rule becomes the repo-set-in-force rule with how Self adds or
removes a repo, and a Repos in force recipe is added.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Read anchors resolve like file_changes (r<k> rows, MISSING when absent at
base), anchors with a symbol must hold it in the mapped window or gain
SYMBOL_MISSING, and one capped git-grep caller list per symbol follows the
windows within --max-lines. Specs without reads or symbols print what v1 did.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
nice on the docker client never reached the job, which containerd starts.
On 2026-10-31 three verify jobs held Yggdrasil's IO pressure near 75% full
and the swarm's turns slowed; idle IO lets the swarm go first.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Minds used #operator for Mind-to-Mind business (operator 2026-10-31:
'they were using operator for non operator things'). Ruling
eureka-body:room-registers named #minds, #swarm and #burn but not #operator.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ruling eureka-body:ruling:cli-over-mcp-agent-surface. Exact command forms in
campaign-state.md; MCP kept as the fallback for shell-less clients. persona_get
and persona_put have no CLI verb: recorded as a known gap. tools/mind.py and
tools/recall.py (MCP-bound scripts) are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Its single copy was the unversioned F:\Projects\CLAUDE.md, which no Mind on
Yggdrasil could read. That file becomes an import of this one. Operator,
2026-10-31: inject the GameCult core doctrine including philosophy into Persona
turns.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The install command is "<abs python.exe> <path>/recall.py prompt|admit || true"
(Claude Code runs hook commands through Git Bash on Windows; a missing script
made py -3 exit 2, which blocks every prompt or admit). A For line is joined to
its first neighbour so render keeps both or neither; no neighbour fitting the
budget is no deny. The escape test is [A-Za-z0-9_.:-], not Unicode \w.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The mutation-runner self-tests put them on PATH and got exit 126 in the
Linux container, which left 15 FAIL mutation rows red at every cut.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>