fix: resolve #3124 #3125 #3127 session tools, cache priming, and compaction loop

- #3124: Session tools now merge SDK and file-backed sessions for SQLite backend
- #3125: Cache priming fixed for OpenCode >=1.3.14 empty workspace
- #3127: Activity-based progress detection prevents infinite compaction on Kimi/Minimax

All 29 new tests pass, 4885 total tests passing.
This commit is contained in:
YeonGyu-Kim
2026-04-05 09:30:19 +09:00
parent aeb9c97c30
commit 130f4ac080
22 changed files with 538 additions and 114 deletions
@@ -16,6 +16,14 @@ import { acknowledgeCompactionGuard, isCompactionGuardActive } from "./compactio
import type { SessionStateStore } from "./session-state"
import { startCountdown } from "./countdown"
function shouldAllowActivityProgress(modelID: string | undefined): boolean {
if (!modelID) {
return false
}
return !modelID.toLowerCase().includes("codex")
}
export async function handleSessionIdle(args: {
ctx: PluginInput
sessionID: string
@@ -182,7 +190,12 @@ export async function handleSessionIdle(args: {
return
}
const progressUpdate = sessionStateStore.trackContinuationProgress(sessionID, incompleteCount, todos)
const progressUpdate = sessionStateStore.trackContinuationProgress(
sessionID,
incompleteCount,
todos,
{ allowActivityProgress: shouldAllowActivityProgress(resolvedInfo?.model?.modelID) },
)
if (shouldStopForStagnation({ sessionID, incompleteCount, progressUpdate })) {
return
}