Skip to content

fix(dev-utils): replace write-file-atomic with atomically#686

Open
serhalp wants to merge 2 commits into
mainfrom
claude/slack-session-TLpQ2
Open

fix(dev-utils): replace write-file-atomic with atomically#686
serhalp wants to merge 2 commits into
mainfrom
claude/slack-session-TLpQ2

Conversation

@serhalp
Copy link
Copy Markdown
Member

@serhalp serhalp commented May 13, 2026

write-file-atomic has a known issue with EPERM errors on Windows CI during atomic rename operations (npm/write-file-atomic#227). The package doesn't have retry logic and is largely unmaintained 😬.

atomically is a modern, popular (7M downloads/wk) replacement that:

  • Retries EPERM/EBUSY/EACCES errors automatically (7.5s timeout)
  • Uses stubborn-fs for Windows compatibility
  • Has native TypeScript types (no @types package needed) and ESM
  • Same API surface

This should fix flaky Windows CI failures.

See https://npmx.dev/compare?packages=write-file-atomic,atomically.

write-file-atomic has a known issue with EPERM errors on Windows CI
during atomic rename operations (npm/write-file-atomic#227).
The package doesn't have retry logic and is largely unmaintained.

atomically is a modern replacement that:
- Retries EPERM/EBUSY/EACCES errors automatically (7.5s timeout)
- Uses stubborn-fs for Windows compatibility
- Has native TypeScript types (no @types package needed)
- Same API surface

This should fix flaky Windows CI failures in nuxt-module tests.

https://claude.ai/code/session_01Am39kTSMwxUGJnbDeuJanj
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 13, 2026

Warning

Rate limit exceeded

@serhalp has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 57 minutes and 56 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ef191c0a-f443-4845-8ac5-a9ba3ec57b6a

📥 Commits

Reviewing files that changed from the base of the PR and between 2941cca and 6e053b8.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (3)
  • packages/dev-utils/package.json
  • packages/dev-utils/src/lib/global-config.ts
  • packages/dev-utils/src/lib/local-state.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/slack-session-TLpQ2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@serhalp serhalp marked this pull request as ready for review May 13, 2026 16:20
@serhalp serhalp requested review from a team as code owners May 13, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants