mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-20 00:14:58 +00:00
Merge remote-tracking branch 'origin/dev' into codex/fix-cliproxy-v3-snapshot-migration-issue
# Conflicts: # src/web-server/usage/cliproxy-usage-transformer.ts # tests/unit/web-server/cliproxy-usage-transformer.test.ts
This commit is contained in:
commit
ced9317565
210 files changed
+5627
-1065
No files matched your search
@@ -110,6 +110,8 @@ describe('cliproxy usage transformer', () => {
|
||||
const flat = extractCliproxyUsageHistoryDetails(sampleResponse);
|
||||
expect(flat).toHaveLength(4);
|
||||
expect(flat[0].provider).toBe('google');
|
||||
expect(flat[0]).not.toHaveProperty('source');
|
||||
expect(flat[0]).not.toHaveProperty('authIndex');
|
||||
expect(
|
||||
flat.some(
|
||||
(entry) => entry.failed === true && entry.inputTokens === 40 && entry.outputTokens === 10
|
||||
@@ -160,8 +162,8 @@ describe('cliproxy usage transformer', () => {
|
||||
const legacyDetail = normalizeCliproxyUsageHistoryDetail({
|
||||
model: incoming.model,
|
||||
timestamp: incoming.timestamp,
|
||||
source: incoming.source,
|
||||
authIndex: incoming.authIndex,
|
||||
source: 'account-a',
|
||||
authIndex: '0',
|
||||
inputTokens: incoming.inputTokens,
|
||||
outputTokens: incoming.outputTokens,
|
||||
cacheReadTokens: incoming.cacheReadTokens,
|
||||
@@ -170,6 +172,8 @@ describe('cliproxy usage transformer', () => {
|
||||
|
||||
expect(legacyDetail?.requestCount).toBe(1);
|
||||
expect(Number.isFinite(legacyDetail?.cost)).toBe(true);
|
||||
expect(legacyDetail).not.toHaveProperty('source');
|
||||
expect(legacyDetail).not.toHaveProperty('authIndex');
|
||||
|
||||
const merged = mergeCliproxyUsageHistoryDetails([legacyDetail!], [incoming]);
|
||||
expect(merged).toHaveLength(1);
|
||||
@@ -177,6 +181,19 @@ describe('cliproxy usage transformer', () => {
|
||||
expect(merged[0].cost).toBe(incoming.cost);
|
||||
});
|
||||
|
||||
it('strips legacy account identifiers when merging persisted history', () => {
|
||||
const details = extractCliproxyUsageHistoryDetails(sampleResponse);
|
||||
const legacyDetail = {
|
||||
...details[0],
|
||||
source: 'user@example.com',
|
||||
authIndex: 'auth-file-7',
|
||||
};
|
||||
const merged = mergeCliproxyUsageHistoryDetails([legacyDetail], []);
|
||||
|
||||
expect(merged[0]).not.toHaveProperty('source');
|
||||
expect(merged[0]).not.toHaveProperty('authIndex');
|
||||
});
|
||||
|
||||
it('preserves legitimate duplicate requests when the incoming batch has more occurrences', () => {
|
||||
const details = extractCliproxyUsageHistoryDetails(sampleResponse);
|
||||
const repeated = [details[0], { ...details[0] }];
|
||||
|
||||
Reference in new issue
Block a user