Fixes #4903: Consistent cancellation error messages for thinking vs streaming phases (#4904)

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
This commit is contained in:
roomote 2025-06-30 07:48:57 -07:00 committed by GitHub
parent 562a007438
commit fb711a097c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1425,10 +1425,15 @@ export class Task extends EventEmitter<ClineEvents> {
// cancel task.
this.abortTask()
await abortStream(
"streaming_failed",
error.message ?? JSON.stringify(serializeError(error), null, 2),
)
// Check if this was a user-initiated cancellation
// If this.abort is true, it means the user clicked cancel, so we should
// treat this as "user_cancelled" rather than "streaming_failed"
const cancelReason = this.abort ? "user_cancelled" : "streaming_failed"
const streamingFailedMessage = this.abort
? undefined
: (error.message ?? JSON.stringify(serializeError(error), null, 2))
await abortStream(cancelReason, streamingFailedMessage)
const history = await provider?.getTaskWithId(this.taskId)