agent-orchestrator/packages/plugins/workspace-worktree
Priyanshu Choudhary 12ba020979 fix(windows): retry worktree rmSync on file-handle drain race
After ao kills a runtime, the just-exited pty-host's child processes
(conpty_console_list_agent.exe, the agent's spawned shell, .git/index.lock)
still hold open handles inside the worktree for ~30 s–2 min while Windows
drains them. rmSync(force: true) deletes individual files but the parent
rmdir blocks with EBUSY/ENOTEMPTY/EPERM, leaving an empty orphan directory
under ~/.agent-orchestrator/projects/*/worktrees/.

destroy()'s catch-block fallback now calls removeDirWithRetry, which on
Windows retries with backoff [0, 100, 250, 500, 1000, 2000] ms checking
existsSync between attempts, and throws a descriptive error if the
directory survives all six. Non-Windows behaviour is unchanged (single
rmSync).

The thrown error escapes to session-manager.ts:kill which already swallows
it, so callers see no behaviour change today — but observability layers
can hook in later to surface real failures instead of silent orphans.

Addresses the Windows subset of #1562 (the cross-platform stale
.git/worktrees/<id>/ registration is still tracked there separately).
2026-04-29 21:17:19 +05:30
..
src fix(windows): retry worktree rmSync on file-handle drain race 2026-04-29 21:17:19 +05:30
CHANGELOG.md chore: version packages 2026-03-20 15:47:55 +00:00
package.json chore: bump all package versions to 0.2.5 (#1190) 2026-04-13 05:47:08 +05:30
tsconfig.json fix: scope node types to node packages 2026-04-13 18:25:21 +05:30