BMAD-METHOD/tools/cli/lib
Adam Biggs a12d5d03b5 fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss
fs-extra routes all async operations through graceful-fs, whose EMFILE
retry queue causes non-deterministic file loss on macOS APFS during bulk
copy operations (~500+ files). Approximately 50% of install runs lose
26+ files from _bmad/.

Replace fs-extra entirely with a thin native wrapper (tools/cli/lib/fs.js)
that provides the same API surface backed by node:fs and node:fs/promises.
Copy and remove operations use synchronous native calls to eliminate the
race condition. Verified across 8+ consecutive runs with zero file loss.

- Add tools/cli/lib/fs.js native wrapper with full fs-extra API compat
- Update all 40 files to require the wrapper instead of fs-extra
- Remove fs-extra from package.json dependencies
- Add 37-test suite including 250-file bulk copy determinism test
2026-03-12 12:14:23 -07:00
..
agent refactor(skills): convert party-mode to native skill directory (#1906) 2026-03-11 22:48:29 -05:00
activation-builder.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
agent-analyzer.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
agent-party-generator.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
cli-utils.js refactor: Complete @clack/prompts Migration & Installer Output Consolidation (#1586) 2026-02-08 00:40:13 -06:00
config.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
file-ops.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
fs.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
platform-codes.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
project-root.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
prompts.js refactor: Complete @clack/prompts Migration & Installer Output Consolidation (#1586) 2026-02-08 00:40:13 -06:00
ui.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
xml-handler.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00
xml-to-markdown.js feat: v6.0.0-alpha.0 - the future is now 2025-09-28 23:17:07 -05:00
yaml-format.js we only need one yaml lib 2025-12-13 18:35:07 +08:00
yaml-xml-builder.js fix(installer): replace fs-extra with native fs to prevent non-deterministic file loss 2026-03-12 12:14:23 -07:00