Skip to content

Commit caf6009

Browse files
committed
refactor: move compression duration updates into compress state
1 parent 0072c7d commit caf6009

File tree

3 files changed

+27
-27
lines changed

3 files changed

+27
-27
lines changed

lib/compress/state.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { CompressionBlock, SessionState } from "../state"
1+
import type { CompressionBlock, PruneMessagesState, SessionState } from "../state"
22
import { formatBlockRef, formatMessageIdTag } from "../message-ids"
33
import type { AppliedCompressionResult, CompressionStateInput, SelectionResolution } from "./types"
44

@@ -26,6 +26,31 @@ export function allocateRunId(state: SessionState): number {
2626
return next
2727
}
2828

29+
export function attachCompressionDuration(
30+
messagesState: PruneMessagesState,
31+
callId: string,
32+
messageId: string,
33+
durationMs: number,
34+
): number {
35+
if (typeof durationMs !== "number" || !Number.isFinite(durationMs)) {
36+
return 0
37+
}
38+
39+
let updates = 0
40+
for (const block of messagesState.blocksById.values()) {
41+
const matchesCall = block.compressCallId === callId
42+
const matchesMessage = !block.compressCallId && block.compressMessageId === messageId
43+
if (!matchesCall && !matchesMessage) {
44+
continue
45+
}
46+
47+
block.durationMs = durationMs
48+
updates++
49+
}
50+
51+
return updates
52+
}
53+
2954
export function wrapCompressedSummary(blockId: number, summary: string): string {
3055
const header = COMPRESSED_BLOCK_HEADER
3156
const footer = formatMessageIdTag(formatBlockRef(blockId))

lib/state/state.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import type { CompressionTimingState, SessionState, ToolParameterEntry, WithParts } from "./types"
22
import type { Logger } from "../logger"
3+
import { attachCompressionDuration } from "../compress/state"
34
import { loadSessionState, saveSessionState } from "./persistence"
45
import {
5-
attachCompressionDuration,
66
isSubAgentSession,
77
findLastCompactionTimestamp,
88
countTurns,

lib/state/utils.ts

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,6 @@ import type {
88
import { isIgnoredUserMessage, messageHasCompress } from "../messages/query"
99
import { countTokens } from "../token-utils"
1010

11-
export function attachCompressionDuration(
12-
messagesState: PruneMessagesState,
13-
callId: string,
14-
messageId: string,
15-
durationMs: number,
16-
): number {
17-
if (typeof durationMs !== "number" || !Number.isFinite(durationMs)) {
18-
return 0
19-
}
20-
21-
let updates = 0
22-
for (const block of messagesState.blocksById.values()) {
23-
const matchesCall = block.compressCallId === callId
24-
const matchesMessage = !block.compressCallId && block.compressMessageId === messageId
25-
if (!matchesCall && !matchesMessage) {
26-
continue
27-
}
28-
29-
block.durationMs = durationMs
30-
updates++
31-
}
32-
33-
return updates
34-
}
35-
3611
export const isMessageCompacted = (state: SessionState, msg: WithParts): boolean => {
3712
if (msg.info.time.created < state.lastCompaction) {
3813
return true

0 commit comments

Comments
 (0)