Chat error surfacing

Overview

AI requests can fail in the middle of a turn: the provider returns an HTTP error, the network drops, or a tool round crashes. Before this feature, a mid-turn failure was emitted only when no content had been produced yet, and it appeared only in the composer's transient status line — the chat itself showed a permanently stuck "streaming…" state with no explanation. Now every failure is emitted over SSE, rendered as an inline error bubble in the transcript, and persisted as a system message so it survives a reload.

Usage

No configuration. When a turn fails you see a red-tinted bubble at the failure point in the conversation: