Repository navigation
fs-safe 0.21.3
Highlights
- Watch transient files: excluded files and atomic-save temp files no longer cause spurious overflow when they disappear between guarded passes. (#773)
- Faster watch rescans: unrelated native hints skip rescans, and relevant hints reconcile affected directories, reducing scan work and allocation. (#774)
Fixes
- Watch: no longer reports overflow when an excluded or atomic-save temp file appears and disappears between guarded passes under the same observed parent directory. (#773)
- Windows removal: nonrecursive
Root.remove()reportsnot-emptyfor a nonempty directory in required native mode, including withforce: true, instead ofnot-removable. (#771) - Copy and staging failures: preserve publication callback errors with unreadable metadata, retain uncertain native rename outcomes, and prevent repeated or reentrant cleanup from reusing consumed descriptors. (#763)
Performance
- Watch: skip guarded unrelated native hints and reconcile affected directories, reducing a 502-file memory-watch fixture from 513 to 55 visits and 8.16 MB to 1.33 MB sampled allocation per relevant event pass; unrelated detailed hints at two edits/second no longer trigger 120 full scans/minute, while periodic and uncertain-event reconciliation remain full. (#774)
- Linux fallback resolution: reuse the file type from each component's checked descriptor observation, avoiding a duplicate metadata read while retaining fresh identity, symlink-target, and mount-policy checks. (#757)
- Native parent validation: reuse the retained descriptor's captured identity during ordinary POSIX policy checks, avoiding a duplicate metadata read while keeping the final pathname inspection fresh. (#735)
Published packages
| Package | Registry tarball | Verified integrity | Provenance |
|---|---|---|---|
| @openclaw/fs-safe-linux-x64-gnu@0.21.3 | tgz | sha512-+Xr7WLr2BCiPfx/xCYzn2Lcf+5IUj04EOUwwWbIGIlB8moXGF2uqe5vMtEifHyhvAqHES56QE3aYXqiLyNrhgQ== |
verified attestation |
| @openclaw/fs-safe-linux-x64-musl@0.21.3 | tgz | sha512-fI4ij+6v/tk8HAI2X/GWbeeipNr3FsRaroPW1SolgHmrt+N6uTL/jxBFIpAcIfeRWy9hb8Kfd4dT07MV1wOF5A== |
verified attestation |
| @openclaw/fs-safe-linux-arm64-gnu@0.21.3 | tgz | sha512-JPDX4gk6vH/sYzQ6tHse0Zimb7lS0OBeJwT0iLF2BPQ1fobLH5X7iOrQgsqCfhRM0m+Ts6UJT7ebf/63T2uPoA== |
verified attestation |
| @openclaw/fs-safe-linux-arm64-musl@0.21.3 | tgz | sha512-CcqsLepJQTK5Rn6x5tEv3kaDV5jeveQO1HKBwlcJ7tEWhLb9KDRYHiyStqyg10u/O+apMril6Sj5chjPXApciw== |
verified attestation |
| @openclaw/fs-safe-darwin-x64@0.21.3 | tgz | sha512-bxxFN9l5BmaLxDO4hGnMl7LMFkmc4Uj/n7oNZCG407zZCY3wv+I0C3QocH/Nnrz3Of2zXtLElPYc2wqejryJ6Q== |
verified attestation |
| @openclaw/fs-safe-darwin-arm64@0.21.3 | tgz | sha512-ztAj99tTLFNtphtHNQJntsiNcb74c81Z83qeC86Da2INhXDjZTVk9W/jb1He9owaDo5fi7/oxRbt3MAbPaqRSw== |
verified attestation |
| @openclaw/fs-safe-win32-x64-msvc@0.21.3 | tgz | sha512-CuylNHU+zEayp18J/zU7qB1M/7/Jc/nWVigQ2US+EALB1LfGly45ZVSKnK7618z+xfBXpK+5c83n0piiukXH+g== |
verified attestation |
| @openclaw/fs-safe@0.21.3 | tgz | sha512-sBm68f4QiZrrqlZxbOlqVIutrmOK/KLZBrwyPIhV7xXJmlPFc6ZET8AggcU3hMDM3dDSUYgA8LUupxwTB2DZsg== |
verified attestation |
Release proof: GitHub Actions run.