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,
|
sessionID: input.assistantMessage.sessionID,
|
||||||
error: input.assistantMessage.error,
|
error: input.assistantMessage.error,
|
||||||
})
|
})
|
||||||
|
SessionStatus.set(input.sessionID, { type: "idle" })
|
||||||
}
|
}
|
||||||
if (snapshot) {
|
if (snapshot) {
|
||||||
const patch = await Snapshot.patch(snapshot)
|
const patch = await Snapshot.patch(snapshot)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ export namespace SessionPrompt {
|
|||||||
abort: AbortController
|
abort: AbortController
|
||||||
callbacks: {
|
callbacks: {
|
||||||
resolve(input: MessageV2.WithParts): void
|
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)) {
|
for (const item of Object.values(current)) {
|
||||||
item.abort.abort()
|
item.abort.abort()
|
||||||
for (const callback of item.callbacks) {
|
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 })
|
log.info("cancel", { sessionID })
|
||||||
const s = state()
|
const s = state()
|
||||||
const match = s[sessionID]
|
const match = s[sessionID]
|
||||||
if (!match) return
|
if (!match) {
|
||||||
|
SessionStatus.set(sessionID, { type: "idle" })
|
||||||
|
return
|
||||||
|
}
|
||||||
match.abort.abort()
|
match.abort.abort()
|
||||||
for (const item of match.callbacks) {
|
for (const item of match.callbacks) {
|
||||||
item.reject()
|
item.reject(new DOMException("Aborted", "AbortError"))
|
||||||
}
|
}
|
||||||
delete s[sessionID]
|
delete s[sessionID]
|
||||||
SessionStatus.set(sessionID, { type: "idle" })
|
SessionStatus.set(sessionID, { type: "idle" })
|
||||||
|
|||||||
Reference in New Issue
Block a user