v1.12.3: stale-stream banner with Retry/Discard
When an assistant message sits status='streaming' with no token activity for 60+ seconds, the chat shows a banner above the input offering Retry or Discard. Both clear the stale row via a new backend endpoint POST /api/chats/:id/discard_stale that updates status='failed' and publishes chat_status='idle'. Closes the UX gap that caused the 2026-05-21 debugging spiral — slow streams and dead streams now look different to the user. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -180,6 +180,11 @@ export const api = {
|
||||
request<{ ok: true }>(`/api/chats/${chatId}/compact`, { method: 'POST' }),
|
||||
stop: (chatId: string) =>
|
||||
request<{ stopped: boolean }>(`/api/chats/${chatId}/stop`, { method: 'POST' }),
|
||||
discardStale: (chatId: string, messageId: string) =>
|
||||
request<Message>(`/api/chats/${chatId}/discard_stale`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ message_id: messageId }),
|
||||
}),
|
||||
forceSend: (chatId: string, content: string) =>
|
||||
request<{ user_message_id: string; assistant_message_id: string }>(
|
||||
`/api/chats/${chatId}/force_send`,
|
||||
|
||||
Reference in New Issue
Block a user