refactor: consolidated duplicate

- Consolidated duplicate `stripSnapcompactPreserveData` functions into `snapcompact.stripPreservedArchive`.
- Added unit tests to verify archive removal and empty state collapse behavior.
This commit is contained in:
can1357
2026-06-26 14:28:49 +02:00
parent 13100cbade
commit 93b80e5b1b
4 changed files with 38 additions and 18 deletions
@@ -1117,20 +1117,12 @@ function toRestoredQueuedMessage(message: AgentMessage): RestoredQueuedMessage {
return { text: queueChipText(message), images: queuedImageContent(message) };
}
function stripSnapcompactPreserveData(
preserveData: Record<string, unknown> | undefined,
): Record<string, unknown> | undefined {
if (!preserveData || !(snapcompact.PRESERVE_KEY in preserveData)) return preserveData;
const { [snapcompact.PRESERVE_KEY]: _removed, ...rest } = preserveData;
return Object.keys(rest).length > 0 ? rest : undefined;
}
function mergeLlmCompactionPreserveData(
hookPreserveData: Record<string, unknown> | undefined,
resultPreserveData: Record<string, unknown> | undefined,
): Record<string, unknown> | undefined {
const preserveData = { ...(hookPreserveData ?? {}), ...(resultPreserveData ?? {}) };
return stripSnapcompactPreserveData(Object.keys(preserveData).length > 0 ? preserveData : undefined);
return snapcompact.stripPreservedArchive(Object.keys(preserveData).length > 0 ? preserveData : undefined);
}
export class AgentSession {