Skip to content

chore(ci): add .github/dependabot.yml — weekly dep updates for 3 ecosystems (Phase 5)#185

Merged
dackclup merged 1 commit into
mainfrom
claude/dependabot-config-Ph5
May 22, 2026
Merged

chore(ci): add .github/dependabot.yml — weekly dep updates for 3 ecosystems (Phase 5)#185
dackclup merged 1 commit into
mainfrom
claude/dependabot-config-Ph5

Conversation

@dackclup
Copy link
Copy Markdown
Owner

Summary

Closes one of the Phase 5 housekeeping items from the 14-subagent self-audit (2026-05-21) parking-lot. New Dependabot v2 config covers QuantRank's three dependency ecosystems.

Ecosystem Directory Schedule PR limit Commit prefix
pip / (pyproject.toml) Mon 08:00 Asia/Bangkok 5 chore(deps-py)
npm /frontend Mon 08:00 5 chore(deps-npm)
github-actions / (workflows) Mon 08:00 3 chore(deps-ci)

Design choices

  • Weekly cadence — daily too noisy for solo-maintained project; monthly drifts CVE-fix latency too long
  • Minor + patch grouped into one PR per ecosystem (reduces PR count when multi-package sweeps land upstream); security updates always file separately at top priority (Dependabot default)
  • Commit-prefix scheme matches existing chore(X): convention (feat / docs / fix / chore)
  • next / react / react-dom / @types/react* MAJOR bumps explicitly ignored — tracked under Bump Next.js 14.2 → 16 (security CVEs + dep refresh) #41 (Next 14 → 16 needs scoped breaking-change migration with dependency-auditor triage). Minor + patch + security on those packages still file automatically.

NOT in scope

Test plan

  • ruff check . — clean (only Python imports lint)
  • python -m compute.output.schema_check — in sync (no schema touch)
  • python3 -c "import yaml; yaml.safe_load(open('.github/dependabot.yml'))" — parses to v2 with 3 ecosystems
  • CI green — pending (no Python/JS code change, expect trivial pass)
  • First Dependabot run lands Monday after merge

CLAUDE.md + AGENTS.md lockstep

