pub async fn emit_session_end(
hook_bus: &Arc<HookBus>,
session_id: &str,
transcript: Option<Vec<Arc<Value>>>,
budget: Duration,
) -> boolExpand description
Session-level: fire on_session_end for one session — concurrent
dispatch (the hook only allows continue, so ordering cannot matter),
fail-open under budget. Clears the session’s keyed injection
afterwards. Returns false if the budget elapsed (handlers may not have
flushed; the transcript is already saved by the caller, so nothing is
lost). Per session, not per process: every session in a daemon gets its
own end event.