Add chat-ui-htmx module: streaming chat page on Spring AI 2.0.2 with htmx and its SSE extension (vendored), MessageChatMemoryAdvisor keyed by the HTTP session, a Stop button, and the traps measured: EventSource strips one leading space per data line, model text must be HTML-escaped, a cancelled stream left the upstream connection open in 7 of 8 runs until an OkHttp interceptor calls Call.cancel (8 of 8 closed after), and the SDK push source ignores back-pressure (limitRate changes only the demand; a bounded buffer works). The model is a stub OpenAI-compatible SSE server written for the module; no real provider was run.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ic4b6Kg9RWSTJzyz6KP9X
This commit is contained in:
2026-10-31 04:02:56 +00:00
co-authored by Claude Sonnet 5.5
parent c97bcf9adf
commit 68da642f9a
35 changed files with 1571 additions and 0 deletions
@@ -0,0 +1,21 @@
== chunk delay 20 ms, 8 runs, app args: --chat.cancel-fix=false
run 1: upstream closed
run 2: upstream LEFT OPEN
run 3: upstream LEFT OPEN
run 4: upstream LEFT OPEN
run 5: upstream LEFT OPEN
run 6: upstream LEFT OPEN
run 7: upstream LEFT OPEN
run 8: upstream LEFT OPEN
upstream closed: 1 of 8, left open: 7 of 8
== chunk delay 20 ms, 8 runs, app args: (none)
run 1: upstream closed
run 2: upstream closed
run 3: upstream closed
run 4: upstream closed
run 5: upstream closed
run 6: upstream closed
run 7: upstream closed
run 8: upstream closed
upstream closed: 8 of 8, left open: 0 of 8