fs-extra routes all operations through graceful-fs, which globally monkey-patches node:fs with a deferred retry queue. During multi-module installs (~500+ file ops), retried unlink operations from one module's remove phase can fire after the next module's copy phase has written files, silently deleting them non-deterministically. Replace fs-extra with a thin fs-native.js wrapper over node:fs/promises and node:fs. All 21 consumers now use native APIs with no global monkey-patching, eliminating the retry-queue race condition entirely. Closes #1779 |
||
|---|---|---|
| .. | ||
| community-manager.js | ||
| custom-module-manager.js | ||
| external-manager.js | ||
| official-modules.js | ||
| plugin-resolver.js | ||
| registry-client.js | ||
| registry-fallback.yaml | ||