From ed472d8a6789c882dfbba7facfd987fd8dd6fb2c Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Thu, 12 Feb 2026 09:59:04 -0600 Subject: [PATCH] fix(app): more defensive session context metrics --- .../src/components/session/session-context-metrics.test.ts | 7 +++++++ .../app/src/components/session/session-context-metrics.ts | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/app/src/components/session/session-context-metrics.test.ts b/packages/app/src/components/session/session-context-metrics.test.ts index e90df9a94..0e109a71b 100644 --- a/packages/app/src/components/session/session-context-metrics.test.ts +++ b/packages/app/src/components/session/session-context-metrics.test.ts @@ -91,4 +91,11 @@ describe("getSessionContextMetrics", () => { expect(two.context?.message.id).toBe("a2") expect(two.totalCost).toBe(1) }) + + test("returns empty metrics when inputs are undefined", () => { + const metrics = getSessionContextMetrics(undefined, undefined) + + expect(metrics.totalCost).toBe(0) + expect(metrics.context).toBeUndefined() + }) }) diff --git a/packages/app/src/components/session/session-context-metrics.ts b/packages/app/src/components/session/session-context-metrics.ts index 357205afb..0789b05f1 100644 --- a/packages/app/src/components/session/session-context-metrics.ts +++ b/packages/app/src/components/session/session-context-metrics.ts @@ -47,7 +47,7 @@ const lastAssistantWithTokens = (messages: Message[]) => { } } -const build = (messages: Message[], providers: Provider[]): Metrics => { +const build = (messages: Message[] = [], providers: Provider[] = []): Metrics => { const totalCost = messages.reduce((sum, msg) => sum + (msg.role === "assistant" ? msg.cost : 0), 0) const message = lastAssistantWithTokens(messages) if (!message) return { totalCost, context: undefined } @@ -77,6 +77,6 @@ const build = (messages: Message[], providers: Provider[]): Metrics => { } } -export function getSessionContextMetrics(messages: Message[], providers: Provider[]) { +export function getSessionContextMetrics(messages: Message[] = [], providers: Provider[] = []) { return build(messages, providers) }