From 1a9dbb76a4cf1b75de48a61586c838149a9c2370 Mon Sep 17 00:00:00 2001 From: kojinseok Date: Wed, 25 Mar 2026 09:52:03 +0900 Subject: [PATCH 1/2] fix: handle `usage_metadata` in title transaction for Gemini models Gemini models return token usage via `usage_metadata` instead of `usage` or `tokenUsage`. The `collectedUsage` mapping in `titleConvo` only handled the latter two, causing title generation transactions to be silently skipped for Gemini. Adds an `else if (item.usage_metadata)` branch to extract `input_tokens`/`output_tokens`. Co-Authored-By: Claude Opus 4.6 (1M context) --- api/server/controllers/agents/client.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/server/controllers/agents/client.js b/api/server/controllers/agents/client.js index 47a10165e3..7fc694466a 100644 --- a/api/server/controllers/agents/client.js +++ b/api/server/controllers/agents/client.js @@ -1125,6 +1125,9 @@ class AgentClient extends BaseClient { } else if (item.tokenUsage) { input_tokens = item.tokenUsage.promptTokens; output_tokens = item.tokenUsage.completionTokens; + } else if (item.usage_metadata) { + input_tokens = item.usage_metadata.input_tokens; + output_tokens = item.usage_metadata.output_tokens; } return { From d16bd77809afa63ab639697e81ef4ff1c3c9f02e Mon Sep 17 00:00:00 2001 From: kojinseok Date: Thu, 26 Mar 2026 09:27:09 +0900 Subject: [PATCH 2/2] fix: remove trailing whitespace in usage_metadata handler Co-Authored-By: Claude Opus 4.6 (1M context) --- api/server/controllers/agents/client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/server/controllers/agents/client.js b/api/server/controllers/agents/client.js index 7fc694466a..8db4e12047 100644 --- a/api/server/controllers/agents/client.js +++ b/api/server/controllers/agents/client.js @@ -1127,7 +1127,7 @@ class AgentClient extends BaseClient { output_tokens = item.tokenUsage.completionTokens; } else if (item.usage_metadata) { input_tokens = item.usage_metadata.input_tokens; - output_tokens = item.usage_metadata.output_tokens; + output_tokens = item.usage_metadata.output_tokens; } return {