fix(anthropic-auto-compact): improve session recovery with Continue prompt

- Replace recursive retry mechanism with explicit session.prompt_async('Continue')
- Clear all compaction state after successful revert to prevent state corruption
- Prevents infinite retry loops and improves session reliability

🤖 Generated with assistance of oh-my-opencode
This commit is contained in:
YeonGyu-Kim
2025-12-19 19:37:36 +09:00
parent b9e373ab39
commit 12cd3382aa

View File

@@ -492,14 +492,19 @@ export async function executeCompact(
fallbackState.revertAttempt++
fallbackState.lastRevertedMessageID = pair.userMessageID
retryState.attempt = 0
truncateState.truncateAttempt = 0
// Clear all state after successful revert - don't recurse
clearSessionState(autoCompactState, sessionID)
autoCompactState.compactionInProgress.delete(sessionID)
setTimeout(() => {
executeCompact(sessionID, msg, autoCompactState, client, directory, experimental)
}, 1000)
// Send "Continue" prompt to resume session
setTimeout(async () => {
try {
await (client as Client).session.prompt_async({
path: { sessionID },
body: { parts: [{ type: "text", text: "Continue" }] },
query: { directory },
})
} catch {}
}, 500)
return
} catch {}
} else {