chore(release): prepare 0.7.1 - #192
Conversation
Finalize lock reliability, native ZIP integrity, and long-filename release notes through PR #191. Align all package/crate versions and exact native pins, preserving historical notes and existing trusted-publishing behavior.
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: chore(release): prepare 0.7.1 This is item 1/1 in the current shard. Shard 0/1. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
0.7.1 released and independently verifiedPublished fs-safe 0.7.1 and the npm root package from protected annotated tag The original merged-main macOS contention failure was resolved in #193 before tagging. The final tree preserves strict Root reads and creator admission while permitting bounded, authority-free discard of a verified stale pre-open observation. Final-main CI, coverage, CodeQL, and docs passed. Source proof included 6,364 passing tests (81 skipped), 84 security tests, 63 Rust tests, Clippy, package smoke, and 6,000 contended acquisitions. Independent publication verification checked all eight packages with npm view: exact version, latest dist-tag, canonical tarball URL, integrity, and publication time. Every registry tarball was downloaded and hashed against the actual workflow-collected artifact. Registry signatures and Sigstore provenance were verified, including the signed source-commit claim matching the tagged commit. This proves artifact equivalence and signed provenance, not an independent reproducible build. Fresh registry consumers on macOS arm64, Node 22.23.2 and 24.20.0, passed off/auto/require modes: 204 ZIP observations and 36 ZIP contract-clause results, 48 long-filename persistence/control observations, 12 synthetic callback-replay cases, and six real-filesystem pre-open handoff cases with a scheduled test-hook interleaving. Auto/require loaded the matching published native binary; off loaded none. The replay fixture deliberately emulates Windows with injected open denial, so those cases are not additional Windows runtime proof. An initial long-name fixture omitted the documented pre-existing extraction directory; only that setup was corrected before rerunning fresh consumers. No product guard or deadline was relaxed. The public Release body is byte-identical to the workflow's proof artifact and begins with the exact 3,975-byte finalized changelog section (SHA-256 |
Summary
Prepare 0.7.1 from latest main (
8d4ff13365c33db031c4b7cbd48e40777a98733c), including the lock handoff and ZIP-integrity fixes in #189, callback-error isolation in #190, and long destination filename fixes in #191.Align the root package, seven native packages, private native build workspace, Rust crate, and seven exact native optional-dependency pins at 0.7.1. Regenerate both lockfiles with only these version/pin changes. Finalize the dated changelog with user-facing Highlights, preserving all 0.7.0-and-older notes byte-for-byte and without opening another Unreleased section.
Refresh the obsolete single-package release checklist to describe the existing eight-package, protected-tag, npm trusted-publishing workflow. This PR changes no runtime implementation or release workflow.
Verification
3d835ee391cb0baa90e64181bfe0747a7f85019b45b0e8a691940a15a9658705.FS_SAFE_PAX_REQUIRE_NATIVE=1 pnpm check(6,328 passed / 81 skipped),pnpm test:security(84 passed),cargo test --workspace --locked(63 passed),cargo clippy --workspace --locked -- -D warnings,pnpm docs:site, andpnpm package:smoke.off,auto,require), 1,200 total, plus real permission-denial release-retry controls. npm and pnpm fresh host consumers passed native selection, omitted-optionals, and missing-binary behavior. Synthetic foreign filtering fixtures are not foreign runtime proof.90550da42f9cca8e799583aa60f550e44f32ef70.Frozen candidate tree:
46f4830352519f250c37a7bc73ba7989a35c2706.Publication boundary
This PR alone does not publish. After merge and green prerequisite CI, create one annotated protected
v0.7.1tag on the intended latest-main commit. The existing release workflow builds all seven bindings, validates all eight collected packages, publishes platform packages before the root using npm OIDC, verifies registry artifacts, and promotes the draft GitHub Release. Final verification will compare the actual collected artifacts against registry bytes/signatures/provenance and confirm the published notes match this changelog.