Skip to content

fix(ci): bypass pnpm -- separator that breaks napi build flag forwarding - #1798

Merged
chaliy merged 1 commit into
mainfrom
fix/publish-js-pnpm-arg-forwarding
May 27, 2026
Merged

chaliy merged 1 commit into
mainfrom
fix/publish-js-pnpm-arg-forwarding

Conversation

@chaliy

@chaliy chaliy commented May 27, 2026

Copy link
Copy Markdown
Contributor

Summary

The v0.7.2 npm publish failed because pnpm run build:napi -- ... inserts a -- separator that napi-rs CLI treats as "forward everything after to cargo." So --use-napi-cross (a napi flag) got routed to cargo and crashed with error: unexpected argument '--use-napi-cross' found. (With npm there was no inserted separator, so the flag stayed with napi — the pnpm migration in #1766 silently changed the behaviour, but it wasn't exercised until the v0.7.2 release run.)

Fix: replace pnpm run build:napi -- ... with pnpm exec napi build ... so napi is invoked directly with no separator inserted.

Test plan

  • CI green on this PR
  • After merge, manually dispatch publish-js.yml on main — npm should receive @everruns/bashkit@0.7.2 (package.json on main is already at 0.7.2 from the v0.7.2 release).

Generated by Claude Code

…rding

`pnpm run build:napi -- --target X --use-napi-cross` runs
`napi build --platform --release -- --target X --use-napi-cross`. The
`--` separator is treated by napi-rs CLI as "forward everything after
to cargo", so `--use-napi-cross` (a napi flag, not a cargo flag) got
routed to cargo and crashed the v0.7.2 npm build with
`error: unexpected argument '--use-napi-cross' found`. (With npm, the
`--` was not inserted, so the flag stayed with napi.)

Replace `pnpm run build:napi -- ...` with `pnpm exec napi build ...`
which invokes napi directly, no separator inserted.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
bashkit 7037fd2 Commit Preview URL

Branch Preview URL
May 27 2026, 01:38 AM

@chaliy
chaliy merged commit 93e0380 into main May 27, 2026
16 checks passed
@chaliy
chaliy deleted the fix/publish-js-pnpm-arg-forwarding branch May 27, 2026 01:48
chaliy added a commit that referenced this pull request May 28, 2026
## Release v0.8.0

Minor release. New feature: VFS-backed Python `open()` support.

### Highlights

- **Python `open()` support** — VFS-backed `open()` / `Path.open()`
read, write, and append now work in the embedded Python builtin, so
LLM-generated `with open("/tmp/...")` scripts run instead of failing.
Host filesystem and network stay unavailable to Python
([#1800](#1800)).
- Further `rg` parity and hardening fixes (default type globs, JSON
context fanout cap, root-arg allocation) plus interpreter fixes for
variable attribute/nameref persistence and persistent file descriptor
validation.

### What's Changed

* ci: reclaim runner disk before disk-hungry scheduled jobs
([#1807](#1807)) by @chaliy
* fix(rg): align r and tf default type globs with ripgrep
([#1805](#1805)) by @chaliy
* fix(rg): cap JSON context event fanout
([#1804](#1804)) by @chaliy
* fix(interpreter): persist var attrs and namerefs across shell state
restore ([#1803](#1803)) by
@chaliy
* fix(interpreter): reject negative persistent file descriptors
([#1802](#1802)) by @chaliy
* fix(rg): avoid root arg string cloning across candidates
([#1801](#1801)) by @chaliy
* feat(python): support vfs-backed open
([#1800](#1800)) by @chaliy
* feat(site): add bashkit logo assets
([#1799](#1799)) by @chaliy
* fix(ci): bypass pnpm `--` separator that breaks napi build flag
forwarding ([#1798](#1798)) by
@chaliy
* fix(site): add homepage canonical link header
([#1797](#1797)) by @chaliy

**Full Changelog**:
v0.7.2...v0.8.0

### Version bump

`0.7.2` → `0.8.0` across `Cargo.toml`, `crates/bashkit-cli/Cargo.toml`,
`crates/bashkit-js/package.json`, and `Cargo.lock`.

### Publish-readiness report

- ✅ `cargo fmt --check` — clean
- ✅ `cargo clippy --workspace --all-targets --features
http_client,ssh,sqlite -- -D warnings` — clean
- ✅ `cargo test --workspace --lib --bins --tests --features
http_client,ssh,sqlite` — green (with pinned ripgrep 15.1.0, matching
CI's `RG_VERSION`)
- ✅ `cargo test --features python -p bashkit` — green
- ✅ `cargo publish --dry-run -p bashkit` — succeeds after replicating
the workflow's monty/python strip step (git-only `monty` dep is stripped
before publish, as in `publish.yml`)
- ✅ `bashkit-cli` packages cleanly; its dry-run's only remaining step is
resolving `bashkit ^0.8.0` from crates.io, which the workflow satisfies
by publishing `bashkit` first (30s index wait) then `bashkit-cli`
- ✅ Version sync: all manifests read `0.8.0`; crates.io latest is
`0.7.2`, so `0.8.0` is a strict increment on every registry (npm/PyPI
versions are derived from the same pipeline)

Notes: in this sandbox the `rg` differential case and
`ssh_supabase_connects` test initially failed only because of
environment (preinstalled ripgrep 14.1.0 vs CI's pinned 15.1.0, and no
egress to the external `supabase.sh` SSH host); both are environmental,
not code regressions.


---
_Generated by [Claude
Code](https://claude.ai/code/session_01URKhGRWFuMgjHQR1YhyNHN)_
chaliy added a commit that referenced this pull request May 30, 2026
…rding (#1798)

## Summary

The v0.7.2 npm publish failed because `pnpm run build:napi -- ...`
inserts a `--` separator that napi-rs CLI treats as "forward everything
after to cargo." So `--use-napi-cross` (a napi flag) got routed to cargo
and crashed with `error: unexpected argument '--use-napi-cross' found`.
(With npm there was no inserted separator, so the flag stayed with napi
— the pnpm migration in #1766 silently changed the behaviour, but it
wasn't exercised until the v0.7.2 release run.)

Fix: replace `pnpm run build:napi -- ...` with `pnpm exec napi build
...` so napi is invoked directly with no separator inserted.

## Test plan

- [ ] CI green on this PR
- [ ] After merge, manually dispatch `publish-js.yml` on `main` — npm
should receive `@everruns/bashkit@0.7.2` (package.json on main is
already at 0.7.2 from the v0.7.2 release).


---
_Generated by [Claude
Code](https://claude.ai/code/session_019kNtzz8Ere2zoJnThMdbUY)_
chaliy added a commit that referenced this pull request May 30, 2026
## Release v0.8.0

Minor release. New feature: VFS-backed Python `open()` support.

### Highlights

- **Python `open()` support** — VFS-backed `open()` / `Path.open()`
read, write, and append now work in the embedded Python builtin, so
LLM-generated `with open("/tmp/...")` scripts run instead of failing.
Host filesystem and network stay unavailable to Python
([#1800](#1800)).
- Further `rg` parity and hardening fixes (default type globs, JSON
context fanout cap, root-arg allocation) plus interpreter fixes for
variable attribute/nameref persistence and persistent file descriptor
validation.

### What's Changed

* ci: reclaim runner disk before disk-hungry scheduled jobs
([#1807](#1807)) by @chaliy
* fix(rg): align r and tf default type globs with ripgrep
([#1805](#1805)) by @chaliy
* fix(rg): cap JSON context event fanout
([#1804](#1804)) by @chaliy
* fix(interpreter): persist var attrs and namerefs across shell state
restore ([#1803](#1803)) by
@chaliy
* fix(interpreter): reject negative persistent file descriptors
([#1802](#1802)) by @chaliy
* fix(rg): avoid root arg string cloning across candidates
([#1801](#1801)) by @chaliy
* feat(python): support vfs-backed open
([#1800](#1800)) by @chaliy
* feat(site): add bashkit logo assets
([#1799](#1799)) by @chaliy
* fix(ci): bypass pnpm `--` separator that breaks napi build flag
forwarding ([#1798](#1798)) by
@chaliy
* fix(site): add homepage canonical link header
([#1797](#1797)) by @chaliy

**Full Changelog**:
v0.7.2...v0.8.0

### Version bump

`0.7.2` → `0.8.0` across `Cargo.toml`, `crates/bashkit-cli/Cargo.toml`,
`crates/bashkit-js/package.json`, and `Cargo.lock`.

### Publish-readiness report

- ✅ `cargo fmt --check` — clean
- ✅ `cargo clippy --workspace --all-targets --features
http_client,ssh,sqlite -- -D warnings` — clean
- ✅ `cargo test --workspace --lib --bins --tests --features
http_client,ssh,sqlite` — green (with pinned ripgrep 15.1.0, matching
CI's `RG_VERSION`)
- ✅ `cargo test --features python -p bashkit` — green
- ✅ `cargo publish --dry-run -p bashkit` — succeeds after replicating
the workflow's monty/python strip step (git-only `monty` dep is stripped
before publish, as in `publish.yml`)
- ✅ `bashkit-cli` packages cleanly; its dry-run's only remaining step is
resolving `bashkit ^0.8.0` from crates.io, which the workflow satisfies
by publishing `bashkit` first (30s index wait) then `bashkit-cli`
- ✅ Version sync: all manifests read `0.8.0`; crates.io latest is
`0.7.2`, so `0.8.0` is a strict increment on every registry (npm/PyPI
versions are derived from the same pipeline)

Notes: in this sandbox the `rg` differential case and
`ssh_supabase_connects` test initially failed only because of
environment (preinstalled ripgrep 14.1.0 vs CI's pinned 15.1.0, and no
egress to the external `supabase.sh` SSH host); both are environmental,
not code regressions.


---
_Generated by [Claude
Code](https://claude.ai/code/session_01URKhGRWFuMgjHQR1YhyNHN)_
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