|
|
@@ -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" })
|