Skip to content

chore(deps): update all dependencies - #883

Merged
steipete merged 4 commits into
mainfrom
chore/update-deps-2-20261009
Oct 9, 2026
Merged

steipete merged 4 commits into
mainfrom
chore/update-deps-2-20261009

Conversation

@steipete

@steipete steipete commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Refresh npm, Cargo, and GitHub Actions dependencies from 0.25.0 (50fd5171). ZIP 9 requires an adapter that keeps the existing raw mode/kind admission contract and handles its fallible name API. No dependency bump is deferred.

Complete dependency inventory

Versions without a change were checked against the current official registry/release tags on 2026-10-09. Exact npm pins and caret ranges retain their style. native/package.json has no independent dependencies. Cargo requirements and generated lockfiles are updated together.

Package From To
npm: @emnapi/runtime 2.0.0-alpha.6 2.0.0-alpha.6
npm: @napi-rs/cli 3.10.8 3.10.8
npm: @types/node ^26.6.4 ^26.6.5
npm: @vitest/coverage-v8 5.0.3 5.0.3
npm: fast-check ^4.10.2 ^4.10.2
npm: istanbul-lib-coverage 3.2.2 3.2.2
npm: istanbul-lib-report 3.0.1 3.0.1
npm: istanbul-reports 3.2.0 3.2.0
npm: sigstore 5.0.0 5.0.0
npm: tar 7.5.22 7.5.22
npm: typescript ^7.0.2 ^7.0.2
npm: vite 8.3.3 8.3.4
npm: vitest ^5.0.3 ^5.0.3
npm: jszip ^3.10.2 ^3.10.2
npm: pnpm 12.10.1 12.10.1
cargo: bzip2 0.6.1 0.6.1
cargo: flate2 1.1.10 1.1.10
cargo: napi 3.14.2 3.14.2
cargo: napi-derive 3.6.12 3.6.12
cargo: sha2 0.11.0 0.11.0
cargo: unicode-normalization 0.1.25 0.1.25
cargo: zip 8.6.0 9.0.0
cargo: zstd 0.14.0 0.14.1
cargo: napi-build 2.6.0 2.6.0
cargo: tar 0.4.46 0.4.46
cargo: libc 0.2.190 0.2.190
cargo: rustix 1.1.5 1.1.5
cargo: windows-sys 0.61.2 0.61.2
cargo: libbz2-rs-sys 0.2.5 0.2.5
cargo: zstd-sys 2.1.0 2.1.1+zstd.1.5.7
Cargo transitive: zstd-safe 8.0.0 8.1.0
CI Node 22 22.23.3 22.23.3
CI Node 24 24.21.0 24.21.0
Action: actions/checkout v7.0.1 v7.0.1
Action: actions/upload-artifact v7.0.2 v7.0.2
Action: actions/download-artifact v8.0.2 v8.0.2
Action: mlugg/setup-zig v2.2.1 v2.2.1
Action: pnpm/action-setup v6.1.0 v6.1.0
Action: actions/setup-node v7.0.0 v7.1.0
Action: actions/create-github-app-token v3.2.0 v3.2.0
Action: actions/configure-pages v6.0.0 v6.0.0
Action: actions/upload-pages-artifact v5.0.0 v5.0.0
Action: actions/deploy-pages v5.0.1 v5.0.1
Action: github/codeql-action v4.38.2 v4.38.3
Action: useblacksmith/begin-testbox v2 v2
Action: useblacksmith/run-testbox post-v2: idle timeout and hydration failure reporting post-v2: idle timeout and hydration failure reporting
Action: rhysd/actionlint v1.7.12 v1.7.12
Action: actions/github-script v9.0.0 v9.0.0
Action: oven-sh/setup-bun v2.2.0 v2.2.0
Action: actions/cache v6.1.0 v6.1.0

