Source refresh now upserts a repo's new chunks first and deletes what is
left in scope under another commit afterwards, so a failed embed never
removes indexed content (embed-outage-empties-repo). The cursor is still
dropped before the first write.
The pool's reserve endpoints use EmbedBounds::RESERVE (30 s a text, 60 s
floor) instead of the GPU default (reserve-bounded-like-a-gpu).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Persona units are long-lived leased sessions (mind-persona@<i>, 4h cap, fence Requires, claude-lease), added the Persona session section, governance list, model-page rows and F36-F40; the 2026-10-30 swarm flow is marked historical. Sequence doc: closure notes on section 0, the superseded actuator-side brief closure, cut 6 landed, cut 7 not shown landed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The bound counts the quoted text that enters the prompt, an oversize line no longer blanks the older lines that fit, and the dedupe key gains at_unix_ms, which the mouth stamps equal on a message and its context copy (Bifrost persona-matrix-mouth.mjs origin_server_ts).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cut-flush-shown (h1,h2) and cut-turn-core-instruction (h1,h2,h3). Soul verdicts cut-flush-shown.s1/.s2 and cut-turn-core-instruction.s1/.s2; h3 is tests only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Step::Failed carries the decoded reply's intent into the closing rationale. The retell note
is rendered inside the line after the instruction. A flush written alone opens with the
instruction; flush_ask owns the flush text. recent_runs indents after every line break a
reader splits on, not only newline.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A flush written alone shows the people and open items the session's lines showed; which of
those are still open is read when a reply is decoded. A settle on a shown item that an
earlier turn closed is dropped with a trace note and the rest of the reply is admitted.
The flush no longer reads the mind at write time, so flush_text returns a String again.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TURN_INSTRUCTION heads every line; MESSAGES_HEADER replaces the three mailbox lines and prints only with messages; WAKE_QUESTION or TRAFFIC_QUESTION closes the line. PersonaReply.intent is required and first, bounded 1..=600, traced first, and her last intent closes the run and returns in recent_runs for her own turns too. The flush no longer says to be silent.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PersonaInbox.seen accumulates every person a write() showed; flush_text
becomes fallible and, when no line awaits its echo, sets Written for the
flush line from seen plus the open items and people read now.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eyes facts: reconstructed wake and traffic inputs with file:line, reply schema,
per-Mind behaviour since persona-session went live, refused flush replies.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A brake hold that stops her unit left an in-force run that counted as busy
forever; the row was never launched, so slot step 0 never closed it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The one conflict was the public-surface snapshot: the branch's new
launch::StopScope line beside main's LaunchOutcome::Tripped { run } line;
both kept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The single retell slot becomes one merged Retell (every refused delivery not yet told again, in seq order, with the refusals of the most-refused one), so the ack rule's lowest unanswered seq never loses a batch. The refusal count travels with the batch through its Written line and echo instead of resetting on any answer; a batch's third refusal ends the session by the existing failure path.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>