feat: Implement Resumable Generation Jobs with SSE Support

- Introduced GenerationJobManager to handle resumable LLM generation jobs independently of HTTP connections.
- Added support for subscribing to ongoing generation jobs via SSE, allowing clients to reconnect and receive updates without losing progress.
- Enhanced existing agent controllers and routes to integrate resumable functionality, including job creation, completion, and error handling.
- Updated client-side hooks to manage adaptive SSE streams, switching between standard and resumable modes based on user settings.
- Added UI components and settings for enabling/disabling resumable streams, improving user experience during unstable connections.
This commit is contained in:
Danny Avila 2025-12-03 21:48:04 -05:00
parent 5bfebc7c9d
commit 0e850a5d5f
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
17 changed files with 1212 additions and 37 deletions

View file

@ -1,4 +1,9 @@
function setHeaders(req, res, next) {
// Skip SSE headers for resumable mode - it returns JSON first, then client subscribes separately
if (req.query.resumable === 'true') {
return next();
}
res.writeHead(200, {
Connection: 'keep-alive',
'Content-Type': 'text/event-stream',