From 128e6c04cf2a5de6b005e1293b4ef81c53b20840 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Mon, 22 Jun 2026 00:53:25 +0900 Subject: feat: default auto-compact threshold to 350k tokens When no compact-threshold is explicitly set on a conversation, the default is 350000 tokens. Setting threshold to 0 explicitly disables auto-compact. --- packages/session-orchestrator/src/orchestrator.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'packages') diff --git a/packages/session-orchestrator/src/orchestrator.ts b/packages/session-orchestrator/src/orchestrator.ts index e2d126c..c3b94bf 100644 --- a/packages/session-orchestrator/src/orchestrator.ts +++ b/packages/session-orchestrator/src/orchestrator.ts @@ -693,6 +693,7 @@ export function createWarmService( } const DEFAULT_KEEP_LAST_N = 10; +const DEFAULT_COMPACT_THRESHOLD = 350000; const COMPACTION_SYSTEM_PROMPT = "You are a conversation summarizer. Summarize the following conversation concord concisely but comprehensively. " + @@ -734,10 +735,12 @@ export function createCompactionService( return { error: "conversation too short to compact" }; } - // Auto mode: check threshold + // Auto mode: check threshold (default 350k if not explicitly set; + // 0 explicitly disables). if (opts?.auto === true) { - const threshold = await deps.conversationStore.getCompactThreshold(conversationId); - if (threshold === null || threshold <= 0) return { error: "auto-compact disabled" }; + const stored = await deps.conversationStore.getCompactThreshold(conversationId); + const threshold = stored ?? DEFAULT_COMPACT_THRESHOLD; + if (threshold <= 0) return { error: "auto-compact disabled" }; const metrics = await deps.conversationStore.loadMetrics(conversationId); const lastTurn = metrics[metrics.length - 1]; if (lastTurn === undefined) return { error: "no metrics" }; -- cgit v1.2.3