Skip to content

Commit ed472d8

Browse files
committed
fix(app): more defensive session context metrics
1 parent ff4414b commit ed472d8

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

packages/app/src/components/session/session-context-metrics.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,11 @@ describe("getSessionContextMetrics", () => {
9191
expect(two.context?.message.id).toBe("a2")
9292
expect(two.totalCost).toBe(1)
9393
})
94+
95+
test("returns empty metrics when inputs are undefined", () => {
96+
const metrics = getSessionContextMetrics(undefined, undefined)
97+
98+
expect(metrics.totalCost).toBe(0)
99+
expect(metrics.context).toBeUndefined()
100+
})
94101
})

packages/app/src/components/session/session-context-metrics.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ const lastAssistantWithTokens = (messages: Message[]) => {
4747
}
4848
}
4949

50-
const build = (messages: Message[], providers: Provider[]): Metrics => {
50+
const build = (messages: Message[] = [], providers: Provider[] = []): Metrics => {
5151
const totalCost = messages.reduce((sum, msg) => sum + (msg.role === "assistant" ? msg.cost : 0), 0)
5252
const message = lastAssistantWithTokens(messages)
5353
if (!message) return { totalCost, context: undefined }
@@ -77,6 +77,6 @@ const build = (messages: Message[], providers: Provider[]): Metrics => {
7777
}
7878
}
7979

80-
export function getSessionContextMetrics(messages: Message[], providers: Provider[]) {
80+
export function getSessionContextMetrics(messages: Message[] = [], providers: Provider[] = []) {
8181
return build(messages, providers)
8282
}

0 commit comments

Comments
 (0)