test(host): isolate compaction metric preservation (round 2)

This commit is contained in:
Hypatia May
2026-07-28 12:19:12 +08:00
parent 9ca0241d5d
commit 1fb1f00ec2
@@ -100,6 +100,15 @@ describe('SessionMetricsProjector', () => {
surfaceOp: { op: 'replace', start: first.seq, end: assistantSeq },
sourceEventSeqs: [first.seq, assistantSeq],
})
const compacted = projector.snapshot(session, attached)
expect(compacted).toMatchObject({
uncachedInputTokens: 11,
outputTokens: 3,
cacheReadTokens: 89,
cacheWriteTokens: 8,
contextTokens: 100,
})
// A replayed usage event for the same step replaces the settled value.
session.append('assistant/chunk', {
turn: 1,
@@ -114,8 +123,8 @@ describe('SessionMetricsProjector', () => {
},
},
})
const compacted = projector.snapshot(session, attached)
expect(compacted).toMatchObject({
const replayed = projector.snapshot(session, attached)
expect(replayed).toMatchObject({
uncachedInputTokens: 12,
outputTokens: 4,
cacheReadTokens: 88,
@@ -132,7 +141,7 @@ describe('SessionMetricsProjector', () => {
const after = projector.snapshot(session, attached)
expect(after).toMatchObject({
logRevision: session.events.length,
projectionRevision: 2,
projectionRevision: 3,
uncachedInputTokens: 1_012,
outputTokens: 504,
cacheReadTokens: 2_088,