Repository navigation
fix(deps): unbreak nightly ASan, and clear the http-cache-semantics advisory - #2499
Merged
Merged
Conversation
turso_core depends on branches with default-features = false, and that no_std path compiles core::intrinsics::abort() -- an unstable intrinsic rustc removed in 1.101.0-nightly. The AddressSanitizer job is the only one that both tracks floating nightly and builds turso_core, so stable CI stayed green while the commit that passed as nightly run #241 failed as #242 a day later, on an unchanged tree. There is no version to bump to: branches 0.5.0, its latest release, carries the same line, and turso_core requires ^0.4.3 regardless. Cargo cannot add a feature to a transitive dependency, so bashkit declares a direct branches edge under the sqlite feature purely to turn std on for the whole graph. abort() then resolves to std::process::abort(), which is what a std-linking build wants anyway, and the unstable intrinsic leaves the tree entirely. No crate is added. Features unify per version, so a bump of the declaration to 0.5.0 would resolve a second copy and leave turso_core's 0.4.x one with no std -- verified to reproduce the original error verbatim. Dependabot ignores the crate for that reason, following the get-size2 precedent, and test_branches_std_shim.py asserts each invariant that keeps the shim working.
GHSA-ch52-4w7c-c8xp was accepted as an explicit risk because 4.2.0 was both http-cache-semantics' latest release and the advisory's last_affected -- there was no floor to raise. 4.3.0 has since published above it, which is exactly the removal condition that acceptance recorded. astro 7.3.5 requires ^4.2.0, so the floor goes in site/package.json beside the other security overrides and the suppression comes out. `./site: no known vulnerabilities found` now holds with nothing ignored. braces 3.0.3 is still both the latest release and the last affected one, so GHSA-vfj7-8cjw-p6xm stays, now as the sole npm entry.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 96986b1 | Commit Preview URL Branch Preview URL |
Oct 04 2026, 09:29 AM |
chaliy
pushed a commit
that referenced
this pull request
Oct 4, 2026
…te-npm group (#2501) Minor bump of the Cloudflare deploy CLI, a site devDependency. Build-only tooling; nothing ships. Verified the lockfile re-resolution leaves every `pnpm.overrides` security floor byte-identical, including the `http-cache-semantics >=4.3.0` floor added in #2499. CI green, Site Build and the Workers deploy both pass.
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 changed
Two dependency fixes. Nightly is green again, and one of the two accepted npm
advisories is no longer accepted — it has a fix now.
1. Nightly AddressSanitizer compiles again.
turso_coredepends onbrancheswithdefault-features = false, and thatno_stdpath compilescore::intrinsics::abort()— an unstable intrinsic rustc removed in1.101.0-nightly.
bashkitnow declares a directbranchesedge under thesqlitefeature purely to turnstdon for the whole graph, soabort()resolves to
std::process::abort()and the unstable intrinsic leaves the tree.No crate is added; this is the same shape of feature-unification shim as the
existing
get-size2pin.2. GHSA-ch52-4w7c-c8xp is no longer suppressed. When #2498 accepted it,
4.2.0 was both
http-cache-semantics' latest release and the advisory'slast_affected— there was no floor to raise. 4.3.0 has since published aboveit, which is exactly the removal condition that acceptance recorded. astro 7.3.5
requires
^4.2.0, so the floor goes insite/package.jsonbeside the othersecurity overrides and the suppression comes out.
braces3.0.3 is still both the latest release and the last affected one, soGHSA-vfj7-8cjw-p6xm stays, now as the sole npm entry.
Why
Nightly run #242 failed on an unchanged tree — the same SHA that passed as
run #241 a day earlier. Only the ASan job both tracks floating nightly and
builds
turso_core(bashkit-clienablessqliteby default; Miri buildsbashkit --libwithout it), which is why stable CI stayed green and thebreakage surfaced a day late in a job nobody was watching.
There is no version to bump to:
branches0.5.0, its latest release, carriesthe same line, and
turso_corerequires^0.4.3regardless. Cargo cannot add afeature to a transitive dependency, so a direct edge is the fix.
Before / After
Reproduced on the exact failing compiler,
1.101.0-nightly (db8f076d2 2026-10-03)— the same rustc the red run used:Advisory scan, full tree, fresh RustSec database (1290 advisories), all three
ecosystems:
The site lockfile diff is three lines of
http-cache-semanticsplus theoverride; nothing else re-resolved.
pnpm install --frozen-lockfilewith thepinned pnpm 10.11.1 succeeds and the full astro build plus all twelve postbuild
verifiers pass on 4.3.0.
The shim's failure modes are silent, so they are now tested. Cargo unifies
features per version, so bumping the declaration to 0.5.0 resolves a second
copy and leaves
turso_core's 0.4.x one with nostd. That is verified ratherthan assumed — it reproduces the original error verbatim and locks both copies:
scripts/tests/test_branches_std_shim.pyasserts thestd-only feature set,the 0.4 version line, exactly one locked copy, that
sqliteactivates the edge,and that Dependabot ignores the crate. Each of the five was verified to fail
when its invariant is removed, not just to pass as written. Dependabot ignores
branchesfor the same reason it ignoresget-size2, and since 0.5.0 carriesthe same intrinsic there is nothing a bump could gain.
A
sqlite3CREATE / INSERT / SELECT round-trip through the sandbox returns theexpected rows with the shim active, so the feature is exercised at runtime and
not only compiled.
Risk
branches/stdchanges one thing:abort()raisesSIGABRTthroughstd::process::abort()instead of executing a trap. That is the behaviour astd-linking build wants, and it is an abort path either way. No crate added,
no runtime surface enabled.
http-cache-semanticsbump is a minor move in build-only tooling thatnever ships — astro is the site's build step. Proven by a frozen-lockfile
install and a full site build, not just by resolution.
removal condition recorded, and suppressed findings are still printed by name,
so it cannot go quiet.
Checklist
Tests:
just pre-prgreen (fmt, clippy, feature-sliced tests,cargo vet --locked); 147 script tests pass (5 new); full advisory scan exits 0 acrosscargo, npm and PyPI;
cargo +nightly check --workspace --all-targetsclean onthe rustc that broke nightly; site frozen-lockfile install and build green.