chore(deps): clear all 11 Dependabot alerts + minor-and-patch group - #63
Merged
Merged
Conversation
Supersedes #60, #61 and #62, all of which CI rejected. #60 and #62 failed with ERR_PNPM_LOCKFILE_CONFIG_MISMATCH: Dependabot regenerates pnpm-lock.yaml without the `pnpm.overrides` block, so `pnpm install --frozen-lockfile` refuses the lockfile. Re-resolved locally instead, keeping overrides intact. #61 bumped anyio in only one of the four uv lockfiles that carry the advisory. Security alerts cleared (11 -> 0): - anyio 4.13.0 -> 4.15.1 (critical + medium) in backend, tests/e2e, tools/fixtures and tools/simulator. `--upgrade-package anyio` alone under-shot to 4.14.2 in backend; pinned the resolve to >=4.15 so all four lockfiles agree. No manifest constraints were added. - js-yaml -> 4.3.2, sharp -> 0.35.4, baseline-browser-mapping -> 2.11.21 (frontend, all transitive). Raised the js-yaml and sharp override floors and added a baseline-browser-mapping floor, since browserslist was still pulling a vulnerable 2.10.34 alongside a patched copy. minor-and-patch group (#60), all 11 packages at or above its targets: next/eslint-config-next 16.3.4, react/react-dom/@types/react/ @types/react-dom 19.3.0, @types/node 26.6.2, tailwindcss and @tailwindcss/postcss 4.3.3, happy-dom 20.14.5, orval 8.34.0. Overrides use caret floors, not exact pins. Verified locally: pnpm install --frozen-lockfile succeeds; frontend tsc/lint/build clean and 601 tests pass; backend ruff/mypy clean and 317 tests pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Sep 20, 2026
timothybrown
added a commit
that referenced
this pull request
Sep 20, 2026
Covers the dependency remediation in #63: all 11 Dependabot alerts cleared (anyio, js-yaml, sharp, baseline-browser-mapping) plus the minor-and-patch group, and #59 (pnpm/action-setup 6.1.0). backend/uv.lock pins the editable app version, so it is re-locked alongside pyproject.toml — otherwise `uv sync --frozen` fails on deploy. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Supersedes #60, #61 and #62, all of which CI rejected.
Why these three PRs could not be merged
#60 and #62 failed with
ERR_PNPM_LOCKFILE_CONFIG_MISMATCH. Dependabot regeneratespnpm-lock.yamlwithout thepnpm.overridesblock, sopnpm install --frozen-lockfilerefuses the lockfile. This is the known failure mode — the fix is to re-resolve locally with overrides intact and supersede, never to merge as-is.#61 bumped
anyioin/tools/fixturesonly. The same advisory applies to four lockfiles. Itse2efailure was unrelated to the bump: the simulator backfill hithttpx.ReadTimeoutfetching the Open-Meteo archive API (see note below).Security alerts cleared (11 → 0)
anyiobackend,tests/e2e,tools/fixtures,tools/simulatorjs-yamlsharpbaseline-browser-mappingTwo details worth flagging:
uv lock --upgrade-package anyiounder-shot to 4.14.2 inbackendwhile the other three went to 4.15.1. Pinned that resolve to>=4.15so all four lockfiles agree. No manifest constraints were added —backend/pyproject.tomlis untouched.browserslistwas pulling a vulnerablebaseline-browser-mapping@2.10.34alongside a patched2.11.21, so the existingbrowserslistoverride was not enough on its own and the package needed a floor of its own.All overrides use caret floors, not exact pins.
minor-and-patch group (#60)
All 11 packages land at or above #60's targets:
next/eslint-config-next16.3.4,react/react-dom/@types/react/@types/react-dom19.3.0,@types/node26.6.2,tailwindcss+@tailwindcss/postcss4.3.3,happy-dom20.14.5,orval8.34.0.Note that next 16.3.4 re-enables AVIF image optimization and requires sharp 0.35.4 — so #60 and #62 were coupled and had to ship together anyway.
Verification
Ran the full CI gate for both stacks locally:
pnpm install --frozen-lockfile— succeeds (the exact step that failed on chore(deps): bump the minor-and-patch group across 1 directory with 11 updates #60/chore(deps): bump sharp from 0.35.3 to 0.35.4 in /frontend #62)generate,tsc --noEmit,lint,buildall clean; 601 tests pass (57 files)ruff check app/andmypy app/clean; 317 tests passpnpm generateunder orval 8.34 produced byte-identical outputOut of scope
The
e2ejob seeds by backfilling from the live Open-Meteo archive API, which is what flaked on #61. That is a real source of CI flakiness independent of any dependency bump, but fixing it is a separate change and I left it alone.🤖 Generated with Claude Code