From 12cd3382aa0b50648e0af92e6ac67e3b685ffd81 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 19 Dec 2025 19:37:36 +0900 Subject: [PATCH] fix(anthropic-auto-compact): improve session recovery with Continue prompt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- src/hooks/anthropic-auto-compact/executor.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/hooks/anthropic-auto-compact/executor.ts b/src/hooks/anthropic-auto-compact/executor.ts index 6607b95..d0cbeab 100644 --- a/src/hooks/anthropic-auto-compact/executor.ts +++ b/src/hooks/anthropic-auto-compact/executor.ts @@ -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 {