Skip to content

[failproofai-legion-926] Combine the three open Dependabot PRs and clear the Supply Chain gate - #926

Merged
NiveditJain merged 4 commits into
mainfrom
luv-legion-926
Oct 22, 2026
Merged

NiveditJain merged 4 commits into
mainfrom
luv-legion-926

Conversation

@NiveditJain

@NiveditJain NiveditJain commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

One PR for #921, #922 and #923. The Supply Chain gate (OSV-Scanner) scans every lockfile on every run, so none of the three could go green on its own: each failed on what the other two fix, plus findings no Dependabot PR covers. With this PR, OSV-Scanner 2.5.0 run with the workflow's own scan-args reports No issues found.

What's in it

Three Dependabot commits, cherry-picked unchanged:

PR Update Advisories
#923 certifi 2026.7.22 → 2026.10.19 in sdk/python/uv.lock GHSA-6q48-6c7w-9gw2
#922 certifi 2026.7.22 → 2026.10.19 in fp-cloud-cli/uv.lock GHSA-6q48-6c7w-9gw2
#921 vite 8.3.0 → 8.3.4 in sdk/typescript/package-lock.json five vite advisories, fixed in 8.3.3

The findings no Dependabot PR covered:

Lockfile Fix Advisories
bun.lock vite override 8.0.16 → 8.1.6, which takes rolldown 1.0.3 → 1.1.5 GHSA-587h-7wmj-h5pm, GHSA-698v-4r3x-3vcv, GHSA-9jrq-w75r-8gcw, GHSA-r825-w8mm-5pxw, GHSA-rq7h-c2jc-7f22
Cargo.lock rustls-webpki 0.103.15 → 0.103.16, webpki-roots 1.0.9 → 1.0.10 (cargo update -p; nothing else moves) RUSTSEC-2026-0382, RUSTSEC-2026-0381
sdk/typescript/package-lock.json vitest 5.0.1 → 5.0.5, in range; vite goes on from 8.3.4 to 8.3.5 with it GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp (@vitest/mocker)
sdk/python/uv.lock uv 0.11.33 → 0.13.5, through [tool.uv] override-dependencies GHSA-hq85-5cpj-mr62
sdk/python/uv.lock pillow 12.3.0 → 13.0.0 on Python 3.11+ 28 advisories
  • certifi, uv, webpki-roots and rustls-webpki are one event. All four advisories (published 2026-10-19/20) concern emSign roots whose intermediate CA keys are compromised. The two Rust crates are the trust store and certificate verifier failproofaid and fpai-collect use through reqwest.
  • The root vite override goes to 8.1.6, not the newest 8.3.5. 8.1.6 is the smallest fixed release and needs only a newer rolldown. 8.2 and later also need lightningcss 1.33, and 8.3.5 needs a postcss above the 8.5.26 override.
  • bun.lock was edited entry by entry, as in [failproofai-legion-901] Combine the open Dependabot PRs and clear every fixable security finding #901. Letting bun re-resolve the vite entry moved about 120 unrelated packages, so only bun's own resolution of the vite/rolldown subtree is spliced in. The @emnapi/*, @napi-rs/wasm-runtime and @tybys/wasm-util lines that move are wasm32-only, reachable through @rolldown/binding-wasm32-wasi, which no CI runner installs. @unrs/resolver-binding-wasm32-wasi keeps its 1.10.0 copies, now nested. bun install --frozen-lockfile accepts the lock, and a plain bun install leaves it byte-identical.
  • uv needs an override because crewai-cli (pulled in by crewai) pins uv~=0.11.6. This is the same situation [failproofai-legion-904] Clear the fixable Dependabot alerts: mcp in the SDK lock, sprintf-js in two fixtures #904 handled for mcp. crewai-cli only shells out to uv from its own project commands, which no test runs. The comment in sdk/python/pyproject.toml says to delete the entry once a crewai-cli release allows 0.13.4.

The one finding accepted: pillow 12.3.0 on Python 3.10

pillow 13.0.0 requires Python ≥ 3.11, but the SDK still supports 3.10. The lock therefore forks: 13.0.0 for 3.11 and up, and 12.3.0, the last release that installs on 3.10, for 3.10 alone. No pillow release fixes that slice, and none will. The advisories are also still arriving: 9 on the 2026-10-20 scan, 28 two days later.

