Skip to content

fix(evals/promptfoo): upgrade promptfoo to 0.121.4 and drop overrides#1163

Merged
stack72 merged 1 commit intomainfrom
fix/promptfoo-upgrade-dependabot
Apr 11, 2026
Merged

fix(evals/promptfoo): upgrade promptfoo to 0.121.4 and drop overrides#1163
stack72 merged 1 commit intomainfrom
fix/promptfoo-upgrade-dependabot

Conversation

@stack72
Copy link
Copy Markdown
Contributor

@stack72 stack72 commented Apr 11, 2026

Summary

  • Bump promptfoo in evals/promptfoo/ from 0.121.3 → 0.121.4 and regenerate package-lock.json
  • Delete the entire overrides block — promptfoo 0.121.4 naturally resolves to patched versions of every transitive dep we were pinning

What this closes

Clears 4 open Dependabot alerts against evals/promptfoo/package-lock.json:

# Package GHSA Severity
11 mathjs GHSA-jvff-x2qm-6286 high
10 basic-ftp GHSA-6v7q-wjvx-w8wg high
9 axios GHSA-3p68-rc4w-qgx5 critical
8 basic-ftp GHSA-chqc-8p9q-pq6q high

Root cause

#1158 added axios and basic-ftp to the overrides block but the lockfile was never regenerated — the committed lockfile on main still had axios@1.14.0 and basic-ftp@5.2.0. Additionally:

Resolved versions in the regenerated lockfile

Package Was (main) Now Patched?
@anthropic-ai/sdk 0.81.0 0.82.0 ✓ (promptfoo 0.121.4 upgraded its direct dep)
axios 1.14.0 1.15.0
basic-ftp 5.2.0 5.2.2
mathjs 15.1.1 15.2.0
hono 4.12.12 4.12.12 ✓ (already patched)
@hono/node-server 1.19.13 1.19.13 ✓ (already patched)

Verified no nested/duplicate copies of axios, basic-ftp, or mathjs in the lockfile.

Scope

This is a transitive-dep refresh via a promptfoo patch bump — not a production code change. Blast radius is limited to the skill-trigger eval harness that runs in CI. No production swamp code imports from evals/promptfoo/.

The lockfile diff is large (~1100 lines added / ~1700 removed) because dropping the overrides block lets npm re-dedupe the tree. Reviewers should focus on package.json and the axios / basic-ftp / mathjs / @anthropic-ai/sdk entries in the lockfile — everything else is dedupe churn.

Test plan

  • npm install --prefix evals/promptfoo succeeds cleanly
  • npm audit0 vulnerabilities
  • deno run --allow-read --allow-net=api.osv.dev --allow-env scripts/audit_deps.tsNo known vulnerabilities found (scanned 1064 packages across deno.lock + evals/promptfoo/package-lock.json)
  • deno fmt --check
  • deno lint
  • deno check ✓ (1021 files)
  • Verified CI version-drift check (.github/workflows/ci.yml) reads the pinned version via jq from package.json — no hardcoded version to update
  • scripts/eval_skill_triggers_promptfoo.ts calls npx promptfoo eval — stable CLI, unchanged by a patch bump
  • Engine requirement unchanged (^20.20.0 || >=22.22.0); CI uses Node 24
  • After merge: confirm Dependabot auto-closes alerts Fix PR merges #8, CI: Change to Claude Opus as the model #9, Ensure CI Can Post To PR #10, feat: add type describe command and fix terminal output issues #11

🤖 Generated with Claude Code

Bump promptfoo from 0.121.3 → 0.121.4 and regenerate the lockfile. The
new release naturally pulls patched versions of every transitive dep
that was previously pinned via an override, so the entire `overrides`
block can go.

Clears 4 open Dependabot alerts against
`evals/promptfoo/package-lock.json`:

| # | Package | GHSA | Severity |
|---|---|---|---|
| 11 | mathjs | GHSA-jvff-x2qm-6286 | high |
| 10 | basic-ftp | GHSA-6v7q-wjvx-w8wg | high |
| 9 | axios | GHSA-3p68-rc4w-qgx5 | critical |
| 8 | basic-ftp | GHSA-chqc-8p9q-pq6q | high |

Root cause: #1158 added `axios` and `basic-ftp` overrides but the
lockfile was never regenerated, so the committed lockfile still had
`axios@1.14.0` and `basic-ftp@5.2.0`. The `basic-ftp: >=5.2.1` range
also still allowed the vulnerable 5.2.1 per alert #10, and there was
no override at all for mathjs.

Resolved versions in the regenerated lockfile:

| Package | Was | Now |
|---|---|---|
| @anthropic-ai/sdk | 0.81.0 | 0.82.0 |
| axios | 1.14.0 | 1.15.0 |
| basic-ftp | 5.2.0 | 5.2.2 |
| mathjs | 15.1.1 | 15.2.0 |
| hono | 4.12.12 | 4.12.12 |
| @hono/node-server | 1.19.13 | 1.19.13 |

No nested/duplicate copies of axios, basic-ftp, or mathjs remain in
the lockfile.

Verification:
- `npm audit` → 0 vulnerabilities
- `deno run scripts/audit_deps.ts` → "No known vulnerabilities found"
  (scanned 1064 packages across deno.lock + promptfoo lockfile)
- `deno fmt --check`, `deno lint`, `deno check` — clean

No code changes required. The eval entry script calls `npx promptfoo
eval` — a stable CLI surface — and a patch bump (0.121.3 → 0.121.4)
is not expected to change it. Engine requirement unchanged
(`^20.20.0 || >=22.22.0`); CI uses Node 24.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Code Review

Blocking Issues

None.

Suggestions

None.

Clean, well-scoped security fix. Verified:

  • package.json: promptfoo bumped 0.121.3 → 0.121.4, overrides block correctly removed (the new promptfoo version resolves patched transitive deps natively)
  • Vulnerable packages resolved: axios 1.14.0 → 1.15.0, basic-ftp 5.2.0 → 5.2.2, mathjs 15.1.1 → 15.2.0 — all at patched versions
  • No duplicate/nested copies of the previously-vulnerable packages in the lockfile
  • Scope is limited to evals/promptfoo/ — no production code changes, no src/ changes
  • Lockfile churn is expected from dropping the overrides block (npm re-dedupes the tree)
  • DDD review not applicable — no domain code changes

@stack72 stack72 merged commit 25d3839 into main Apr 11, 2026
10 checks passed
@stack72 stack72 deleted the fix/promptfoo-upgrade-dependabot branch April 11, 2026 21:56
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