From a30328d219d99595d38401c238664fb85c77d964 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 8 Dec 2025 13:04:40 +0100 Subject: [PATCH] auto-git: [change] main.js --- main.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/main.js b/main.js index ba75c9b..a57be2d 100755 --- a/main.js +++ b/main.js @@ -1574,24 +1574,26 @@ async function main() { /* ─── NEXT BLOCK: MONITOR “BIRTHDAY” FOR AUTOCOMMIT ─── */ const minutesThreshold = store.get('minutesCommitThreshold'); const now = Date.now(); + const recoveryThresholdMs = 2 * 60 * 1000; // wait before clearing a potentially stuck rewrite let updatedFolders = []; let anyChanged = false; - folders.forEach(folderObj => { - // Recover from a stuck rewrite flag (e.g., app closed mid-run) if no rebase is active. + for (const folderObj of folders) { + // Recover from a stuck rewrite flag (e.g., app closed mid-run) if no rebase is active and it's been long enough. if (folderObj.rewriteInProgress) { const inRebase = isRebaseInProgress(folderObj.path); - if (!inRebase) { + const startedAt = folderObj.rewriteStartedAt || 0; + if (!inRebase && (now - startedAt) > recoveryThresholdMs) { const merged = (folderObj.llmCandidates || []).concat(folderObj.llmBuffer || []); const newBirthday = merged.length ? Date.now() : null; folderObj.rewriteInProgress = false; + folderObj.rewriteStartedAt = null; folderObj.llmBuffer = []; folderObj.llmCandidates = merged; folderObj.firstCandidateBirthday = newBirthday; anyChanged = true; updatedFolders.push(folderObj); - store.set('folders', folders); debug(`[recovery] Cleared stuck rewrite flag for ${folderObj.path}, candidates=${merged.length}`); } } @@ -1599,10 +1601,10 @@ async function main() { if (folderObj.firstCandidateBirthday != null && !folderObj.rewriteInProgress) { const elapsedMin = (now - folderObj.firstCandidateBirthday) / 1000 / 60; if (elapsedMin >= minutesThreshold) { - runLLMCommitRewrite(folderObj, win); + await runLLMCommitRewrite(folderObj, win); } } - }); + } win.on('close', (e) => { // Wenn closeToTray aktiv ist und wir NICHT wirklich beenden wollen,