chore(deps): consolidate Dependabot updates + missed minor/patch bumps#1402
Conversation
Closes #1394, #1392, #1384. ## npm minor/patch group (#1394 includes #1392 js-cookie security fix) - @amplitude/unified 1.1.5 -> 1.1.9 (Dependabot wanted 1.1.8; 1.1.9 latest) - @codemirror/view ^6.42.1 -> ^6.43.0 - @tanstack/react-query 5.100.10 -> 5.100.14 (Dependabot wanted 5.100.11; .14 latest) - @uiw/codemirror-theme-github ^4.25.9 -> ^4.25.10 - @uiw/react-codemirror ^4.25.9 -> ^4.25.10 - ag-grid-community ^35.2.1 -> ^35.3.0 - ag-grid-react ^35.2.1 -> ^35.3.0 - date-fns ^4.1.0 -> ^4.2.1 (pinned to ~4.2.1 via override; see below) - js-cookie ^3.0.5 -> ^3.0.7 (CVE-2026-46625 cookie attribute injection) - @amplitude/analytics-core ^2.48.1 -> ^2.48.2 - @types/node ^25.7.0 -> ^25.9.1 - @types/react 19.2.14 -> 19.2.15 - @vitest/coverage-v8 ^4.1.6 -> ^4.1.7 - baseline-browser-mapping ^2.10.29 -> ^2.10.31 - postcss ^8.5.14 -> ^8.5.15 - vitest ^4.1.6 -> ^4.1.7 - write-excel-file ^4.0.6 -> ^4.0.7 (Dependabot missed) - read-excel-file ^9.0.9 -> ^9.0.10 (Dependabot missed) ## Storybook 10.3.6 -> 10.4.0 (#1394) @storybook/addon-docs, @storybook/addon-vitest, @storybook/react, @storybook/react-vite, storybook, @vitest/browser-playwright ## Python (#1384 + missed updates) - idna 3.11 -> 3.16 (CVE-2026-45409 -- Dependabot wanted 3.15; uv resolved to 3.16) - click 8.3.1 -> 8.4.1 - pydantic 2.12.4 -> 2.13.4 (pydantic-core 2.41.5 -> 2.46.4) - pygithub 2.8.1 -> 2.9.1 - python-multipart 0.0.28 -> 0.0.29 - requests 2.33.0 -> 2.34.2 - mcp 1.27.0 -> 1.27.1 - dbt-duckdb 1.10.0 -> 1.10.1 (dev) - pytest-cov 7.0.0 -> 7.1.0 (dev) - pre-commit 4.4.0 -> 4.6.0 (dev) ## Security fixes via pnpm overrides - js-cookie@<3.0.7 -> >=3.0.7 (enforces CVE patch through @datarecce/ui) - ws@>=8.0.0 <8.20.1 -> >=8.20.1 (CVE -- uninitialized memory disclosure; reaches the tree via vitest, happy-dom, storybook) ## Migration: date-fns pinned to ~4.2.1 date-fns 4.3.0 added a modularized optimization fallback that breaks the date-fns vi.mock in TimelineEvent.test.tsx (OSS variant). Pinned to ~4.2.1 (Dependabot's intended target) until the test mock is updated. ## Deferred - #1378 @vitejs/plugin-react 5.x -> 6.x: chained major bump requiring Vite 7 -> 8. Not included. ## Verification - pnpm audit: 0 vulnerabilities (was 2 high/moderate) - pip-audit: 0 vulnerabilities - Python: 1304 passed, 5 skipped (pytest tests) - Frontend: 3779 passed, 5 skipped (pnpm test) - Frontend type check: clean (pnpm type:check) - Frontend lint: clean (pnpm lint) - Frontend build: clean (pnpm build) - Python lint: clean (make flake8) - Python format: clean (make format) Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Code Review: PR #1402SHA Notes
Verified
|
There was a problem hiding this comment.
Pull request overview
This PR consolidates multiple Dependabot dependency updates into a single branch for Recce’s Python backend (uv lockfile) and the JS/TS workspace, including security-motivated pnpm overrides and a temporary date-fns pin to keep tests passing.
Changes:
- Updated Python locked dependencies in
uv.lock(e.g., click, idna, pydantic, requests, pre-commit, dbt-duckdb). - Updated JS workspace dependencies (root + Storybook + UI package dev deps) and refreshed pnpm overrides.
- Added pnpm overrides for
js-cookieandws, and pinneddate-fnsto~4.2.1to avoid a test-mocking regression.
Reviewed changes
Copilot reviewed 4 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
uv.lock |
Refreshes Python dependency lock versions to newer minor/patch releases (incl. idna CVE fix). |
js/pnpm-workspace.yaml |
Updates workspace-wide overrides and adds security overrides + date-fns pin. |
js/package.json |
Bumps root JS dependencies/devDependencies (e.g., react-query, js-cookie, vitest, postcss). |
js/packages/storybook/package.json |
Updates Storybook + Vitest packages and tightens react-query version. |
js/packages/ui/package.json |
Updates UI package devDependencies (tsdown, postcss). |
…e floor Addresses Copilot review on PR #1402. - pnpm-workspace.yaml: change override values from `>=3.0.7` / `>=8.20.1` to `^3.0.7` / `^8.20.1` so the security fix can't silently promote through a future major bump. - @datarecce/ui/package.json: bump js-cookie floor from `^3.0.5` to `^3.0.7`. The workspace override only protects this repo; published consumers of @datarecce/ui need the floor bump to avoid resolving to vulnerable 3.0.5/3.0.6 (CVE-2026-46625). This bumps a published- package floor — usually held per memory rule, but security CVEs are the intended exception. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Summary
Consolidates open Dependabot PRs into one tested branch and bundles non-major updates Dependabot missed.
Defers #1378 (@vitejs/plugin-react 5.x -> 6.x) — that one requires chaining Vite 7 -> 8, both majors, out of scope here.
What changed
npm minor/patch (#1394): @amplitude/unified, @codemirror/view, @tanstack/react-query, @uiw/codemirror-theme-github, @uiw/react-codemirror, ag-grid-community/-react, date-fns, js-cookie, @amplitude/analytics-core, @types/node, @types/react, @vitest/coverage-v8, baseline-browser-mapping, postcss, vitest
Storybook 10.3.6 -> 10.4.0 (#1394): addon-docs, addon-vitest, react, react-vite, storybook, @vitest/browser-playwright
Missed by Dependabot (bundled):
Python (#1384): idna 3.11 -> 3.16 (CVE-2026-45409; uv resolved to 3.16 - latest 3.x; min Python 3.9, we're on 3.10+)
Security review
js-cookie@<3.0.7 -> >=3.0.7- @datarecce/ui declares^3.0.5so the root bump alone left a vulnerable 3.0.5 in the workspace tree. CVE-2026-46625 (cookie attribute injection). Per memory, @datarecce/ui's floor isn't bumped; the override enforces the patched version inside this repo.ws@>=8.0.0 <8.20.1 -> >=8.20.1- uninitialized memory disclosure CVE, transitively pulled by vitest/happy-dom/storybook.Migration: date-fns pinned to ~4.2.1
date-fns 4.3.0 (released 2026-05-21) "Fixed missing modularized optimization fallback (for Next.js and others)". That change breaks
vi.mock("date-fns", ...)in OSSTimelineEvent.test.tsx— the actualformatDistanceToNowruns instead of the mock, so the assertion for "5 minutes ago" sees "less than a minute ago" and the test fails.Pinned date-fns to
~4.2.1inpnpm-workspace.yamloverrides (Dependabot's intended target). The UI variant of the same test (packages/ui/.../TimelineEvent.test.tsx) was unaffected. Recommend updating the OSS test's mock to useimportOriginal()+ override before unpinning.Deferred (separate PRs)
Test plan
pnpm auditcleanpip-auditcleanpytest tests— 1304 passed, 5 skippedpnpm test— 3779 passed, 5 skippedpnpm type:checkcleanpnpm lintcleanpnpm buildcleanmake flake8cleanmake formatcleanNotes
recce/dataeditspnpm-workspace.yamlreviewed for placeholder lines from pnpm 11 (none)🤖 Generated with Claude Code