Compatibility and supply-chain review

  • Read the ZIP 9.0.0 changelog, including the 9.0 prereleases since 8.6.0. Adapted name() to propagate errors and retain the decoded name only after the existing manifest-byte check. ZIP 9 sanitizes unix_mode() and interprets DOS creators differently; preserve raw high-word mode/type attributes so TypeScript admission still compares exactly, including special bits, non-UNIX symlinks, directories, and unsupported link-like types. Publication policy still owns permission stripping and confinement.
  • Added six direct native cases for ASCII/UTF-8/CP437 names and raw attributes from DOS, UNIX, and NTFS creators. All 223 focused ZIP metadata, kind, native-buffer, and publication-mode cases pass. The existing tests caught the upstream mode change before landing.
  • zstd 0.14.1 / zstd-safe 8.1.0 / zstd-sys 2.1.1 are published by the continuing maintainer gyscos; inspected upstream commits and packaged VCS references. Bundled zstd C remains 1.5.7, and enabled Cargo features are unchanged. ZIP 9 uses the same release maintainer as 8.6.0, is not yanked, and retains Rust 1.88 MSRV. No new dependency has a registry deprecation/yank or known audit finding.
  • @types/node retains the types publisher; Vite retains its maintainers, GitHub Actions publishing and provenance metadata. Both are younger than the 48-hour delay: narrowly allow only the reviewed exact versions in minimumReleaseAgeExclude, keeping the global policy. No install lifecycle hook was added.
  • @emnapi/runtime remains at the newest 2.0 prerelease, 2.0.0-alpha.6; stable latest is still 1.11.3. No downgrade. The N-API CLI/build tooling is already latest. Node 22/24 exact pins and pnpm 12.10.1 are current; floating Node 26 remains within the existing matrix and engine policy.
  • Resolved all action pins from official tags through gh api, peeling annotated tags. actions/setup-node@v7.1.0 = 949feb2413d6458794dcd2491c4babbbce0c15c1; github/codeql-action@v4.38.3 = 24c54180a607b1449ed407dd24f251e4e9147c8d. Reviewed both releases. Includes the shared composite action missed by chore(deps): bump actions/setup-node from 7.0.0 to 7.1.0 in the actions group #882.
  • No newer Blacksmith release exists. Preserve run-testbox@3f60ff9ceb2c10c3feefa87dc0c6490cffae059d, two fixes beyond v2; reverting to the tag would lose idle-timeout/hydration diagnostics. begin-testbox already matches v2.
  • No changelog entry: this preserves existing user behavior. Upstream ZIP security fixes concern extraction/overlap APIs or codecs fs-safe does not enable/use; do not claim them as an fs-safe vulnerability fix.

Audits and validation

  • pnpm audit: 0 vulnerabilities.
  • cargo audit --deny warnings: 0 vulnerabilities, 0 warnings, current RustSec database (2026-10-09).
  • Passed: pnpm build with actual wasm32 compilation and import/memory validation, pnpm native:build, cargo test --workspace --locked (50 archive-core + 145 native tests), cargo clippy --workspace --locked -- -D warnings, pnpm pack:check, git diff --check.
  • Full Codex autoreview through P2: scoped-clean, including the ZIP compatibility adaptation.
  • pnpm check: lint, boundary lint, build, WASM allocator prerequisites, and docs passed; full suite: 17,462 passed, 791 skipped, 7 macOS event-watch failures. All seven reproduce on untouched 50fd5171 with original dependencies: six in the baseline watch suite, the coalescing timeout in a separate targeted baseline run. No archive failure remains; packaging also passes separately. Initial local Homebrew Rust lacked the WASM target; selecting installed rustup stable fixed the build without substituting published WASM. One focused run had transient SIGKILL workers during local build/test activity; a serial retry passed all 223 tests.
  • Exact head 2289dc8f6b8b9d1a806562d684757fea99c3fd95: 46 checks passed, 6 expected skips, no failed or pending checks. CI includes all configured Node 22/24/26 OS lanes, native Linux GNU/musl and macOS/Windows lanes, package smoke, Clippy/audit, and both GNU glibc 2.28 build/load checks. Coverage, CodeQL, mutation proof, benchmarks, Windows hash proof, and ancestor scopes all passed. No proof/CI rerun or admin bypass was needed; CodeQL ran on the ready-for-review event after its expected draft skip. The cancelled ClawSweeper dispatch was replaced by its completed ready-for-review dispatch.

Supersedes #882. No release, tag, or publication.

@clawsweeper

clawsweeper Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

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

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Oct 9, 2026
@clawsweeper

clawsweeper Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

What this changes

Refresh development tools, archive libraries, and pinned GitHub Actions while adapting the native ZIP reader to preserve existing archive metadata checks.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) A useful, coherent refresh with no actionable findings, supported by focused native coverage and limited direct end-to-end evidence.
Proof confidence 🦐 gold shrimp (3/6) Verified repository-admin authorship exempts this PR from the external-contributor proof gate. Reported native-binding cases exercise the changed ZIP metadata adapter, but no installed-package trace demonstrates those cases end to end. No stored-data contract or material authority transfer changes.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Maintenance · Worth it: Yes
Reason: The refresh follows established maintainer maintenance direction. Its small ZIP adapter preserves existing behavior rather than expanding the public contract.

Merge readiness

✅ Ready for maintainer review

This PR remains useful and is maintainer-owned; current main does not contain its updates. No actionable patch defect or unresolved security concern was found.

Priority: P3
Reviewed head: 2289dc8f6b8b9d1a806562d684757fea99c3fd95

Before merge

None.

Findings

None.

Tests

  • Missing end-to-end proof: No supplied installed-package trace specifically exercises raw ZIP creator attributes and decoded names through extraction and bounded member reads; reported focused native runs provide harness coverage.
Agent review details

How this fits together

fs-safe validates untrusted archive paths and metadata before reading members or publishing files inside a guarded filesystem root. The native ZIP decoder supplies metadata that must agree with shared admission checks.

flowchart TD
  A[Archive bytes] --> B[Physical metadata admission]
  A --> C[ZIP decoder and compatibility adapter]
  B --> D{Metadata agrees}
  C --> D
  D -->|No| E[Reject archive]
  D -->|Yes| F[Bounded member reads]
  D -->|Yes| G[Guarded file publication]
