You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Windows: migrate-directory fails with EPERM due to VS Code file watchers #135
squad upgrade --migrate-directory fails on Windows with:
EPERM: operation not permitted, rename
The migration uses fs.renameSync() to move .ai-team/ to .squad/. On Windows, this fails when VS Code (or any other file watcher) has handles open on files inside the directory.
Steps to reproduce
Open a repo with .ai-team/ in VS Code
Run npx github:bradygaster/squad upgrade --migrate-directory
Migration fails with EPERM
Expected behavior
Migration completes successfully regardless of open file handles.
Suggested fix
Fall back to copy+delete when fs.renameSync fails with EPERM:
try{fs.renameSync(aiTeamDir,squadDir);}catch(err){if(err.code==='EPERM'||err.code==='EACCES'){// Copy + delete fallback for Windows file watcher lockscopyRecursive(aiTeamDir,squadDir);fs.rmSync(aiTeamDir,{recursive: true,force: true});}else{throwerr;}}
The same pattern should apply to the .ai-team-templates/ → .squad-templates/ rename later in the migration.
Fixed in PR #149 (merged to dev). Added safeRename() helper that catches EPERM/EACCES on Windows and falls back to fs.cpSync + fs.rmSync. Both .ai-team/ -> .squad/ and .ai-team-templates/ -> .squad-templates/ renames now use the safe pattern.
Fixed in PR #149 (merged to dev). Added safeRename() helper that catches EPERM/EACCES on Windows and falls back to fs.cpSync + fs.rmSync. Applied to both the .ai-team/ → .squad/ and .ai-team-templates/ → .squad-templates/ renames. Will ship in the next release.
Activity
fix: Windows EPERM fallback (#135) + --version shows installed (#137)
fix: Windows EPERM fallback (#135) + --version shows installed (#137)
bradygaster commentedon Feb 27, 2026
Fixed in PR #149 (merged to dev). Added safeRename() helper that catches EPERM/EACCES on Windows and falls back to fs.cpSync + fs.rmSync. Both .ai-team/ -> .squad/ and .ai-team-templates/ -> .squad-templates/ renames now use the safe pattern.
bradygaster commentedon Feb 27, 2026
Fixed in PR #149 (merged to dev). Added
safeRename()helper that catches EPERM/EACCES on Windows and falls back tofs.cpSync+fs.rmSync. Applied to both the.ai-team/→.squad/and.ai-team-templates/→.squad-templates/renames. Will ship in the next release.docs(ai-team): Log Fenster CLI fixes session
chore: merge fix for #135 (Windows EPERM) and #137 (--version) into dev
chore: merge dev for v0.5.3 release
Scribe: Orchestration logs, session consolidation, decision merge
chore(notifications): organize github#112 feature + update SKILL.md a…
github#135 E2E validation: notifications MVP VALIDATED
Log notifications MVP completion batch (2026-03-24T01:01:43Z)