Cut claimable's Mind-wide stop on any follow-up question and queue's inline
blocked loop. queue::on_hold is the one reader of what an in-force question
holds (a question raised in a run holds that run's claims, anything else holds
itself); queue, inbox::derive and the open_and_launch gate read it.
Breaker::Trip names the newest ended counted run; the breaker question is
raised in that run; the boundary is the newest of a question raised in the item
and a run claiming it that a question is raised in, so an answer or withdrawal
gives every claim of the run a fresh count. The trip and the held-brief wait
are written to the heartbeat trace.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A Self run claims up to 64 briefs and each empty run counts against all of
them, so one cause tripped the briefs in turn, one question per brief per beat.
claimable now returns nothing while a question is open in any follow-up of the
Mind; the answer reopens the briefs with a fresh count.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Deletes first: the PostToolBatch and PreCompact hooks, --settings, the inject subcommand, the on-disk spool and its rename claim, close_past as a standing rule, close_told and the result-timed brief closure, Event::Told/PreCompact, Action::CloseBriefs, FLUSH_MARGIN_S.
Then: drive is the only writer into her session (start, tells, flush). decide counts lines written and lines echoed (--replay-user-messages) and derives idle from them; the flush is answered at the first result after its echo, folded or queued; an error before any answer or a blocked result closes at once; rotation and the idle cache end ask the same flush with a why; the grace is clamped so the signal ladder ends before the cap. DISABLE_COMPACT=1 replaces the PreCompact block. Briefs are follow-ups owned by self-run and sourced from a Persona turn; her Self resolves each she answers, the actuator closes only what she left open at an idle end. inbox::backlog lists, and never closes, the one-time sweep.
Tests: the committed 2.1.312 streams replay through read_usage and decide; the unit tables, a ladder sweep and an event-order enumeration pin the rules.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A mutation run over the memory diff left these unpinned: the asks the schema
offers, next_sequence counting per subject, learned_in cut at the Short bound
on a character boundary, other_senders excluding her own and repeats, and
memory_people listing the operator once. The place cut loses a redundant
boundary test: pop removes whole characters.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Lands the parked closure (eureka-body/self-session-live-closure-parked 13de7f0) on the Recorded outcome of ruling brief-closure-recorded.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A Persona reply gains `remember` (memories of seven sorts, about the
batch's people), `settle` (close an open ask: done is Recorded, declined and
wrong Withdrawn, with her reason) and `start_self_run.for_ask` (take an ask on
by id or as `new:<i>`). The organ fills where a memory was learned, whether it
was direct and its event ids; the model cannot write them. One admission per
turn carries the memories, the settles and the Pulse after the says, then the
Self run (follow-up and the ask's Deferred in one admission), then the ack. A
refusal fails the turn as Failure::Memory with the says sent and no ack.
admit_pulse is gone.
recall.rs reads only her own mind: open asks first on every turn including a
wake, memory about the batch's other senders, the nearest memory, follow-up
and ruling by MindPort::query_near, and the newest memory; de-duplicated and
capped at 20 items and 16 KiB. render_input gains "What you remember" after
the goals section; follow-ups and rulings that section already lists are not
repeated.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
epiphany.pipeline.memory.v2, instance-rooted `<instance>:memory:<label>`:
PipelineMemory with seven sorts (Asked, Decided, Committed, Learned, Did,
Idea, Rapport), her own text, who it is about, where it was learned, whether
directly, what it rests on, a salience that only ranks, and the memories a
consolidating one replaces.
Admission refuses a foreign instance and resolves a memory only Deferred to a
follow-up (an ask taken on), Recorded, Withdrawn or Superseded by a memory.
Memories have their own lineage so supersession stays within one mind. The
read side selects by sort, about (multi-valued) and direct; the index carries
the text; `consolidates` is a citation role.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A result ends a turn and marks the session idle; it no longer closes stdin
(decide.rs: Result => CloseStdin deleted). The session ends where its prompt
cache would be evicted (ruling live-session-floor-cache-evicts: the flush is
asked at the last request's TTL less 60 s, stdin closes after the flush's own
result), at an idle rotation deadline under the run cap, mid-turn at the cap's
flush margin, and at the context ceiling. PreCompact blocks auto-compaction
and asks the same flush.
self_run/inbox.rs derives her inbox from the mind (in-force follow-ups with
owner self-run that no closed run claims), spools them, and claims by rename
so the PostToolBatch hook and the actuator's idle tell deliver each once.
mind-self-run inject is the hook. Brief closure is not in this commit: the
mind refuses a Recorded resolution of a follow-up (question admitted).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>