Loading

Technical review

Best possible solution:

Keep the refresh and narrow ZIP compatibility adapter together under the existing admission and publication owners.

Do we have a high-confidence way to reproduce the issue?

Not applicable: this PR refreshes dependencies rather than reporting broken released behavior; upstream source verifies the ZIP API differences requiring adaptation.

Is this the best way to solve the issue?

Yes: adapting the existing shared ZIP decoder preserves its established metadata contract without introducing a competing implementation or public option.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 50fd5171eecc.

Provenance checked

Testing

Proof path: in-process harness.

Security

None.

Evidence

What I checked:

  • Repository policy applied: Read the complete root AGENTS.md; no nested AGENTS.md or maintainer-note files were found. Applied its archive-boundary, compatibility, and maintenance-only changelog guidance. No builds, tests, or bundled autoreview helpers were executed. (AGENTS.md:28, 2289dc8f6b8b)
  • Maintainer identity verified: The collaborator-permission endpoint confirms steipete has repository admin access, resolving the inconsistent MEMBER and CONTRIBUTOR metadata and establishing the maintainer proof exemption.
  • Still necessary on main: Live main remains at the supplied v0.25.0 revision. Its native dependencies retain ZIP 8.6.0 and zstd 0.14.0; the introduced updates and compatibility adapter are absent. (native/Cargo.toml:21, 50fd5171eecc)
  • ZIP admission remains consistent: The adapter preserves nonzero raw high-word attributes and uses the same symlink, directory, and unsupported link-like classification as physical admission. Manifest association, bounded reads, and guarded publication remain in their existing owners; no persisted format or material authority transfer changes. (native/src/archive.rs:213, 2289dc8f6b8b)
  • ZIP 8 behavior verified: The target directly imports and executes the ZIP crate. ZIP 8 returns nonzero raw high-word attributes before interpreting the creator system, explaining the compatibility behavior retained by this PR. (src/types.rs:320, 771dfc534d26)
  • ZIP 9 adaptation justified: ZIP 9 clears special permission bits and interprets DOS creators separately. Its name API is fallible. The target adapter restores raw metadata for admission and propagates name-decoding errors. (src/format/functions.rs:31, 2b1c4244a6f4)

Likely related people:

  • Peter Steinberger: Raw commit 0549925 adds native/src/archive.rs:224 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 054992502e38; files: native/src/archive.rs)
  • Vincent Koc: Raw commit 8c2ca91 adds pnpm-workspace.yaml:6 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: medium; commits: 8c2ca91ac914; files: pnpm-workspace.yaml)

Review metrics

Metric Value Why it matters
Production and test growth Production +13/-5 lines; tests +29/-0 lines The small production increase is justified by preserving the archive contract across the ZIP major-version update.
Action references 13 immutable pins updated across 11 files The refresh includes shared setup and specialized workflows while preserving their configuration.

Labels

Label changes:

No label changes.

Label justifications:

  • P3: Routine dependency maintenance preserves established behavior and addresses no demonstrated urgent user regression.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only; repair and merge need explicit maintainer commands such as @clawsweeper autofix or @clawsweeper automerge.

History

Review history (2 earlier review cycles)
  • reviewed 2026-10-09T21:44:17.279Z sha ee6245c :: needs maintainer review before merge. :: none
  • reviewed 2026-10-09T22:00:36.143Z sha 2289dc8 :: needs maintainer review before merge. :: none

Reviewed October 9, 2026, 6:06 PM ET / 22:06 UTC (Revision 3).

@steipete
steipete marked this pull request as ready for review October 9, 2026 21:55
@steipete
steipete requested a review from a team as a code owner October 9, 2026 21:55
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Oct 9, 2026
@steipete
steipete merged commit 54531f8 into main Oct 9, 2026
57 of 58 checks passed
@steipete
steipete deleted the chore/update-deps-2-20261009 branch October 9, 2026 22:19
@steipete

steipete commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Merged as 54531f878f16a1c2d2204a2d3b2372319685d14e after the pinned head 2289dc8f6b8b9d1a806562d684757fea99c3fd95 passed 46 checks (6 expected skips). No admin bypass or CI proof rerun was needed.

Validated pnpm build (actual wasm32 build), pnpm native:build, cargo test --workspace --locked, cargo clippy --workspace --locked -- -D warnings, pnpm pack:check, and git diff --check. Both dependency audits were clean, and Codex autoreview found no actionable P0–P2 findings. The ZIP 9 adapter passed 223 focused metadata/kind/publication/native-buffer tests. Full local pnpm check reached 17,462 passing tests; seven macOS event-watch timing failures also reproduced on unchanged main with original dependencies. Hosted macOS checks passed.

Exact-head CI, coverage, CodeQL, mutation, benchmarks, Windows hash proof, and ancestor scopes all passed. Both Linux GNU architectures built and loaded successfully at the glibc 2.28 floor.

The PR body contains the complete dependency inventory, provenance checks, and ZIP compatibility details. No bumps were deferred; no release, tag, or publication was performed. Supersedes #882.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant