pub async fn run_handoff_turn(
runtime: &mut Runtime,
messages: &mut Vec<SharedMessage>,
role: &TurnBudget,
totals: &mut SessionTotals,
interrupted: &Arc<AtomicBool>,
on_event: impl FnMut(&StreamEvent, &SessionTotals),
) -> TurnReportExpand description
After a session limit: ask for the handoff in one more turn, bounded by
HANDOFF_TIMEOUT and the role’s per-turn limits, and metered into
totals like every other turn (it is real spend).