Repository navigation
fs-safe 0.9.0
Highlights: Faster bulk extraction and configurable durability, with Windows filesystem fixes and reliable mixed-version lock cleanup.
- Compatibility:
extractArchiveskips file and directory fsync by default for faster bulk imports; passdurable: trueto restore the previous durability behavior. - Add store-level and per-call
durableoptions to FileStore writes, streams, copies, and synchronous writes, plus JSON-store defaults, so reconstructible data can skip fsync while preserving guarded atomic publication. - Add
Root.copyIn({ durable: false }), with per-call, root-default, thentrueprecedence, to skip file and parent-directory fsync for reconstructible data. - Speed up archive extraction by omitting private staging syncs, deferring opted-in publication durability to one bounded file/directory pass, and sharing duplicate destination guards without weakening containment checks.
- Keep process-exit lock cleanup working when a legacy shared manager lacks reclaim-guard state, continuing through later managers while preserving retained locks; thanks @metahacker.
- Publish read-only modes such as
0o400through the Windows JavaScript write fallback by retaining private0o600staging and applying the final mode through the retained handle after rename. - Preserve Windows file identity across open-induced
ctimechanges during guarded move fallback, and recreate directory junctions without requiring symlink privileges; thanks @giodl73-repo. - Extend synchronous metadata observations to archive, copy, publication, move, and directory-mode paths while keeping data and structural I/O asynchronous and preserving native canonical paths.
- Keep durable publication coverage reliable under filesystem contention by allowing bounded I/O time and draining unfinished operations before fixture cleanup.
- Refresh JSZip to 3.10.2, Node declarations to 26.5.1, emnapi runtime build tooling to 2.0.0-alpha.5, the Rust hybrid-array dependency to 0.4.15, and pinned CodeQL actions to 4.38.0.
Published packages
| Package | Registry tarball | Verified integrity | Provenance |
|---|---|---|---|
| @openclaw/fs-safe-linux-x64-gnu@0.9.0 | tgz | sha512-l6+vtb22AH2QMZpTUNZAv2Cab5Law7R/ybzZDrc36Ub51LeH8fpNiSts+DvxjCf1YV8wkXgU0GTXZcz/U0575w== |
verified attestation |
| @openclaw/fs-safe-linux-x64-musl@0.9.0 | tgz | sha512-nHU/rlDhOs9VRj47gh2oxjiHOy6CZkQHmooffwb238pveajZb/SdjhQwBIgtHeh958aTTEt5wSKw2mZ5gva4Ag== |
verified attestation |
| @openclaw/fs-safe-linux-arm64-gnu@0.9.0 | tgz | sha512-ylEE+wr82hY2Y673+4WsB/cBKRk8Xs3ccHDGOv5vRo7RtZUm63tPgYJlhWACRVe6vVkCS/ag/9vnCynbMCHaXA== |
verified attestation |
| @openclaw/fs-safe-linux-arm64-musl@0.9.0 | tgz | sha512-NsCXbQMO+reW8zoE9CUHLtnLfez9KitTKXxEkjI4/7DNwg7fSksNZ9e18awaIFe+R43/831GPmNbBrdWZmwKSQ== |
verified attestation |
| @openclaw/fs-safe-darwin-x64@0.9.0 | tgz | sha512-Syc4AAL/F90PaQeETQ6RI6PRlYAT0kWuwiMAvQUdv1wymXTNk/8L/h1h+JavqCokpqawRNJ4r6zpOnhI49vtxw== |
verified attestation |
| @openclaw/fs-safe-darwin-arm64@0.9.0 | tgz | sha512-TZU8bJOxISK17R3ZKzOgd90bZivqcBYgYtymsM/8Md3/V+ZvEnmH+bnphPQOCsxxFa28c9IRL2DWUAJt9/3kEQ== |
verified attestation |
| @openclaw/fs-safe-win32-x64-msvc@0.9.0 | tgz | sha512-eJYLtq5AFlgSBqekfKifexGD+q1aWmAyPVJiwZXFNhHzlqA2B7Xxby4y1KVFJB2LkcICbDdj/of2YXKpRF/I/g== |
verified attestation |
| @openclaw/fs-safe@0.9.0 | tgz | sha512-tosF8aEryiwblHUcoiZLlyNFHqtwNkvZcTGM0rnpl30Szlxkg6GEdzbpmvWM0x6q4ZaMrkGAODtrwZGD0eoXEw== |
verified attestation |
Release proof: GitHub Actions run.