That is the case SECURITY.md rule 3 reserves [[PackageOverrides]] for: a package that keeps accruing unfixable advisories, where an id list would turn the gate red on an unrelated PR with every new disclosure. osv-scanner.toml gets one entry:

  • It is pinned to version = "12.3.0", so 13.0.0, which every other supported Python resolves, stays fully gated. Any change to the 3.10 slice re-opens the gate.
  • It runs until 2026-11-20, the re-review date the rest of the list already shares.
  • pillow is transitive via crewai (through pdfplumber) and llama-index-core, in the dev/test lockfile only. The SDK declares no runtime dependencies.

Dropping Python 3.10 from failproofai-sdk's requires-python would retire the entry. That is a support decision for the SDK, so this PR does not make it.

Verified locally

  • Supply Chain: OSV-Scanner 2.5.0 with the workflow's scan-args reports No issues found, exit 0.
  • quality: lint passes (0 errors), and so does tsc --noEmit.
  • test / test-e2e: bun run test:run passes 8433 tests and bun run test:e2e passes 357.
  • rust-quality: cargo fmt --check and cargo clippy -D warnings pass, and so does cargo test --workspace. One file, collector_reload_e2e, failed on the first run on this machine. The daemon under test picked up the machine's real ~/.agenteye/events spool, because the test sets FAILPROOFAI_HOME but not AGENTEYE_HOME. With AGENTEYE_HOME pointed at an empty directory, all 10 pass.
  • Python:
    • fp-cloud-cli passes on 3.10 and 3.13.
    • failproofai-sdk passes on 3.10 and 3.14.
    • The adapter suite passes with every framework extra on 3.12. It installs pillow 13.0.0 and uv 0.13.5.
  • failproofai-ts-sdk: npm ci, typecheck, lint, build and vitest run pass (554 tests, vitest 5.0.5). The frameworks integration shard passes 1036 tests.

Supersedes #921, #922 and #923. Dependabot closes each one once this merges, because the version it proposes will already be on main.

🤖 Generated with Claude Code

https://claude.ai/code/session_019BPtjtjjA9U2hdwjZikULq

Hermes review

Field Value
Status Approved
Reviewed commit 9ab09e834493e06dc1e100e7222399ebcbe4c801
Policy revision 1d8f31d926828f3bae215c58f5b35baa44acbff0
Model gpt-5.6-terra
Duration 265s
Updated 2026-10-22T10:56:28.104242702+00:00

Summary

All changed dependency and scanner-policy paths have been reviewed. Isolated frozen-install checks accepted both Node lockfiles, uv accepted the Python lockfile, and OSV-Scanner 2.5.0 completed the workflow’s five-lockfile scan with exit status 0. I found no actionable regression in this revision.

Changes

  • Updated root Bun/Vite override and lock resolution for security fixes.
  • Updated Rust TLS dependency lock entries.
  • Updated Python SDK and cloud CLI lockfiles; added a bounded uv override and Python-version-specific Pillow resolution.
  • Updated TypeScript SDK Vite/Vitest lock resolution.
  • Added a version-pinned, time-bounded Pillow exception to the supply-chain scanner policy and documented the dependency updates.

Validation

  • Passed docker run --rm --network=bridge -e PIP_DISABLE_PIP_VERSION_CHECK=1 -v /review/input/workspace:/src:ro -w /src/sdk/python python:3.14-slim sh -ec 'python -m pip install --quiet uv==0.13.5 && uv lock --locked --offline' — uv 0.13.5 accepted the edited Python SDK lockfile without attempting an update. (27s)
  • Passed docker run --rm --network=bridge -v /review/input/workspace:/src:ro -w /tmp/review oven/bun:1.3.4 sh -ec 'cp -a /src/. /tmp/review/ && bun install --frozen-lockfile --ignore-scripts' — Bun 1.3.4 accepted the edited root lockfile in a writable container copy. (26s)
  • Passed docker run --rm --network=bridge -v /review/input/workspace/sdk/typescript:/src:ro -w /tmp/review node:22-slim sh -ec 'cp -a /src/. /tmp/review/ && npm ci --ignore-scripts --no-audit --no-fund' — npm ci accepted the edited TypeScript SDK package-lock.json. (26s)
  • Passed docker run --rm --network=bridge -v /review/input/workspace:/src:ro -w /src ghcr.io/google/osv-scanner:v2.5.0 scan source --config=osv-scanner.toml --lockfile=bun.lock --lockfile=Cargo.lock --lockfile=fp-cloud-cli/uv.lock --lockfile=sdk/python/uv.lock --lockfile=sdk/typescript/package-lock.json — OSV-Scanner 2.5.0 scanned all five workflow lockfiles and exited 0; it parsed the submitted exception configuration. (26s)

