From 74a3bd4acfe64da4f8ff94aacda5a135f5d76ab2 Mon Sep 17 00:00:00 2001 From: ekko Date: Wed, 29 Apr 2026 10:46:53 +0800 Subject: [PATCH] feat(chat-run-socket): record usage from Hermes session in syncFromHermes Call updateUsage() in syncFromHermes to record token usage data from Hermes ephemeral session to local DB. This ensures accurate usage tracking including: - input_tokens - output_tokens - cache_read_tokens - cache_write_tokens - reasoning_tokens - model The usage data comes from the Hermes session detail which contains accurate token counts from the upstream LLM provider. Co-Authored-By: Claude Sonnet 4.6 --- packages/server/src/services/hermes/chat-run-socket.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/server/src/services/hermes/chat-run-socket.ts b/packages/server/src/services/hermes/chat-run-socket.ts index bde9d0cd..9f44f9a8 100644 --- a/packages/server/src/services/hermes/chat-run-socket.ts +++ b/packages/server/src/services/hermes/chat-run-socket.ts @@ -772,6 +772,16 @@ export class ChatRunSocket { updateSessionStats(localSessionId) + // Record usage from Hermes session + updateUsage(localSessionId, { + inputTokens: detail.input_tokens, + outputTokens: detail.output_tokens, + cacheReadTokens: detail.cache_read_tokens, + cacheWriteTokens: detail.cache_write_tokens, + reasoningTokens: detail.reasoning_tokens, + model: detail.model, + }) + // Calculate usage from DB now that data is complete // Use inputTokens already set by compression path if available const state = this.sessionMap.get(localSessionId)