Told, one per process in PersonaInbox, is the one owner of what this session has been told. Every
render still selects the whole machine; it prints what Told lacks. Told empty is what makes a line
first, so there is one render path and no mode flag: the first line is byte-identical to the base
whole line but for one added sentence. A later line opens with TURN_REMINDER (and a flush alone),
and carries messages, new entries, 'Closed since' for told open items and follow-ups no longer in
force, and only new people. Keys are ids, never rendered lines. Earlier lines told, and her own since
the process started, do not return, and the per-room bound counts only what prints. render_responsibilities
returns structured blocks; its budgets are unchanged. recall::select and fill do not read Told.
Cut tell-delta, commit 3.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Delete PersonaInbox.shown, the per-result take of it, and flush_text's own computation of people and
open items. `seen` grows at echo and decode reads it for every line; a flush alone writes an empty
Shown. Ruling flush-open-bound-at-decode's drop of already-closed settles stands. The wider bound
could name an item closed earlier in the session, so a for_item not in force is refused and traced as
a decode refusal is. The schema's words say "this session", not "the latest messages".
Cut tell-delta, commit 2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
--tools Bash,WebFetch,WebSearch. Replayed live argv at a localhost sink: tools 35166 to 10864 chars,
messages 10131 to 1763 chars. StructuredOutput stays, web stops being deferred, ToolSearch goes.
Cut tell-delta, commit 1.
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>