core: allow starting new sessions after errors by fixing stuck session status
This commit is contained in:
@@ -368,6 +368,7 @@ export namespace SessionProcessor {
|
||||
sessionID: input.assistantMessage.sessionID,
|
||||
error: input.assistantMessage.error,
|
||||
})
|
||||
SessionStatus.set(input.sessionID, { type: "idle" })
|
||||
}
|
||||
if (snapshot) {
|
||||
const patch = await Snapshot.patch(snapshot)
|
||||
|
||||
@@ -62,7 +62,7 @@ export namespace SessionPrompt {
|
||||
abort: AbortController
|
||||
callbacks: {
|
||||
resolve(input: MessageV2.WithParts): void
|
||||
reject(): void
|
||||
reject(reason?: any): void
|
||||
}[]
|
||||
}
|
||||
> = {}
|
||||
@@ -72,7 +72,7 @@ export namespace SessionPrompt {
|
||||
for (const item of Object.values(current)) {
|
||||
item.abort.abort()
|
||||
for (const callback of item.callbacks) {
|
||||
callback.reject()
|
||||
callback.reject(new DOMException("Aborted", "AbortError"))
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -251,10 +251,13 @@ export namespace SessionPrompt {
|
||||
log.info("cancel", { sessionID })
|
||||
const s = state()
|
||||
const match = s[sessionID]
|
||||
if (!match) return
|
||||
if (!match) {
|
||||
SessionStatus.set(sessionID, { type: "idle" })
|
||||
return
|
||||
}
|
||||
match.abort.abort()
|
||||
for (const item of match.callbacks) {
|
||||
item.reject()
|
||||
item.reject(new DOMException("Aborted", "AbortError"))
|
||||
}
|
||||
delete s[sessionID]
|
||||
SessionStatus.set(sessionID, { type: "idle" })
|
||||
|
||||
Reference in New Issue
Block a user