From 839ea22d06e69f14514a858703350ff72ad3754e Mon Sep 17 00:00:00 2001 From: Jeremy McSpadden Date: Sat, 4 Apr 2026 14:49:59 -0500 Subject: [PATCH] fix: replace shell sleep with cross-platform Atomics.wait in planning lock (#1693) Fixes #1692 spawnSync('sleep', ['0.1']) fails silently on Windows (ENOENT), causing a tight busy-loop during lock contention. Atomics.wait() provides a cross-platform 100ms blocking wait available in Node 22+. --- get-shit-done/bin/lib/core.cjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/get-shit-done/bin/lib/core.cjs b/get-shit-done/bin/lib/core.cjs index 4afc6e4cc..e8ad18b9e 100644 --- a/get-shit-done/bin/lib/core.cjs +++ b/get-shit-done/bin/lib/core.cjs @@ -581,8 +581,8 @@ function withPlanningLock(cwd, fn) { } } catch { continue; } - // Wait and retry - spawnSync('sleep', ['0.1'], { stdio: 'ignore' }); + // Wait and retry (cross-platform, no shell dependency) + Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 100); continue; } throw err;