♻️ refactor: simplify streaming message lifecycle management
- Remove unused persistence tracking variables in message handler - Simplify finalizeResponse logic by removing unnecessary checks - Change 'finish' event type to 'complete' for consistency - Add debug logging for streaming events - Clean up dead code and improve readability
This commit is contained in:
@@ -49,8 +49,6 @@ export const createMessage = async (req: Request, res: Response): Promise<void>
|
||||
// Track stream lifecycle so we keep the SSE connection open until persistence finishes
|
||||
let responseEnded = false
|
||||
let streamFinished = false
|
||||
let awaitingPersistence = false
|
||||
const persistenceResolved = false
|
||||
|
||||
const finalizeResponse = () => {
|
||||
if (responseEnded) {
|
||||
@@ -61,10 +59,6 @@ export const createMessage = async (req: Request, res: Response): Promise<void>
|
||||
return
|
||||
}
|
||||
|
||||
if (awaitingPersistence && !persistenceResolved) {
|
||||
return
|
||||
}
|
||||
|
||||
responseEnded = true
|
||||
try {
|
||||
res.write('data: {"type":"finish"}\n\n')
|
||||
@@ -136,7 +130,6 @@ export const createMessage = async (req: Request, res: Response): Promise<void>
|
||||
// res.write(`data: ${JSON.stringify({ type: 'complete', result: event.result })}\n\n`)
|
||||
|
||||
streamFinished = true
|
||||
awaitingPersistence = true
|
||||
finalizeResponse()
|
||||
break
|
||||
}
|
||||
@@ -151,7 +144,8 @@ export const createMessage = async (req: Request, res: Response): Promise<void>
|
||||
|
||||
default:
|
||||
// Handle other event types as generic data
|
||||
res.write(`data: ${JSON.stringify(event)}\n\n`)
|
||||
logger.info(`Streaming message event for session: ${sessionId}:`, { event })
|
||||
// res.write(`data: ${JSON.stringify(event)}\n\n`)
|
||||
break
|
||||
}
|
||||
} catch (writeError) {
|
||||
|
||||
Reference in New Issue
Block a user