Repository navigation
fix(deps): patch esbuild and PyO3 security advisories - #2069
Merged
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 89b3849 | Commit Preview URL Branch Preview URL |
Jun 15 2026, 04:08 PM |
There was a problem hiding this comment.
Pull request overview
This pull request addresses Dependabot security alerts by forcing esbuild to resolve to a patched version across the JavaScript subprojects and by bumping the PyO3 dependency used in the random-fs Rust test fixture, including the required API migration for PyCapsule.
Changes:
- Add
pnpm.overridesto pinesbuildto>=0.28.1insite,examples/browser, andcrates/bashkit-js, and regenerate the associatedpnpm-lock.yamlfiles. - Bump the
random-fsfixture’spyo3dependency to0.29.0. - Migrate PyO3 capsule creation to
PyCapsule::new_with_value(...)to match the PyO3 0.29 API.
Reviewed changes
Copilot reviewed 5 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| site/package.json | Adds pnpm.overrides to force patched esbuild. |
| site/pnpm-lock.yaml | Regenerated lockfile reflecting esbuild@0.28.1 resolution + override metadata. |
| examples/browser/package.json | Adds pnpm.overrides to force patched esbuild. |
| examples/browser/pnpm-lock.yaml | Regenerated lockfile reflecting esbuild@0.28.1 resolution + override metadata. |
| crates/bashkit-js/package.json | Adds pnpm.overrides for esbuild (note: file also contains a top-level overrides block). |
| crates/bashkit-js/pnpm-lock.yaml | Regenerated lockfile reflecting esbuild@0.28.1 resolution + override metadata. |
| crates/bashkit-python/test-fixtures/random-fs/Cargo.toml | Bumps pyo3 to 0.29.0. |
| crates/bashkit-python/test-fixtures/random-fs/src/lib.rs | Updates capsule creation to the PyO3 0.29 API (new_with_value). |
Files not reviewed (3)
- crates/bashkit-js/pnpm-lock.yaml: Generated file
- examples/browser/pnpm-lock.yaml: Generated file
- site/pnpm-lock.yaml: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
118
to
+121
| "pnpm": { | ||
| "overrides": { | ||
| "esbuild": ">=0.28.1" | ||
| }, |
chaliy
added a commit
that referenced
this pull request
Jun 15, 2026
) Corrected subset of the Dependabot group bump in #2067. That PR's grouped update collapsed two semantically-named action refs into generic release SHAs, which broke CI. This PR keeps the safe updates and drops the two regressions. ## What **Applied (safe):** - `astral-sh/setup-uv` v7 → v8.2.0 - `codecov/codecov-action` v6 (`e79a696` → `fb8b358`) - `taiki-e/install-action` v2 (`4bc351f` → `7a79fe8`) for the generic `with: tool:` installs (cargo-vet, coreutils, cargo-llvm-cov) **Dropped from #2067 (break CI):** - `dtolnay/rust-toolchain` `@nightly` (`5b84223` → `e081816`) — broke **Build wheel (Pyodide/Emscripten)**: `wasm32-unknown-emscripten` std was no longer installed for the pinned nightly (`error[E0463]: can't find crate for std`). - `taiki-e/install-action` `@cargo-tarpaulin` tag (`3d6bdc4` → `7a79fe8`) — the tool-specific tag was collapsed into a generic release SHA, so the step no longer installed tarpaulin. **Generate Rust Coverage** failed with `error: no such command: tarpaulin`. ## Why #2067's CI was red on those two jobs (plus the `Python Check` aggregator). PR #2069, which had no action bumps, passed all of them — confirming both failures were introduced by the grouped bump, not pre-existing. (#2067 also hit a transient rustup cache flake on `Build wheel`, unrelated to the bumps.) ## Verification YAML validated for all touched workflows. Behavior is validated by CI itself running green on this PR. Supersedes #2067. --- _Generated by [Claude Code](https://claude.ai/code/session_01TyvhVVRep8MD3yECMaAuUB)_
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Resolves open Dependabot security alerts by bumping vulnerable dependencies.
esbuild →
>=0.28.1(all JS lockfiles) — patches:GHSA-gv7w-rqvm-qjhr(High) — missing binary integrity verification in Deno module (RCE viaNPM_CONFIG_REGISTRY)GHSA-g7r4-m6w7-qqqr(Low) — arbitrary file read via the dev server on WindowsPyO3 →
0.29.0(random-fs test fixture) — patches:GHSA-36hh-v3qg-5jq4(High) — out-of-bounds read innth/nth_backforPyList/PyTupleGHSA-chgr-c6px-7xpp(Moderate) — missingSyncbound onPyCFunction::new_closureWhy
These advisories were flagged by Dependabot on the default branch (9 open alerts; several are the same advisory detected across multiple manifests).
How
pnpm.overridesinsite,examples/browser, andcrates/bashkit-js, and the threepnpm-lock.yamlfiles were regenerated. (Their pre-existing top-leveloverridesfield is ignored by pnpm — onlypnpm.overridesis honored.)random-fsfixture is an isolated cargo workspace (nomonty/jiter), so itspyo3dep bumps cleanly to0.29.0. Migrated the one 0.29 API change:PyCapsule::new→PyCapsule::new_with_value(name arg is now&CStr).Verified
pnpm install --frozen-lockfilepasses in all three JS packages (esbuild resolves to0.28.1)cargo fmt --checkandcargo clippypassDeferred (not in this PR)
The two main-workspace PyO3 alerts (on the root
Cargo.lock) are blocked upstream: pyo3 there is shared withjiter 0.15.0(pulled viamonty), which hard-pinspyo3 ^0.28.2. Becausepyo3-ffiuseslinks = "python", two pyo3 versions can't coexist, and no released ormain-branchjiter/montysupports pyo3 0.29 yet. These will be a one-line bump once upstream ships a 0.29-compatible release.Generated by Claude Code