Both touched on this branch. Also updated 2 prior in-flight entries (PR #184 METHODOLOGY refresh) to "merged".

https://claude.ai/code/session_01HHo4UHKc9iKKytkKfxfVnA


Generated by Claude Code

…ystems (Phase 5)

Closes one of the Phase 5 housekeeping items from the 14-subagent
self-audit (2026-05-21) parking-lot. New Dependabot v2 config covers
QuantRank's three dependency ecosystems:

- **pip** — pyproject.toml at repo root (Python compute layer)
- **npm** — frontend/package.json (Next.js frontend)
- **github-actions** — .github/workflows/ (CI actions)

Design choices:
- Weekly cadence (Monday 08:00 Asia/Bangkok) — daily too noisy for a
  solo-maintained project, monthly drifts CVE-fix latency too long
- Minor + patch grouped into one PR per ecosystem (reduces PR count
  when multi-package sweeps land upstream); security updates always
  separate at top priority (Dependabot default)
- Commit-prefix scheme `chore(deps-{py|npm|ci})` matches the project's
  existing `chore(X):` convention (feat / docs / fix / chore)
- open-pull-requests-limit capped 5/5/3 per ecosystem so the PR queue
  stays manageable against active claude/* branches

Explicit ignore — `next` / `react` / `react-dom` / `@types/react*`
MAJOR bumps:
- Tracked under issue #41 (Next 14 → 16 needs scoped breaking-change
  migration with dependency-auditor triage; bundling into a routine
  Dependabot PR would footgun the App Router async-API migration)
- Minor + patch + security updates on those packages still file
  automatically — those are safe to merge

NOT included in this PR:
- Issue #41 Next 14 → 16 migration itself (HIGH effort, needs
  dependency-auditor triage + breaking-change inventory + own session)
- Issue #137 9arm-skills vendor (BLOCKED on upstream license —
  maintainer action, not autonomous work)
- Baseline-snapshot tagging on main for Section E delta tracking
  (separate Phase 5 sub-task; not bundled here)

No compute / schema / scoring / valuation / frontend code change —
pure .github/ addition. The next Dependabot run lands the Monday
after merge. Verification: ruff clean, schema_check in sync,
yaml.safe_load() validates the config structure.

CLAUDE.md + AGENTS.md lockstep entries added. Two prior in-flight
entries (PR #184 METHODOLOGY refresh) updated to "merged".
@vercel
Copy link
Copy Markdown

vercel Bot commented May 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
quantrank Ready Ready Preview, Comment May 22, 2026 12:33am

@dackclup dackclup marked this pull request as ready for review May 22, 2026 00:36
@dackclup dackclup merged commit cfcbe40 into main May 22, 2026
4 checks passed
@dackclup dackclup deleted the claude/dependabot-config-Ph5 branch May 22, 2026 00:36
dackclup added a commit that referenced this pull request May 22, 2026
…e 5, partial #41) (#194)

Partial progress on issue #41 (Next.js 14.2 → 16 CVE refresh) via a
within-branch patch bump that closes the 8 advisories #41 originally
itemized at filing time, without breaking-change migration.

Changes:
- frontend/package.json: next 14.2.15 → 14.2.35
- frontend/package.json: eslint-config-next 14.2.15 → 14.2.35
  (lockstep with next minor; same major-pin convention)
- frontend/package.json: postcss 8.4.38 → 8.5.15 (direct devDep)
- frontend/package.json: new "overrides": { "postcss": "8.5.15" }
  (forces next's nested exact-pin postcss@8.4.31 to lift
  transitively — closes XSS advisory GHSA-qx2v-qp2m-jg93)
- frontend/package-lock.json: regenerated (147 lines, net -91
  via dedupe)

CVEs closed by this PR (8 of next's original advisories):
- GHSA-7m27-7ghc-44w9 DoS Server Actions (fix <14.2.21)
- Info exposure in dev server (fix <14.2.30)
- Cache key confusion next/image (fix <14.2.31)
- Improper middleware redirect SSRF (fix <14.2.32)
- Content injection next/image (fix <14.2.31)
- Race condition cache poisoning (fix <14.2.24)
- DoS Server Components CVSS 7.5 (fix <14.2.34)
- DoS Server Components incomplete-fix follow-up (fix <14.2.35)
- postcss XSS via </style> stringify (fix <8.5.10)

Issue #41 STAYS OPEN. 14 new `next` advisories surfaced on the
npm advisory DB between 2026-05-13 (issue filed) and 2026-05-22
(this PR), ALL requiring `<15.5.16` to fix — none have a 14.2.x
backport. All 14 target SSR / Server-Components / middleware /
runtime features QuantRank doesn't use (we ship static export
only, no SSR runtime, no middleware, no rewrites). Real
exploitability for the static-export site remains zero per #41's
own original risk rating, but `npm audit` cannot infer the
static-export posture so the advisories still surface in CI.
The remaining 14 → 16 migration (App Router async APIs +
React 18 → 19 typing + Node 20+ + eslint-config-next 16.x) is
release-tag-cleanliness, not security-critical.

Dependency-auditor verdict 2026-05-22: SAFE-TO-MERGE as a focused
patch PR. Confirmed zero breaking changes in 14.2.15 → 14.2.35
range (Next.js public changelog: 14.2.x is security-only releases;
no App Router API changes, no next.config.js renames, no static-
export pipeline changes).

Verification:
- ruff check . — clean
- python -m pytest tests/ -m "not network" -q — 1059/1059 passed
- npx tsc --noEmit — clean
- npx next build — clean, all 506 static routes generated
- npm install — lockfile regenerated without conflict
- npm audit --omit=dev — original 8 + postcss CVEs all closed

No compute / schema / scoring / valuation / Python code change —
frontend dep-bump only. CLAUDE.md + AGENTS.md lockstep entries
added; two prior in-flight entries (PR #185 dependabot config)
updated to "merged".

Co-authored-by: Claude <noreply@anthropic.com>
dackclup pushed a commit that referenced this pull request May 22, 2026
…charts/eslint-config-next majors

Durable YAML backstop after Dependabot's first wave (2026-05-22)
filed 4 major-bump PRs from the config that landed in PR #185:

- PR #190 `eslint 8.57.0 → 10.4.0` — frontend build FAILED (eslint
  9+ flat config breaks `eslint-config-next 14.2.x` legacy `.eslintrc`)
- PR #191 `typescript 5.4.5 → 6.0.3` — frontend build FAILED
  (TS6 strict-mode + new lib.dom typings surface previously-silent
  `any`-flow issues)
- PR #192 `@types/node 20.12.7 → 25.9.1` — GREEN (type-only
  metadata; pending user authorize merge)
- PR #193 `recharts 2.12.7 → 3.8.1` — frontend build FAILED
  (recharts 3 restructured chart-component API; needs touching all
  4 chart surfaces in one scoped migration)

PR #190 / #191 / #193 closed via `@dependabot ignore this major
version` comment commands. This PR adds the same 3 deps PLUS
`eslint-config-next` to `.github/dependabot.yml`'s `ignore:` block
as a durable YAML-level backstop — survives Dependabot server
resets and per-PR comment-ignore-history garbage collection.

Total npm ignore entries grow 5 → 9 (existing React-stack: `next`,
`react`, `react-dom`, `@types/react`, `@types/react-dom`; new:
`eslint`, `eslint-config-next`, `typescript`, `recharts`).

Minor + patch + security updates on ALL these packages STILL file
automatically — the ignore only blocks
`version-update:semver-major` transitions.

Issue #41 still owns the scoped breaking-change migration for the
React-stack majors. `recharts 3` would be a separate chart-library-
migration work item if/when it becomes priority (no security
advisories on 2.12.7, so cosmetic-only).

No compute / schema / scoring / valuation / Python / TypeScript /
frontend code change — `.github/` + docs lockstep only.

Also fixes a stale "in flight" → "merged" reference for PR #185 +
adds PR #194 cross-link in CLAUDE.md §Phase status.

Verification: ruff clean; YAML parses to v2 with 3 ecosystems and
9 npm ignore entries.
dackclup pushed a commit that referenced this pull request May 22, 2026
…charts/eslint-config-next majors

Durable YAML backstop after Dependabot's first wave (2026-05-22)
filed 4 major-bump PRs from the config that landed in PR #185:

- PR #190 `eslint 8.57.0 → 10.4.0` — frontend build FAILED (eslint
  9+ flat config breaks `eslint-config-next 14.2.x` legacy `.eslintrc`)
- PR #191 `typescript 5.4.5 → 6.0.3` — frontend build FAILED
  (TS6 strict-mode + new lib.dom typings surface previously-silent
  `any`-flow issues)
- PR #192 `@types/node 20.12.7 → 25.9.1` — GREEN (type-only
  metadata; pending user authorize merge)
- PR #193 `recharts 2.12.7 → 3.8.1` — frontend build FAILED
  (recharts 3 restructured chart-component API; needs touching all
  4 chart surfaces in one scoped migration)

PR #190 / #191 / #193 closed via `@dependabot ignore this major
version` comment commands. This PR adds the same 3 deps PLUS
`eslint-config-next` to `.github/dependabot.yml`'s `ignore:` block
as a durable YAML-level backstop — survives Dependabot server
resets and per-PR comment-ignore-history garbage collection.

Total npm ignore entries grow 5 → 9 (existing React-stack: `next`,
`react`, `react-dom`, `@types/react`, `@types/react-dom`; new:
`eslint`, `eslint-config-next`, `typescript`, `recharts`).

Minor + patch + security updates on ALL these packages STILL file
automatically — the ignore only blocks
`version-update:semver-major` transitions.

Issue #41 still owns the scoped breaking-change migration for the
React-stack majors. `recharts 3` would be a separate chart-library-
migration work item if/when it becomes priority (no security
advisories on 2.12.7, so cosmetic-only).

No compute / schema / scoring / valuation / Python / TypeScript /
frontend code change — `.github/` + docs lockstep only.

Also fixes a stale "in flight" → "merged" reference for PR #185 +
adds PR #194 cross-link in CLAUDE.md §Phase status.

Verification: ruff clean; YAML parses to v2 with 3 ecosystems and
9 npm ignore entries.
dackclup added a commit that referenced this pull request May 22, 2026
…charts/eslint-config-next majors (#195)

Durable YAML backstop after Dependabot's first wave (2026-05-22)
filed 4 major-bump PRs from the config that landed in PR #185:

- PR #190 `eslint 8.57.0 → 10.4.0` — frontend build FAILED (eslint
  9+ flat config breaks `eslint-config-next 14.2.x` legacy `.eslintrc`)
- PR #191 `typescript 5.4.5 → 6.0.3` — frontend build FAILED
  (TS6 strict-mode + new lib.dom typings surface previously-silent
  `any`-flow issues)
- PR #192 `@types/node 20.12.7 → 25.9.1` — GREEN (type-only
  metadata; pending user authorize merge)
- PR #193 `recharts 2.12.7 → 3.8.1` — frontend build FAILED
  (recharts 3 restructured chart-component API; needs touching all
  4 chart surfaces in one scoped migration)

PR #190 / #191 / #193 closed via `@dependabot ignore this major
version` comment commands. This PR adds the same 3 deps PLUS
`eslint-config-next` to `.github/dependabot.yml`'s `ignore:` block
as a durable YAML-level backstop — survives Dependabot server
resets and per-PR comment-ignore-history garbage collection.

Total npm ignore entries grow 5 → 9 (existing React-stack: `next`,
`react`, `react-dom`, `@types/react`, `@types/react-dom`; new:
`eslint`, `eslint-config-next`, `typescript`, `recharts`).

Minor + patch + security updates on ALL these packages STILL file
automatically — the ignore only blocks
`version-update:semver-major` transitions.

Issue #41 still owns the scoped breaking-change migration for the
React-stack majors. `recharts 3` would be a separate chart-library-
migration work item if/when it becomes priority (no security
advisories on 2.12.7, so cosmetic-only).

No compute / schema / scoring / valuation / Python / TypeScript /
frontend code change — `.github/` + docs lockstep only.

Also fixes a stale "in flight" → "merged" reference for PR #185 +
adds PR #194 cross-link in CLAUDE.md §Phase status.

Verification: ruff clean; YAML parses to v2 with 3 ecosystems and
9 npm ignore entries.

Co-authored-by: Claude <noreply@anthropic.com>
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