From 65fe488ea771afdf655adf70293af22e73f2c5e3 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Tue, 25 Nov 2025 13:32:34 +0000 Subject: [PATCH] fix: update cost field even when API returns zero tokens When OpenAI-compatible APIs return content-filtered responses with all zero tokens, the cost field is now properly set (even if 0), preventing the API request spinner from running indefinitely. Fixes #9574 --- src/core/task/Task.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index f7b0adc28a..939689d078 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -2574,7 +2574,8 @@ export class Task extends EventEmitter implements TaskLike { tokens.input > 0 || tokens.output > 0 || tokens.cacheWrite > 0 || - tokens.cacheRead > 0 + tokens.cacheRead > 0 || + tokens.total !== undefined ) { // Update the shared variables atomically inputTokens = tokens.input @@ -2663,7 +2664,8 @@ export class Task extends EventEmitter implements TaskLike { bgInputTokens > 0 || bgOutputTokens > 0 || bgCacheWriteTokens > 0 || - bgCacheReadTokens > 0 + bgCacheReadTokens > 0 || + bgTotalCost !== undefined ) { // We have usage data either from a usage chunk or accumulated tokens await captureUsageData( @@ -2688,7 +2690,8 @@ export class Task extends EventEmitter implements TaskLike { bgInputTokens > 0 || bgOutputTokens > 0 || bgCacheWriteTokens > 0 || - bgCacheReadTokens > 0 + bgCacheReadTokens > 0 || + bgTotalCost !== undefined ) { await captureUsageData( {