mAi
3af71e772b
fix(paliadin): fall back to one-shot when aichat persona lacks streaming
...
Symptom: paliadin chat returns "Verbindung verloren" because aichat's
paliadin persona is not configured with streaming support — every
RunTurnStream() call gets back HTTP 400 unsupported_streaming and the
SSE stream closes empty.
Fix: when RunTurnStream() detects "unsupported_streaming" in the
upstream error, transparently retry against /chat/turn (non-streaming)
with the same body. The full response gets emitted as a single
StreamChunk + StreamMeta so the SSE relay sees identical event
ordering. Persistence (completeTurn + markPrimed) mirrors the one-shot
RunTurn() path.
No real-time chunking until the persona is reconfigured upstream, but
the chat works end-to-end. Once the paliadin persona supports streaming
on aichat, this code path goes dormant — the unsupported_streaming
branch is only entered when the upstream actually returns that error.
Diagnostic logs from commit 937ff13 made this visible:
paliadin: backend returned error err=aichat: HTTP 400 (bad_request):
unsupported_streaming: persona paliadin does not support streaming
Refs m/paliad demo path.
2026-05-26 19:24:41 +02:00
..
2026-05-06 16:05:00 +02:00
2026-05-22 15:17:24 +02:00
2026-05-26 19:24:41 +02:00
2026-05-21 21:21:32 +02:00
2026-05-22 15:17:24 +02:00
2026-05-20 13:05:27 +02:00
2026-05-20 14:46:36 +02:00
2026-05-20 14:46:36 +02:00
2026-05-25 15:49:39 +02:00
2026-04-30 16:46:31 +02:00
2026-05-19 12:51:52 +02:00
2026-05-26 18:19:55 +02:00
2026-05-26 18:17:21 +02:00
2026-05-25 15:28:37 +02:00
2026-05-20 13:05:27 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 20:58:57 +02:00
2026-05-20 13:26:23 +02:00
2026-04-17 11:59:49 +02:00
2026-05-13 00:11:14 +02:00
2026-05-13 00:11:14 +02:00
2026-05-20 13:26:23 +02:00
2026-04-30 16:46:31 +02:00
2026-05-07 22:41:18 +02:00
2026-05-07 22:41:18 +02:00
2026-05-20 15:50:21 +02:00
2026-05-20 15:50:21 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:50:21 +02:00
2026-05-06 12:47:12 +02:00
2026-05-20 13:55:56 +02:00
2026-05-20 19:15:32 +02:00
2026-05-22 15:53:19 +02:00
2026-05-22 15:53:19 +02:00
2026-05-20 13:55:56 +02:00
2026-05-20 19:15:32 +02:00
2026-05-04 12:03:56 +02:00
2026-05-25 16:06:35 +02:00
2026-05-25 16:06:35 +02:00
2026-05-15 17:53:44 +02:00
2026-05-26 17:59:58 +02:00
2026-05-25 15:36:08 +02:00
2026-05-26 13:01:07 +02:00
2026-04-30 16:46:31 +02:00
2026-05-26 17:59:58 +02:00
2026-05-06 17:16:17 +02:00
2026-05-22 15:48:47 +02:00
2026-05-26 17:49:48 +02:00
2026-05-26 17:49:48 +02:00
2026-05-19 13:05:54 +02:00
2026-05-20 15:19:48 +02:00
2026-04-29 22:09:39 +02:00
2026-05-20 15:19:48 +02:00
2026-05-20 15:19:48 +02:00
2026-05-05 13:29:47 +02:00
2026-05-18 12:13:24 +02:00
2026-05-25 16:45:07 +02:00
2026-05-25 16:45:07 +02:00
2026-05-16 01:17:23 +02:00
2026-05-26 17:59:58 +02:00
2026-05-04 19:49:37 +02:00
2026-05-25 14:54:51 +02:00
2026-05-15 01:09:31 +02:00
2026-05-18 15:06:04 +02:00
2026-04-30 16:46:31 +02:00
2026-05-20 13:03:57 +02:00
2026-05-20 13:03:57 +02:00
2026-05-26 18:17:21 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-20 19:15:32 +02:00
2026-05-20 19:15:32 +02:00
2026-05-26 11:21:29 +02:00
2026-05-26 11:19:01 +02:00
2026-05-26 17:59:58 +02:00
2026-05-06 12:47:12 +02:00
2026-05-26 13:01:07 +02:00
2026-04-20 12:34:38 +02:00
2026-04-29 22:09:39 +02:00
2026-05-07 22:41:18 +02:00
2026-05-07 22:41:18 +02:00
2026-04-30 03:18:03 +02:00
2026-05-26 15:43:36 +02:00
2026-05-20 15:19:48 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 20:58:57 +02:00
2026-05-03 18:39:06 +02:00
2026-05-15 03:03:12 +02:00
2026-05-08 12:42:57 +02:00
2026-05-08 21:48:08 +02:00
2026-05-22 15:17:24 +02:00
2026-05-08 21:48:08 +02:00
2026-05-08 21:48:08 +02:00
2026-05-06 16:41:41 +02:00
2026-05-26 09:41:07 +02:00
2026-05-07 22:29:39 +02:00
2026-05-07 22:21:45 +02:00
2026-05-18 12:13:24 +02:00
2026-05-20 14:53:22 +02:00
2026-05-26 13:01:07 +02:00
2026-05-20 14:55:55 +02:00
2026-05-21 14:52:50 +02:00
2026-05-07 22:58:44 +02:00
2026-05-04 19:30:37 +02:00
2026-05-21 15:45:19 +02:00
2026-05-22 15:48:47 +02:00
2026-05-22 23:43:15 +02:00
2026-05-26 09:56:15 +02:00
2026-05-18 12:13:24 +02:00
2026-05-09 18:52:01 +02:00
2026-05-18 15:06:04 +02:00
2026-05-20 14:55:55 +02:00
2026-05-26 17:59:58 +02:00
2026-04-30 16:46:31 +02:00
2026-05-07 21:50:31 +02:00
2026-05-15 00:06:37 +02:00
2026-05-25 15:49:39 +02:00
2026-05-26 17:59:58 +02:00
2026-05-18 15:06:04 +02:00
2026-05-26 17:59:58 +02:00
2026-05-26 17:48:56 +02:00
2026-05-18 16:52:38 +02:00
2026-05-25 17:03:34 +02:00
2026-05-25 17:03:34 +02:00
2026-05-25 16:32:45 +02:00
2026-05-25 15:12:10 +02:00
2026-05-21 15:23:24 +02:00
2026-05-21 15:23:24 +02:00
2026-05-25 16:03:03 +02:00
2026-05-25 16:51:35 +02:00
2026-05-26 17:59:58 +02:00
2026-05-20 15:19:48 +02:00
2026-05-20 15:19:48 +02:00
2026-05-20 15:24:06 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-20 13:05:27 +02:00
2026-05-20 14:46:36 +02:00
2026-04-30 16:46:31 +02:00
2026-05-20 15:19:48 +02:00
2026-05-07 12:51:37 +02:00
2026-05-07 12:51:37 +02:00
2026-05-25 15:37:00 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-04 12:03:56 +02:00
2026-05-04 18:57:06 +02:00
2026-05-21 09:54:23 +02:00