fix(chat): honest deterministic closer when an outbound support run fails
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>