Skip to content

chore(deps-dev): update native build and test tooling - #365

Merged
steipete merged 9 commits into
mainfrom
dependabot/npm_and_yarn/development-0d540ccfd2
Sep 16, 2026
Merged

steipete merged 9 commits into
mainfrom
dependabot/npm_and_yarn/development-0d540ccfd2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Update development tooling to @napi-rs/cli 3.9.1, fast-check 4.10.0, and Vite 8.3.0. Runtime dependencies and the package release version remain unchanged.

The frozen lockfile install succeeds and matches the official registry integrity records. The updated CLI builds the native addon, the package builds, and all 70 focused property/fuzz and documentation navigation tests pass. Independent review through P2 is clean. Full checks, coverage, and cross-platform package/native CI passed on the final PR head.

The Windows Node 24 job required one unchanged-source retry after a standalone ACL inspection returned an unverified result; the secure-read refusal check passed in both runs.

@dependabot
dependabot Bot requested a review from a team as a code owner September 14, 2026 17:26
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Sep 14, 2026
@clawsweeper

clawsweeper Bot commented Sep 14, 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: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 14, 2026
@clawsweeper

clawsweeper Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Codex review: blocked before merge. Reviewed September 16, 2026, 9:47 AM ET / 13:47 UTC (Revision 4).

ClawSweeper review

What this changes

The branch updates development dependencies and includes archive hardening, safer temporary filenames, two public path helpers, guest directory-race handling, and expanded validation.

Merge readiness

⛔ Blocked before merge - 4 items remain

Keep open: the tooling updates remain absent from main and v0.12.0. This head also carries substantial work from still-open predecessor PRs, so its landing scope needs coordination.

Priority: P2
Reviewed head: 16c547c6e55ea02115a79c5e0356e9a362228ed1
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) Focused implementations and substantial regression coverage support a normal good patch rating; combined landing scope still needs resolution.
Proof confidence 🌊 off-meta tidepool Not applicable: The ordinary contributor-proof gate does not apply to this bot-authored PR. Build/test claims and installed-package probe source were inspected; no unresolved authority violation within the documented contract established an additional proof gate.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: The ordinary contributor-proof gate does not apply to this bot-authored PR. Build/test claims and installed-package probe source were inspected; no unresolved authority violation within the documented contract established an additional proof gate.
Evidence reviewed 9 items Applicable repository policy: Read the complete root AGENTS.md and CONTRIBUTING.md. No nested AGENTS.md or maintainer-note files were found. Applied filesystem-boundary, public-contract, changelog, and focused-change guidance; the read-only review contract superseded execution of checks and autoreview.
Verified full landing scope: The introduced delta spans 67 files. Raw test-merge parents are the pinned main followed by the exact PR head; comparison with that main parent confirms that runtime changes and new exports would land with the dependency updates.
Still necessary on main and release: Pinned main and v0.12.0 retain @napi-rs/cli 3.9.0 and Vite 8.2.2; the branch selects 3.9.1 and 8.3.0 and resolves fast-check to 4.10.0. Main also lacks the two new advanced path exports.
Findings None None.
Security None None.

How this fits together

fs-safe provides filesystem primitives for applications handling untrusted paths and archives. Its TypeScript and native implementations validate inputs before reading, creating, or publishing files; development tooling builds and tests those implementations.

flowchart TD
  A[Development tooling] --> B[Package and native builds]
  B --> C[Filesystem safety library]
  D[Application paths and archives] --> C
  C --> E[Path and metadata admission]
  E --> F[Guarded filesystem operations]
  E --> G[Rejected ambiguous inputs]
Loading

Decision needed

Question Recommendation
Should the open predecessor PRs land first, or should this PR intentionally integrate the entire runtime and tooling stack? Land predecessors first: Complete the focused predecessor reviews and refresh this branch so its remaining delta matches the tooling description.

Why: Both routes preserve useful work, but the current description only authorizes a tooling-sized review while the actual merge includes public APIs and deliberate archive rejection changes.

Before merge

  • Resolve merge risk (P1) - Merging this head can make existing portable ZIP workflows fail before their filters run when archive metadata falls into the newly rejected categories.
  • Resolve merge risk (P1) - The tooling-only title and body do not describe the runtime and public API changes that the verified merge currently includes; the intended landing order remains unstated.
  • Complete next step (P2) - Confirm predecessor-first landing, or expand this PR's scope description and explicitly accept the archive upgrade behavior with representative existing-consumer validation.
  • Resolve maintainer decision - Resolve the maintainer decision shown above before merge.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Actual landing scope 67 files; 9 commits; 2 public path helpers added The pinned merge includes several focused runtime changes beyond the advertised dependency update.
Production versus test growth production +775/-109; tests +2341/-75 Counts cover TypeScript/Rust runtime and tests, excluding scripts and benchmarks; predecessor descriptions explain the growth, but this PR body does not.

Merge-risk options

Maintainer options:

  1. Resolve compatibility in the focused stack (recommended)
    Land the archive and filesystem predecessors through their focused reviews before refreshing the tooling-only delta.
  2. Own the combined upgrade behavior
    Keep the combined branch only with explicit acceptance of newly rejected ZIP inputs and existing-consumer validation.

Technical review

Best possible solution:

Land the focused predecessor changes with explicit compatibility acceptance, then retain a narrowly scoped tooling update against the resulting main.

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

