Repository navigation
chore(deps): consolidate 12 open PRs, fix rustls/aws-sdk-s3/rust_decimal advisories - #154
Merged
Merged
Conversation
…imal advisories Consolidates 12 of the 14 open Dependabot PRs into a single branch, applied as latest-compatible-within-major, plus security-driven bumps for three Rust advisories found during the audit pass. Superseded PRs: #153 js-yaml, #152/#137-chain taiki-e/install-action, #149 vitest, #147 react-dropzone, #146 @vitejs/plugin-react, #145 zustand, #144 @types/react-dom, #143 quick-xml, #142 http, #141 rand, #139 rust/docker, #136 (deferred, see below). Deferred (left open): - #116/#126 (candle-core/candle-transformers 0.10.2 -> 0.11.0): still blocked. mistralrs 0.8.1 (latest) still hard-pins candle-core ^0.10.2; bumping alone would create duplicate candle builds. Same blocker as the last three consolidations. - #136 (@tanstack/react-table 8.21.0 -> 9.1.2): 8.21.3 is still the latest 8.x release, so this is a major-version rewrite, not a routine bump. Same situation as before. Security audit: - RUSTSEC-2026-0285 (rustls 0.23.40, TLS 1.3 handshake level confusion): fixed, lockfile-only bump to 0.23.45. - RUSTSEC-2026-0253 (lru 0.16.4 UAF, previously deferred pending aws-sdk-s3): fixed. aws-sdk-s3 1.152.0 now depends on lru ^0.18.2; bumped (in-range, lockfile-only) and removed the ignore entry. - RUSTSEC-2026-0235 (rkyv 0.7.46 OOB reads, previously deferred pending rust_decimal): fixed. rust_decimal 1.43.0 now depends on rkyv ^0.8.13 instead of the vulnerable 0.7 line; bumped (in-range, lockfile-only), which drops rkyv 0.7.46 from the tree entirely. Removed the ignore entry. - GitHub Dependabot (12 open alerts: js-yaml, vitest/@vitest/mocker, undici x6, browserslist x2, baseline-browser-mapping, @humanfs/node): all resolved — js-yaml/vitest by their direct bumps above, the rest via new pnpm overrides (dev-only transitive deps pulled by jsdom/eslint/babel toolchains). - pnpm audit: 0 known vulnerabilities (was 17). Pre-existing: none needed fixing — fmt/clippy/full test suite were already green on main. quick-xml bump creates a duplicate 0.41/0.42 build (calamine and feed-rs both pin ^0.41); negligible cost, noted for visibility. Verification: cargo fmt --all -- --check, cargo clippy --workspace --all-targets -- -D warnings, cargo test --workspace (29/29 suites), bash .github/scripts/cargo-audit.sh (0 unaddressed findings), pnpm install --frozen-lockfile, pnpm lint/tsc/prettier/test/build — all green.
Owner
Author
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
This was referenced Oct 1, 2026
The GitHub Actions stable Rust toolchain advanced to 1.99.0 since the last CI run on main (2026-09-29), which introduced the new clippy::double_must_use lint. It fires on every #[async_trait]- decorated trait definition (EmbeddingProvider, UserRepo, PortfolioRepo, AccountRepo, LlmClient, EmailSender) because async_trait's generated method wrapper carries a redundant #[must_use] on top of the already- must_use Result/Future return type — a known async_trait/clippy interaction, not something these trait definitions did wrong. Unrelated to the dependency bumps in this branch: reproduced against main's HEAD by updating rustup's stable toolchain locally to 1.99.0 and rerunning clippy — main would fail the same way right now. Fixed with the attribute clippy itself suggests (#[allow(clippy::double_must_use)] on each trait declaration) rather than editing the macro-generated code. Verified: cargo fmt --all -- --check, cargo clippy --workspace --all-targets --keep-going -- -D warnings, cargo test --workspace (29/29 suites) — all green on rustc 1.99.0.
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.
Summary
Consolidates 12 of the 14 open Dependabot PRs into a single branch, applying every bump as latest-compatible-within-major (manifests updated directly, lockfiles regenerated once), then runs a full ecosystem security audit and fixes three Rust advisories that had been deferred in prior consolidations because their blocking upstream constraint has since resolved.
Superseded PRs
js-yamltaiki-e/install-actionvitestreact-dropzone@vitejs/plugin-reactzustand@types/react-domquick-xmlhttp"1")rand"0.10")rust(Docker)Dockerfile.backendreact-dropzone15 → 20 (5 majors) — risk assessmentDependabot proposed a 5-major jump because 15.0.0 was the last 15.x release (same shape as the deferred
@tanstack/react-tablebump). Reviewed every intervening major's breaking-change notes against this repo's one call site (frontend/src/components/upload/FileUpload.tsx):FileWithPathrequirespath/relativePath):onDropalready typed asFile[], notFileWithPath[]— unaffected.accept-up-to-maxFilesinstead of rejecting the whole batch): a real behavior change, but this component setsmaxFiles: 1and never readsfileRejections— no observable difference.engines.nodeis already>=24— unaffected.Applied the bump; frontend lint/typecheck/test/build all green.
Deferred (left open — not applied)
@tanstack/react-table8.21.3is still the latest published 8.x release (confirmed via npm registry) — this is a major-version rewrite, not a routine bump. Same deferral as the last two consolidations (#127, #138).candle-corecandle-transformersWhy #116/#126 are still blocked: confirmed via the crates.io API that
mistralrs's latest published release is still0.8.1, and it still hard-pinscandle-core = "^0.10.2"/candle-nn = "^0.10.2". Bumping our owncandle-core/candle-nn/candle-transformersto 0.11 would create duplicate builds of the candle crates (0.10.2 formistralrs, 0.11.0 forfinima-embed/finima-llm's direct use) — exactly what the existingCargo.tomlpin comment says it exists to prevent. Unchanged from #127/#138; needs amistralrsrelease that adopts candle 0.11.Security audit
Ran
cargo audit(via the CI's exact.github/scripts/cargo-audit.shgate),pnpm audit, and checkedgh api repos/pacphi/finima/dependabot/alerts.Rust (cargo audit)
rustls0.23.40 (TLS 1.3 handshake messages accepted across encryption-level boundaries)cargo update -p rustls --precise 0.23.45.lru0.16.4 (use-after-free risk inLruCache::pop()under panic)aws-sdk-s3's newest release (1.152.0, up from the 1.132.0 we had) now depends onlru ^0.18.2. Bumped (cargo update -p aws-sdk-s3 --precise 1.152.0, in-range for the workspace's"1"constraint, lockfile-only). Removed the now-stale ignore entry fromaudit-ignoreand.cargo/audit.toml.rkyv0.7.46 (OOB reads via Rc/Arc, reachable only throughrust_decimal's unusedrkyvfeature)rust_decimal's newest release (1.43.0, up from 1.42.1) depends onrkyv ^0.8.13instead of the vulnerable 0.7 line. Bumped (in-range for"1", lockfile-only) —rkyv0.7.46 and its whole transitive cluster (bytecheck,ptr_meta,seahash, etc.) drop out of the tree entirely. Removed the ignore entry from both files.audit-ignore/.cargo/audit.tomlexceptions: down from 9 to 7 documented, all re-verified still non-actionable (sqlx-mysql-onlyrsa, compiled-outrandlog path, and five unmaintained-informational transitive deps with no drop-in replacement).Frontend (
pnpm audit+ Dependabot)All 12 currently-open GitHub Dependabot alerts on
frontend/pnpm-lock.yamlare resolved:js-yamljs-yaml5.4.1→5.4.2 bump above (patched in 5.4.1).vitest/@vitest/mockervitest4.1.11 bump above (first patched version).undici(dev-only, viajsdom/vitest)undici@<8.10.2: ">=8.10.2".browserslist(dev-only, viaeslint-plugin-react-hooks→@babel/core)browserslist@<4.28.7: ">=4.28.7".baseline-browser-mapping(dev-only, transitive viabrowserslist)baseline-browser-mapping@<2.11.0: ">=2.11.0".@humanfs/node(dev-only, viaeslint)@humanfs/node@<0.16.8: ">=0.16.8".Also widened the existing
brace-expansionoverride (>=4.0.0 <5.0.9→>=5.0.9) to>=4.0.0 <5.0.12→>=5.0.12, since three newerbrace-expansionadvisories (GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7, GHSA-6j4f-fj2g-mc7p) had been published above the old floor.pnpm audit: 0 known vulnerabilities (was 17 — all dev/test-only transitive, none in the production bundle).Pre-existing fixes
clippy::double_must_useon six#[async_trait]trait definitions (EmbeddingProvider,UserRepo,PortfolioRepo,AccountRepo,LlmClient,EmailSender). GitHub'sdtolnay/rust-toolchain@stablerunner advanced to Rust 1.99.0 between the last green run onmain(2026-09-29) and this PR's CI run, which introduced this new clippy lint. It fires on every#[async_trait]-decorated trait definition (notimplblocks) becauseasync_trait's generated method wrapper carries a redundant#[must_use]on top of the already-must_useResult/Futurereturn type — a knownasync_trait/clippy interaction, not a defect in these traits. Confirmed unrelated to this PR's dependency bumps by updating rustup's localstabletoolchain to 1.99.0 and reproducing againstmain's unmodified HEAD — it fails identically. Fixed with the exact attribute clippy's own diagnostic suggests:#[allow(clippy::double_must_use)]on each trait declaration, rather than touching the macro-generated code. Re-verified green:cargo fmt --all -- --check,cargo clippy --workspace --all-targets --keep-going -- -D warnings,cargo test --workspace(29/29 suites) on rustc 1.99.0.Otherwise none needed —
cargo fmt,cargo clippy, and the fullcargo test --workspacesuite were already green onmainbefore these bumps (as of the pre-1.99.0 toolchain).One upgrade note for visibility (not a fix): bumping the workspace's own
quick-xmlto 0.42 creates a duplicate build alongsidequick-xml0.41, whichcalamine0.36.1 andfeed-rs2.4.0 both still pin via^0.41. Confirmed viacargo tree -i quick-xml@0.41.0. Unlike the documentedcandle/mistralrsduplicate-build concern, this is a small pure-Rust XML crate — negligible compile-time/binary-size cost, not worth blocking the bump over.Verification
All commands mirror
.github/workflows/ci.ymland.github/scripts/cargo-audit.shexactly.Backend:
Frontend:
🤖 Generated with Claude Code