Track session status via SSE updates

This commit is contained in:
Shantur Rathore
2026-01-02 19:24:37 +00:00
parent abb8a9df19
commit a041e1c6c3
7 changed files with 160 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
import { createSignal } from "solid-js"
import type { Session, Agent, Provider } from "../types/session"
import type { Session, SessionStatus, Agent, Provider } from "../types/session"
import { deleteSession, loadMessages } from "./session-api"
import { showToastNotification } from "../lib/notifications"
import { messageStoreBus } from "./message-v2/bus"
@@ -157,6 +157,11 @@ function setSessionCompactionState(instanceId: string, sessionId: string, isComp
const time = { ...(session.time ?? {}) }
time.compacting = isCompacting ? Date.now() : 0
session.time = time
if (isCompacting) {
session.status = "compacting"
} else if (session.status === "compacting") {
session.status = "idle"
}
})
}
@@ -199,6 +204,12 @@ function clearActiveParentSession(instanceId: string): void {
})
}
function setSessionStatus(instanceId: string, sessionId: string, status: SessionStatus): void {
withSession(instanceId, sessionId, (session) => {
session.status = status
})
}
function getActiveParentSession(instanceId: string): Session | null {
const parentId = activeParentSessionId().get(instanceId)
if (!parentId) return null
@@ -380,6 +391,7 @@ export {
withSession,
setSessionCompactionState,
setSessionPendingPermission,
setSessionStatus,
setActiveSession,
setActiveParentSession,