feat(TRUEREF-0023): add sqlite-vec search pipeline
This commit is contained in:
@@ -44,7 +44,7 @@ export const GET: RequestHandler = ({ params, request }) => {
|
||||
status: job.status,
|
||||
error: job.error
|
||||
};
|
||||
controller.enqueue(`data: ${JSON.stringify(initialData)}\n\n`);
|
||||
controller.enqueue(`event: job-progress\ndata: ${JSON.stringify(initialData)}\n\n`);
|
||||
|
||||
// Check for Last-Event-ID header for reconnect
|
||||
const lastEventId = request.headers.get('Last-Event-ID');
|
||||
@@ -57,6 +57,13 @@ export const GET: RequestHandler = ({ params, request }) => {
|
||||
|
||||
// Check if job is already done or failed - close immediately after first event
|
||||
if (job.status === 'done' || job.status === 'failed') {
|
||||
if (job.status === 'done') {
|
||||
controller.enqueue(`event: job-done\ndata: ${JSON.stringify({ jobId })}\n\n`);
|
||||
} else {
|
||||
controller.enqueue(
|
||||
`event: job-failed\ndata: ${JSON.stringify({ jobId, error: job.error })}\n\n`
|
||||
);
|
||||
}
|
||||
controller.close();
|
||||
return;
|
||||
}
|
||||
@@ -73,18 +80,29 @@ export const GET: RequestHandler = ({ params, request }) => {
|
||||
controller.enqueue(value);
|
||||
|
||||
// Check if the incoming event indicates job completion
|
||||
if (value.includes('event: done') || value.includes('event: failed')) {
|
||||
if (
|
||||
value.includes('event: job-done') ||
|
||||
value.includes('event: job-failed')
|
||||
) {
|
||||
controller.close();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
reader.releaseLock();
|
||||
controller.close();
|
||||
try {
|
||||
controller.close();
|
||||
} catch {
|
||||
// Stream may already be closed after a terminal event.
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('SSE stream error:', err);
|
||||
controller.close();
|
||||
try {
|
||||
controller.close();
|
||||
} catch {
|
||||
// Stream may already be closed.
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user