4e4c5564c9
EventController.#handleAgentEnd guarded only on session.isStreaming, so a non-terminal agent_end (isTerminal:false, emitted while an async job will re-wake the loop) flipped the terminal title to idle and tore down the working loader while a /vibe worker or async bash job was still running. Early-return on event.isTerminal === false, matching the guard every other agent_end consumer already applies; the later terminal agent_end performs the normal teardown. Fixes #7386