Each claim gets its own section in claim order: a follow-up's item verbatim,
a cut spec named as the task, an absent or other claim named by id. A failed
claim read fails the run before any lease or child. Spec
eureka-body:cut_spec:cut-cut-self-run-start-brief.r1, report .h1, Soul
verdict .s1 (promises hold; two Low findings filed).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Squash of eureka-body/self-run-closes-run 55dd620..93f93c1 (Soul go; orphan
sweep cut: the mind admits one Self run in force and launch's close_dead closes
a dead holder). Operator: 'Look into the stale runs issue' and 'why has this
xenos filth not been replaced with nice clean CLI yet'.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A mention string, display name or name list could write the word you into
the quoted join and pass for her own id. Now only to_you=true, derived from
her own sender id, says a message names her. Restores the newline escape in
the line format.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The mouth delivers each message's mentions but the turn input never showed
them, so a Persona could not tell a reply to another Mind from one to her.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A link is checked by canonicalising it in the source against the canonical
seed root, so a link through another in-tree link cannot escape.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The persona document is replaced by design (compare-and-swap on updatedAt), so
its second put is a second receipt naming one identity. AdmissionIndex::build
read that as a doubled A10 write and refused every view and query. The persona
type has no admission facts there now; Mind::persona reads its own receipt. A
pipeline document written by two receipts still refuses.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The gate body moves out of the ignored test into one function over a Mind, now
also refusing a receipted pipeline write with no stored document. The ignored
test is a thin caller; CI plants each fault on a 135-document store.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Mind::view becomes validate_ref then Reader::at(head).view(id); Reader::view is
its lookup, so a caller holding one Reader views many documents from one
snapshot. stored_documents_read_back (ignored, HUGINN_MIND_SNAPSHOT) decodes,
validates, rekeys, re-prepares and views every stored document through one
Reader: O(N) where the deleted per-document Mind::view loop was O(N^2).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
mind::tests::snapshot_admits_and_reads_back (an O(N^2) per-document Mind::view loop
plus the six idunn-watchdog resolutions and over-64-byte withdrawals of the
2026-10-01 migration) and eureka-pipeline tests::stored_documents_read_back go,
with the leaf README's real-store section. The one gate follows in huginn-mind.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
With projection gone the walk spreads Selection::default(); an explicit
descending: false was a mutant no test could tell from the default.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The previous commit's test admitted a Superseded resolution of a question,
which admission refuses. Cite r2 through subject and superseded_by instead.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The walk never reads projection (select reads it only in validate and the
cursor digest), so the assignment and its "headers only" comment decided
nothing. A new test cites Q1 through two roles by rows of one schema and
asserts exact members and matched for subject, superseded_by and no role.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The previous commit's test expected plain key order and fails; this one builds
and corrects it.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
walk_selection is deleted: members is the only place the walk is spelled.
Members carries the number of select pages taken. The page-size test calls
members with caller limit 1 and document projection over 590 questions and
asserts the exact ids and exactly 3 pages. A new test pins that the cites
hop limits members and matched to the cited rows.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Twenty members, top_k 15 and 200: the index limit and the row count are both
asserted. Unverified at this commit: built and tested once at the end of the batch.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
filter and params are asserted by value, so must_not and a top-level exact
fail. live_index_smoke searches a strict subset that leaves out the nearest
point. Unverified at this commit: built and tested once at the end of the batch.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The walk selection is built field by field from the caller's filters, so a
caller's limit, projection, order or cursor cannot reach it (one select per
member at limit 1 measured 300 ms against 14 ms). A test pins it.
Unverified at this commit: built and tested once at the end of the batch.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cargo-mutants showed deleting it survives: ids come from rows whatever the
projection, so the override decided nothing.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The first commit's huginn-mind test module did not compile (helper shadowed
by a local binding, and a mechanical rewrite had touched the helper body).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The mind decides membership (Mind::members) before the index is asked; the
index scores exactly the members (Qdrant has_id + exact) and the page carries
one cosine score per row. Deletes OVERSAMPLE_MAX, the x4 oversample, the
unfiltered VectorIndex::search contract and check_semantic.
Not yet compiled when committed: the first Yggdrasil run follows.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Opens claude only under an open Self run; one pure decide() owns flush, grace, headroom and escalation; process-group signals; ends on child exit or EOF. Soul s3 holds (eureka-body:verdict:cut-mind-self-run.s3).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Persona claim-set property drew ids as doc-N and doc; they now come
from the instance-name generator (varied alphabets, both separators, edge
lengths), so a refusal keyed on id text cannot pass. Set shapes and sizes
are unchanged. Follow-up persona-claim-ids-varied.
Not yet built; verified at the head of the cut.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
eureka is held; eureka-two, eureka2 and xeureka are released with a dial and
open. Kills Soul's s-check-wrong-instance-by-prefix mutant. Follow-up
gate-prefix-neighbour-test.
Not yet built; verified at the head of the cut.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>