fix(desktop): restore session completion alerts (#44412)

This commit is contained in:
Brendan Allan 2026-08-23 22:35:06 +08:00 committed by GitHub
parent 4c786f0ff8
commit fb9c9a2cbd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 15 deletions

View file

@ -215,7 +215,7 @@ export function createServerNotificationState(input: { sdk: ServerSDK; data: Dat
dispatchEvent(new PopStateEvent("popstate"))
}
const handleSessionIdle = (directory: string, sessionID: string, time: number) => {
const handleSessionIdle = (sessionID: string, time: number) => {
void lookup(sessionID).then((session) => {
if (meta.disposed) return
if (!session) return
@ -226,7 +226,7 @@ export function createServerNotificationState(input: { sdk: ServerSDK; data: Dat
}
append({
directory,
directory: session.location.directory,
time,
viewed: viewedInCurrentSession(sessionID),
type: "turn-complete",
@ -243,7 +243,6 @@ export function createServerNotificationState(input: { sdk: ServerSDK; data: Dat
}
const handleSessionError = (
directory: string,
sessionID: string,
error: ErrorNotification["error"],
time: number,
@ -257,7 +256,7 @@ export function createServerNotificationState(input: { sdk: ServerSDK; data: Dat
}
append({
directory,
directory: session?.location.directory,
time,
viewed: viewedInCurrentSession(sessionID),
type: "error",
@ -275,21 +274,14 @@ export function createServerNotificationState(input: { sdk: ServerSDK; data: Dat
}
const unsub = input.sdk.event.listen((event) => {
if (
event.type !== "session.execution.succeeded" &&
event.type !== "session.execution.interrupted" &&
event.type !== "session.execution.failed"
)
return
if (event.type !== "session.execution.succeeded" && event.type !== "session.execution.failed") return
const directory = event.location?.directory
if (!directory) return
const time = Date.now()
if (event.type === "session.execution.failed") {
handleSessionError(directory, event.data.sessionID, event.data.error, time)
handleSessionError(event.data.sessionID, event.data.error, time)
return
}
handleSessionIdle(directory, event.data.sessionID, time)
handleSessionIdle(event.data.sessionID, time)
})
onCleanup(() => {
meta.disposed = true

View file

@ -3,7 +3,7 @@ let loads: Record<SoundID, () => Promise<string>> | undefined
function getFiles() {
if (files) return files
files = import.meta.glob("../../../ui/src/assets/audio/*.aac", { import: "default" }) as Record<
files = import.meta.glob("../../../../ui/src/assets/audio/*.aac", { import: "default" }) as Record<
string,
() => Promise<string>
>