From d4d8d1a81e4c6209a1cee745b14558e804aa400b Mon Sep 17 00:00:00 2001 From: Juan Francisco Lebrero <101231690+frizynn@users.noreply.github.com> Date: Wed, 18 Mar 2026 21:03:28 -0300 Subject: [PATCH] fix: skip crash recovery when auto.lock was written by current process (#1289) --- src/resources/extensions/gsd/auto-start.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/resources/extensions/gsd/auto-start.ts b/src/resources/extensions/gsd/auto-start.ts index 673296982..1c18ee761 100644 --- a/src/resources/extensions/gsd/auto-start.ts +++ b/src/resources/extensions/gsd/auto-start.ts @@ -131,9 +131,11 @@ export async function bootstrapAutoSession( // Initialize GitServiceImpl s.gitService = createGitService(s.basePath); - // Check for crash from previous session (use both old and new lock data) + // Check for crash from previous session (use both old and new lock data). + // Skip if the lock PID matches this process — acquireSessionLock() writes + // to the same auto.lock file before this check, so we'd always false-positive. const crashLock = readCrashLock(base); - if (crashLock) { + if (crashLock && crashLock.pid !== process.pid) { // We already hold the session lock, so no concurrent session is running. // The crash lock is from a dead process — recover context from it. const recoveredMid = crashLock.unitId.split("/")[0];