Findings

None.

Open questions

None.

Policy overrides

None.

Summary by CodeRabbit

  • Chores
    • Updated frontend tooling to Vite 8.1.6 and constrained Python development tooling to the uv 0.13 release series.
    • Refreshed dependency lockfile entries and recorded the 1.0.12-beta.0 release, dated October 22, 2026.

dependabot Bot and others added 4 commits October 22, 2026 15:59
Bumps [certifi](https://github.com/certifi/python-certifi) from 2026.7.22 to 2026.10.19.
- [Commits](certifi/python-certifi@2026.07.22...2026.10.19)

---
updated-dependencies:
- dependency-name: certifi
  dependency-version: 2026.10.19
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [certifi](https://github.com/certifi/python-certifi) from 2026.7.22 to 2026.10.19.
- [Commits](certifi/python-certifi@2026.07.22...2026.10.19)

---
updated-dependencies:
- dependency-name: certifi
  dependency-version: 2026.10.19
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the npm_and_yarn group with 1 update in the /sdk/typescript directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 8.3.0 to 8.3.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.3.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.3.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
…ependabot PRs could not pass alone

OSV-Scanner scans every lockfile in the repo, so #921, #922 and #923 each
failed on what the other two fix plus findings no Dependabot PR touches.
Their commits are cherry-picked unchanged ahead of this one; this clears
the rest:

- bun.lock: the vite override 8.0.16 -> 8.1.6 (GHSA-587h-7wmj-h5pm,
  GHSA-698v-4r3x-3vcv, GHSA-9jrq-w75r-8gcw, GHSA-r825-w8mm-5pxw,
  GHSA-rq7h-c2jc-7f22), the smallest fixed release. It needs
  rolldown ~1.1.5, so rolldown 1.0.3 -> 1.1.5 and its platform packages
  move with it, plus the wasm32-only emnapi/napi-rs helpers that
  rolldown's wasm binding pins. Spliced in from bun's own resolution of
  that subtree, because re-resolving the lock moves ~120 unrelated
  packages; `bun install --frozen-lockfile` accepts it and a plain
  `bun install` leaves it unchanged.
- Cargo.lock: rustls-webpki 0.103.15 -> 0.103.16 (RUSTSEC-2026-0382) and
  webpki-roots 1.0.9 -> 1.0.10 (RUSTSEC-2026-0381); `cargo update -p`,
  nothing else moves.
- sdk/typescript/package-lock.json: vitest 5.0.1 -> 5.0.5 in range
  (GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp in @vitest/mocker); vite
  moves on from #921's 8.3.4 to 8.3.5 with it.
- sdk/python/uv.lock: uv 0.11.33 -> 0.13.5 (GHSA-hq85-5cpj-mr62) through
  a second [tool.uv] override, since crewai-cli pins uv~=0.11.6; pillow
  12.3.0 -> 13.0.0 for Python 3.11+ (28 advisories). Nothing else moves.
- osv-scanner.toml: pillow 13.0.0 requires Python >= 3.11, so the lock's
  3.10 slice stays on 12.3.0 with no fixed release to move to. Accepted
  with a [[PackageOverrides]] pinned to 12.3.0 until 2026-11-20, the
  case SECURITY.md keeps one for: 9 advisories on the 2026-10-20 scan,
  28 by today.

OSV-Scanner 2.5.0 with the workflow's scan-args reports "No issues found".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BPtjtjjA9U2hdwjZikULq
@github-actions

Copy link
Copy Markdown
Contributor

Thanks @NiveditJain for your contribution to Failproof AI! 🙌

We'd love to discuss your PR and welcome you to our community.

Discord: https://discord.befailproof.ai/
Reddit: https://www.reddit.com/r/failproofai/

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 26157747-4606-47b9-9002-47c9ec274b14
📥 Commits

Reviewing files that changed from the base of the PR and between f3849de and 9ab09e8.

⛔ Files ignored due to path filters: 5
  • Cargo.lock is excluded by !**/*.lock
  • bun.lock is excluded by !**/*.lock
  • fp-cloud-cli/uv.lock is excluded by !**/*.lock
  • sdk/python/uv.lock is excluded by !**/*.lock
  • sdk/typescript/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing: 4
  • CHANGELOG.md
  • osv-scanner.toml
  • package.json
  • sdk/python/pyproject.toml

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.

📝 Walkthrough

The beta changelog is updated. The Vite override and Python development-lockfile constraints change. The OSV-Scanner configuration adds a time-limited vulnerability override for PyPI Pillow 12.3.0.

Changes: Dependency updates

Layer / File(s) Summary
Dependency constraints and release notes
CHANGELOG.md, package.json, sdk/python/pyproject.toml
The changelog adds release 1.0.12-beta.0 and dependency notes. The Vite override changes to 8.1.6, and the Python development-lockfile adds the uv>=0.13.4,<0.14 constraint.
Pillow vulnerability override
osv-scanner.toml
The configuration adds a package-wide override for PyPI pillow version 12.3.0 through 2026-11-20, and clarifies how the override differs from advisory-specific entries.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: chhhee10

Merge Risk: ⚪ Minimal · up to 9ab09

The temporary Pillow exception applies to the intended Python 3.10 dependency resolution. No actionable issue identified here prevents merging after normal checks.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly identifies the main change: combining the three Dependabot updates and clearing the repository Supply Chain gate.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description is detailed and explains the purpose, scope, security exception, affected dependencies, validation results, and known test-environment issue. It does not use the template headings or p…
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (4 skipped: 4 unsupported.)

Full details: Description check

Explanation

The description is detailed and explains the purpose, scope, security exception, affected dependencies, validation results, and known test-environment issue. It does not use the template headings or provide the Type of Change and checklist checkboxes, but the required information is mostly covered in the narrative.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks the package trail,
New versions hop into the file.
Pillow rests until November,
The scanner notes the date to remember.
The changelog marks the beta bright.

Comment @coderabbitai help to get the list of available commands.

@hermes-exosphere

Copy link
Copy Markdown
Contributor

Hermes

Status Reviewing
Verdict Not reviewed yet
Head 9ab09e834493
Rounds 0 of 5

No summary yet.

What this changes

No component map for this revision.

Rounds

No review has finished on this pull request yet.

Findings

Nothing raised yet.


@hermes-exosphere help lists every command. This comment is maintained in place — I rewrite it after each review rather than posting a new one.

@hermes-exosphere

Copy link
Copy Markdown
Contributor

Hermes

Status Reviewed
Verdict Approved
Head 9ab09e834493
Rounds 0 of 5

All changed dependency and scanner-policy paths have been reviewed. Isolated frozen-install checks accepted both Node lockfiles, uv accepted the Python lockfile, and OSV-Scanner 2.5.0 completed the workflow’s five-lockfile scan with exit status 0. I found no actionable regression in this revision.

What this changes

flowchart LR
    n0Rootwebapplication["~ Root web application"]
    n1Rustservices["~ Rust services"]
    n2PythonSDKtestenvironment["~ Python SDK test environment"]
    n3CloudCLIenvironment["~ Cloud CLI environment"]
    n4TypeScriptSDKtestenvironment["~ TypeScript SDK test environment"]
    n5Supplychainsecuritygate["~ Supply-chain security gate"]
    n0Rootwebapplication -- "Bun lockfile scan" --> n5Supplychainsecuritygate
    n1Rustservices -- "Cargo lockfile scan" --> n5Supplychainsecuritygate
    n2PythonSDKtestenvironment -- "uv lockfile scan" --> n5Supplychainsecuritygate
    n3CloudCLIenvironment -- "uv lockfile scan" --> n5Supplychainsecuritygate
    n4TypeScriptSDKtestenvironment -- "npm lockfile scan" --> n5Supplychainsecuritygate
Loading

Rounds

Round Reviewed Commits in this round Verdict
0 9ab09e834493 a31d6ae27e6f 8b72838d09fb 068859c6e246 9ab09e834493 Approved

Findings

Nothing raised yet.


@hermes-exosphere help lists every command. This comment is maintained in place — I rewrite it after each review rather than posting a new one.

@hermes-exosphere hermes-exosphere left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hermes found no blocking issues in this revision.

@NiveditJain
NiveditJain merged commit a62c6bf into main Oct 22, 2026
37 checks passed
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.

2 participants