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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
Concurrent adds on Windows no longer fail with EPERM on the lock guard.open(wx) on a guard that another process is unlinking at that instant returns EPERM on Windows (delete-pending), not EEXIST; acquire() treated it as fatal, so one of several simultaneous pins exited 1 while the lock itself was correct (CI run 35579991225, windows-latest). EPERM / EACCES / EBUSY from the guard open are now contention and retried like EEXIST. Because those two codes can also mean a permanent ACL denial, the retry window is bounded: a guard that can be neither created nor stat'ed is retried for waitMs and then reports the original EACCES/EPERM instead of looping forever. Regression tests inject each code, cover a persistent denial and a recovering stat, and hammer one guard from six processes.
Changed
The README npm and Glama render is the current one. Both mirror the copy
in the published tarball, so the restructured README (proof first, reference
moved to docs/), the hero art and the current agent-security stack
(redstamp · truecopy · plumbline) reach them only with a release. The watch
figure is refreshed to the 2026-09-25 run (314 plugins · 2,442 skills · 0
under review · 475 advisories).