Skip to content

Commit c63ba10

Browse files
committed
fix: only mark serve-mode jobs complete on session.idle status
The monitor was treating every session.status SSE event as a completion signal, causing jobs to be marked done seconds after launch. Now session.status only triggers completion when status.type is 'idle', matching the actual session lifecycle.
1 parent a02860f commit c63ba10

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/lib/monitor.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,17 @@ export class JobMonitor extends EventEmitter {
267267
const eventType = event.type || event.event;
268268

269269
switch (eventType) {
270-
case 'session.status':
270+
case 'session.status': {
271+
const statusPayload = event.properties?.status;
272+
if (statusPayload?.type === 'idle') {
273+
const now = new Date().toISOString();
274+
this.cleanupSSEForJob(job.id);
275+
await updateJob(job.id, { status: 'completed', completedAt: now });
276+
this.emit('complete', { ...job, status: 'completed', completedAt: now });
277+
}
278+
break;
279+
}
280+
271281
case 'session.idle': {
272282
const now = new Date().toISOString();
273283
this.cleanupSSEForJob(job.id);

0 commit comments

Comments
 (0)