personal memory agent

fix(chat): honest deterministic closer when an outbound support run fails master

When the chat brain dispatches the outbound support talent and that run ends in a cogitate runtime failure (a talent_errored whose reason_code is one of DETERMINISTIC_FAILURE_REASON_CODES), the run never completed and nothing could have been sent. The closer now states that plainly — "nothing was sent" to solstone support — and offers to try again, instead of falling through to the read-framed generic "couldn't finish that lookup … rephrase the question?" copy that brushed the support trust rule. Selection is deterministic: (talent ∈ OUTBOUND_TALENTS) × (reason_code ∈ DETERMINISTIC_FAILURE_REASON_CODES), never model output. The terminating talent name and its reason_code are threaded from _on_cortex_error through _handle_talent_terminal_locked / _talent_terminal_trigger, persisted on the talent_errored chat event, and reconstructed in _trigger_from_stream_event so a process restart yields the same honest closer. Spawn-failure and watchdog-timeout talent errors carry no reason_code and keep the generic closer; loop_exhausted and all non-support behavior are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>