Skip to content

chore(release): prepare 0.7.1 - #192

Merged
steipete merged 1 commit into
mainfrom
chore/release-0.7.1
Sep 1, 2026
Merged

chore(release): prepare 0.7.1#192
steipete merged 1 commit into
mainfrom
chore/release-0.7.1

Conversation

@steipete

@steipete steipete commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

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

  • All versions and exact pins agree; both regenerated lockfiles have no unrelated dependency movement.
  • Generated release notes: 3,656 bytes; SHA-256 3d835ee391cb0baa90e64181bfe0747a7f85019b45b0e8a691940a15a9658705.
  • Independent Codex autoreview: scoped-clean at the configured P0 threshold; no accepted/actionable findings.
  • Local frozen install, fresh macOS arm64 native build, file-size/boundary lint, TypeScript build, and documentation examples passed.
  • The local full suite stalled in I/O before reporting test-file results and was stopped. It is not counted as passed. No test timeout was increased.
  • The identical frozen candidate passed isolated AWS Linux validation: 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, and pnpm package:smoke.
  • Public cross-process contention passed 400 acquisitions per mode (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.
  • Exact-head CI, coverage, CodeQL, and benchmarks passed for 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.1 tag 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.

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.
@steipete
steipete requested a review from a team as a code owner September 1, 2026 16:54
@clawsweeper

clawsweeper Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

@clawsweeper

clawsweeper Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

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.

@steipete
steipete merged commit 3b425f1 into main Sep 1, 2026
25 checks passed
@steipete

steipete commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

0.7.1 released and independently verified

Published fs-safe 0.7.1 and the npm root package from protected annotated tag v0.7.1, pointing to 754f920d99af98b75c6b35c9e3f0bf37a1649dc9 (latest main at tagging). All twelve jobs in the release workflow passed, including seven native builds, eight-package assembly, trusted publication, verification, and draft promotion.

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 168a0a07f46b6b060e6ce1ab3fd44e1b9441a1c7e712189efd353cb74b109db8). The packed changelog and updated lock documentation match the tag, and the deployed lock docs contain the new policy. All historical notes are unchanged. Main is clean and synchronized, task-owned validation leases are released, and no next Unreleased heading was added.

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.

1 participant