Not applicable to the dependency update; no introduced blocking defect was established. Runtime changes were inspected through source and regression coverage without executing tests.

Is this the best way to solve the issue?

The individual implementations have focused contracts and coverage, but the combined landing scope does not match this PR's description; predecessor-first landing is the clearest review path.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 2374204cc8d0.

Labels

Label changes:

  • add P2: The actual branch includes bounded filesystem safety and API improvements beyond routine tooling maintenance.
  • add merge-risk: 🚨 compatibility: Portable archive consumers can encounter new pre-filter rejection of metadata previously accepted by the decoder.
  • remove P3: Current review triage priority is P2, so this older priority label is no longer current.

Label justifications:

  • P2: The actual branch includes bounded filesystem safety and API improvements beyond routine tooling maintenance.
  • merge-risk: 🚨 compatibility: Portable archive consumers can encounter new pre-filter rejection of metadata previously accepted by the decoder.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The ordinary contributor-proof gate does not apply to this bot-authored PR. Build/test claims and installed-package probe source were inspected; no unresolved authority violation within the documented contract established an additional proof gate.

Evidence

What I checked:

  • Applicable repository policy: Read the complete root AGENTS.md and CONTRIBUTING.md. No nested AGENTS.md or maintainer-note files were found. Applied filesystem-boundary, public-contract, changelog, and focused-change guidance; the read-only review contract superseded execution of checks and autoreview. (AGENTS.md:1, 16c547c6e55e)
  • Verified full landing scope: The introduced delta spans 67 files. Raw test-merge parents are the pinned main followed by the exact PR head; comparison with that main parent confirms that runtime changes and new exports would land with the dependency updates. (f072b29b8a09)
  • Still necessary on main and release: Pinned main and v0.12.0 retain @napi-rs/cli 3.9.0 and Vite 8.2.2; the branch selects 3.9.1 and 8.3.0 and resolves fast-check to 4.10.0. Main also lacks the two new advanced path exports. (package.json:181, 914cd7b41388)
  • Open predecessor work: GitHub confirms fix(security): bind ZIP entry names to kinds #421, fix(security): stop compressed reads after cancellation #415, feat(path): add bounded suffix alias probes #414, and fix(guest): tolerate concurrent parent directory creation #396 remain open. Their heads match commits in this branch. Their bodies explain ZIP hardening, cancellation, suffix probing, and guest admission respectively; none establishes a merged replacement for this tooling update. (16c547c6e55e)
  • Intentional archive compatibility change: Portable ZIP admission now rejects decoder-kind disagreement before filters or member reads. Documentation explicitly identifies UNIX-only directory attributes, backslash-only directories, and unsupported creator/symlink metadata as rejected cases; focused tests cover these outcomes. (src/archive-zip-loader.ts:55, 16c547c6e55e)
  • Filesystem authority checks: Guest parent races still pass through descriptor-relative no-follow directory admission. Suffix probes recheck exact directory identities and preserve observed replacements and nonempty directories; their documented contract requires a trusted writable parent and explicitly excludes atomic confinement guarantees. (docs/path-suffix-aliases.md:139, 16c547c6e55e)

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Resolve predecessor-first landing or explicitly document and validate the combined upgrade behavior.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (3 earlier review cycles)
  • reviewed 2026-09-14T17:29:20.568Z sha f6e82c8 :: needs maintainer review before merge. :: none
  • reviewed 2026-09-15T12:17:59.414Z sha 853f487 :: needs maintainer review before merge. :: none
  • reviewed 2026-09-15T17:32:00.576Z sha a982250 :: needs maintainer review before merge. :: none

@dependabot dependabot Bot changed the title chore(deps-dev): bump the development group with 3 updates chore(deps-dev): bump the development group across 1 directory with 3 updates Sep 15, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/development-0d540ccfd2 branch 2 times, most recently from 853f487 to a982250 Compare September 15, 2026 17:26
steipete and others added 9 commits September 16, 2026 05:47
Bind ZIP physical entry names and kinds to decoder metadata before callbacks or member selection, rejecting ambiguous interpretations consistently.
Stop zstd and bzip2 compressed-input refills after cancellation while retaining decoded-output and complete archive validation.
Sanitize fallback filenames and validate completed sibling callback components before producers run, retaining bounded names and Windows device-name rejection.
Add resolvePathPrefixSync for physical traversal through existing prefixes with a raw missing suffix, preserving dangling aliases and propagating ambiguous resolution failures.
Add bounded missing-suffix alias probes with fixed path, depth, creation, and observation budgets plus identity-checked conservative cleanup.
Tolerate concurrent guest parent-directory creation only after descriptor-relative no-follow directory admission; file and symlink competitors remain rejected. Thanks @vincentkoc.

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Update development dependencies to @napi-rs/cli 3.9.1, fast-check 4.10.0, and Vite 8.3.0 with verified registry integrity.
@steipete
steipete force-pushed the dependabot/npm_and_yarn/development-0d540ccfd2 branch from a982250 to 16c547c Compare September 16, 2026 13:42
@steipete steipete changed the title chore(deps-dev): bump the development group across 1 directory with 3 updates chore(deps-dev): update native build and test tooling Sep 16, 2026
@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. and removed P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. labels Sep 16, 2026
@steipete
steipete merged commit 16c547c into main Sep 16, 2026
59 of 61 checks passed
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/development-0d540ccfd2 branch September 16, 2026 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. P2 Normal priority bug or improvement with limited blast radius. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. 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