-
Notifications
You must be signed in to change notification settings - Fork 20.7k
server + ui: SSE Replay Buffer #23226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
ServeurpersoCom
merged 39 commits into
ggml-org:master
from
ServeurpersoCom:sse-replay-buffer
Jun 26, 2026
Merged
Changes from 36 commits
Commits
Show all changes
39 commits
Select commit
Hold shift + click to select a range
0c739d9
server: SSE replay buffer, survives client disconnect
ServeurpersoCom adff9a5
server: create stream session only after post_tasks succeeds
ServeurpersoCom 026b654
server, ui: drop X-Stream-Resume, X-Conversation-Id alone enables the…
ServeurpersoCom 2b1b3b7
server: drop magic 17, derive the X-Conversation-Id header length fro…
ServeurpersoCom 00dd081
refactor: address review feedback from ngxson
ServeurpersoCom ee592f2
server-context: cleaning
ServeurpersoCom c5db9f6
server-stream: fix use-after-free on rd
ServeurpersoCom 5e4ea04
ui: fix cross-conversation contamination
ServeurpersoCom 14daa7f
server-http: keep request alive in detached SSE drain
ServeurpersoCom 4e7c3a2
ui: address review feedback from coder543
ServeurpersoCom 13eaa77
format
ServeurpersoCom d8e3300
ui: remove unused selectedModelName
ServeurpersoCom 316c1d3
server-stream: poll session->is_cancelled() in stream_aware_should_stop
ServeurpersoCom 4482543
server-stream, ui: replace GET /v1/streams with POST /v1/streams/lookup
ServeurpersoCom fd5c81a
ui: read conv ids from IndexedDB in syncRemoteRunningStreams
ServeurpersoCom 54be28f
server-models: deduplicate stream lookup timeouts behind one constant
ServeurpersoCom a61cf96
ui: extract visibility kick grace into a stream constant, bump to 100…
ServeurpersoCom 81c394f
make it safer & more simple
ngxson cc90c08
server-stream: survive client disconnect via stream_pipe::finish_prod…
ServeurpersoCom 1b4d9a8
server-stream: drain disconnected streams on a manager owned thread
ServeurpersoCom 4a5cbac
ui: add missing JSDoc
ServeurpersoCom cffee54
server-stream: drain on the http worker, drop the manager thread
ServeurpersoCom 231e3a0
server-stream: split stream_pipe into producer and consumer classes
ServeurpersoCom 4524ea7
server-stream: rename producer methods to unix pipe semantics
ServeurpersoCom 52884f1
server, ui: route resumable streams via a conv map, persist resume id…
ServeurpersoCom eeb62dd
ui: resolve continue target by id to stop cross-conversation flash on…
ServeurpersoCom c572968
ui: skip stream resume when the abort is intentional
ServeurpersoCom 374ddbf
server: move the conv id to model map into a self contained tracker
ServeurpersoCom 8667f14
ui: replace stream magic values with enums and shared constants
ServeurpersoCom d5c85aa
ui: fold the stream resume and discovery helpers into ChatService
ServeurpersoCom 7962c30
docs: document the SSE replay buffer in server README-dev
ServeurpersoCom 99f8ae0
ui: align attachServerStream call with onCompletionId param in handle…
ServeurpersoCom 2f4be74
server-http: rename del_ to del to match get and post
ServeurpersoCom 5a3a981
ui: address review feedback from allozaur
ServeurpersoCom 9ddbaf8
ui: drop duplicate SSE constants, keep sse.ts canonical
ServeurpersoCom 6eaafab
ui: use svelte:document for the visibilitychange listener
ServeurpersoCom ac02404
server: trim redundant stream drain comments
ServeurpersoCom 8b591a5
server: balance and clean up stream comments
ServeurpersoCom d346f8c
ui: balance and clean up stream comments
ServeurpersoCom File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.