diff --git a/src/web-server/usage/cliproxy-usage-transformer.ts b/src/web-server/usage/cliproxy-usage-transformer.ts index 0a6cfcdd..44c953a5 100644 --- a/src/web-server/usage/cliproxy-usage-transformer.ts +++ b/src/web-server/usage/cliproxy-usage-transformer.ts @@ -275,15 +275,19 @@ function hydrateProviderlessHistoryDetails( existing: CliproxyUsageHistoryDetail[], incoming: CliproxyUsageHistoryDetail[] ): CliproxyUsageHistoryDetail[] { + if (!existing.some((detail) => !detail.provider)) return existing; + const incomingByProviderlessSignature = new Map(); for (const detail of incoming) { if (!detail.provider) continue; const signature = createProviderlessHistorySignature(detail); - incomingByProviderlessSignature.set(signature, [ - ...(incomingByProviderlessSignature.get(signature) ?? []), - detail, - ]); + const matches = incomingByProviderlessSignature.get(signature); + if (matches) { + matches.push(detail); + } else { + incomingByProviderlessSignature.set(signature, [detail]); + } } return existing.map((detail) => {