mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-16 18:34:18 +00:00
fix: clean unretained compaction snapshots
This commit is contained in:
@@ -79,6 +79,8 @@ describe("session-compaction-checkpoints", () => {
|
||||
|
||||
expect(sessionManagerOpenSpy).not.toHaveBeenCalled();
|
||||
expect(snapshot).not.toBeNull();
|
||||
expect(snapshot?.agentId).toBe(DEFAULT_AGENT_ID);
|
||||
expect(snapshot?.sourceSessionId).toBe(session.getSessionId());
|
||||
expect(snapshot?.leafId).toBe(leafId);
|
||||
expect(snapshot?.sessionFile).not.toBe(sessionFile);
|
||||
expect(snapshot?.sessionFile).toContain("sqlite-transcript://");
|
||||
@@ -119,7 +121,14 @@ describe("session-compaction-checkpoints", () => {
|
||||
agentId: DEFAULT_AGENT_ID,
|
||||
sessionId: snapshot!.sessionId,
|
||||
}),
|
||||
).toBe(true);
|
||||
).toBe(false);
|
||||
expect(
|
||||
hasSqliteSessionTranscriptSnapshot({
|
||||
agentId: DEFAULT_AGENT_ID,
|
||||
sessionId: session.getSessionId(),
|
||||
snapshotId: snapshot!.sessionId,
|
||||
}),
|
||||
).toBe(false);
|
||||
} finally {
|
||||
sessionManagerOpenSpy.mockRestore();
|
||||
}
|
||||
@@ -161,6 +170,8 @@ describe("session-compaction-checkpoints", () => {
|
||||
|
||||
expect(sessionManagerOpenSpy).not.toHaveBeenCalled();
|
||||
expect(snapshot).not.toBeNull();
|
||||
expect(snapshot?.agentId).toBe(DEFAULT_AGENT_ID);
|
||||
expect(snapshot?.sourceSessionId).toBe(sessionId);
|
||||
expect(snapshot?.sessionId).not.toBe(sessionId);
|
||||
expect(snapshot?.leafId).toBe(leafId);
|
||||
expect(snapshot?.sessionFile).not.toBe(sessionFile);
|
||||
|
||||
@@ -31,6 +31,8 @@ const MAX_COMPACTION_CHECKPOINTS_PER_SESSION = 25;
|
||||
export const MAX_COMPACTION_CHECKPOINT_SNAPSHOT_BYTES = 64 * 1024 * 1024;
|
||||
|
||||
export type CapturedCompactionCheckpointSnapshot = {
|
||||
agentId: string;
|
||||
sourceSessionId: string;
|
||||
sessionId: string;
|
||||
sessionFile?: string;
|
||||
leafId: string;
|
||||
@@ -289,6 +291,8 @@ export async function captureCompactionCheckpointSnapshotAsync(params: {
|
||||
},
|
||||
});
|
||||
return {
|
||||
agentId: snapshotAgentId,
|
||||
sourceSessionId: sourceHeader.id,
|
||||
sessionId: snapshotSessionId,
|
||||
sessionFile: snapshotFile,
|
||||
leafId,
|
||||
@@ -298,7 +302,18 @@ export async function captureCompactionCheckpointSnapshotAsync(params: {
|
||||
export async function cleanupCompactionCheckpointSnapshot(
|
||||
snapshot: CapturedCompactionCheckpointSnapshot | null | undefined,
|
||||
): Promise<void> {
|
||||
void snapshot;
|
||||
if (!snapshot) {
|
||||
return;
|
||||
}
|
||||
deleteSqliteSessionTranscriptSnapshot({
|
||||
agentId: snapshot.agentId,
|
||||
sessionId: snapshot.sourceSessionId,
|
||||
snapshotId: snapshot.sessionId,
|
||||
});
|
||||
deleteSqliteSessionTranscript({
|
||||
agentId: snapshot.agentId,
|
||||
sessionId: snapshot.sessionId,
|
||||
});
|
||||
}
|
||||
|
||||
export async function persistSessionCompactionCheckpoint(params: {
|
||||
|
||||
Reference in New Issue
Block a user