v0.1.0-alpha.68
·
215 commits
to main
since this release
fix: surface silent SSE failures as visible error block (alpha.68) User-visible bug: send a message, see the user bubble, then nothing. No assistant response, no error, no usage pill — like the message went into a void. Cause: when streamThreadMessage returns 200 but the body closes without any events firing (edge crashed mid-stream, thread in bad state, model hiccup before first byte), the SSE consumer loop exits cleanly without throwing. ChatSurface's send() catch block never fires; nothing renders an error. Fix: track an `eventsSeen` counter inside the onEvent callback. If the stream completes with eventsSeen === 0 AND no `finished` event landed, append an explicit error block to the chat with retry context. Same code path the existing `cap_hit` / `unauthorized` / `upstream_*` errors use, just for the new `empty_stream` code. Error catalog (mapError) gets an `empty_stream` entry: warning severity, "No response from the server" title, copy that explains what happened and suggests both Retry and ⌘N (in case the long thread is hitting a server-side context limit). Doesn't fix the underlying server-side cause of empty streams (still need to investigate why edge sometimes returns 200 + empty body), but flips the failure mode from "agent silently dropped" to "agent told you it failed and offered Retry."