chore(deps): batch 14 bumps and make Dependabot grouping catch-all - #400
Merged
Conversation
The third ~20-PR wave in one morning. Root cause is the grouping config, not Dependabot: `groups` was an allowlist of ~11 named families, so every package outside it arrived as its own PR. This wave was 14 PRs for 14 ungrouped packages — four separate @opentelemetry/* ones, `knip` once per app, plus react-i18next, wrangler, tsx, @vitejs/plugin-react, @types/node, lint-staged, fs-extra and @changesets/cli. apps/docs, github-actions, all three docker blocks and terraform had no groups whatsoever. Replaces the named groups with catch-all `patterns: ["*"]` groups split by dependency-type across all eight ecosystems, so a week lands at most two PRs per app (runtime deps separate from tooling) instead of ~20, and the config needs no upkeep as dependencies are added. Majors stay ignored exactly as before. knip 6.32.0 tightened unused-re-export detection and caught a true positive: apps/ui's api/client.ts re-exported `paths` and `components` from ./schema, but `paths` is imported straight from "./schema" at its one use site and `components` is unused entirely. Narrowed the barrel to `operations`, which is the only one consumed through it.
This was referenced Aug 14, 2026
Closed
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.
Summary
groupswas an allowlist, so every package outside ~11 named families got its own PR. Now catch-all across all eight ecosystems.Closes #386, #387, #388, #389, #390, #391, #392, #393, #394, #395, #396, #397, #398, #399
Why 14 PRs appeared
Not a Dependabot bug — the config.
groupsnamed ~11 families (elysia,drizzle,bullmq,email,lint,observability,ai,react,tanstack,testing,storybook,tailwind-shadcn) and everything else fell through individually:@opentelemetry/*×4observabilitycovers@sentry/*andpino— not otelknip×2react-i18nextreactgroup is only react/react-dom/types/routerwranglergroupsblock at alltsx,@vitejs/plugin-react,@types/node,lint-staged,fs-extra,@changesets/cli14 PRs for 14 ungrouped packages.
github-actions, all threedockerblocks andterraformhad no groups either, so every action and image bump was its own PR too. The allowlist approach is whack-a-mole: the tail regrows with every new dependency.The fix
Replaces named groups with catch-all
patterns: ["*"]split bydependency-type:Applied to all three bun ecosystems, plus a single
"*"group forgithub-actions, the threedockerblocks andterraform(wheredependency-typedoesn't apply).Effect: at most two PRs per app per week instead of ~20 — runtime deps kept separate from tooling so review risk stays distinguishable — and nothing to maintain as dependencies are added. All existing major-ignores are untouched.
One consequence worth knowing: React's pins now split across sibling PRs, since
react/react-dom/react-router-domare production while@types/react/@types/react-domare development. Theoverridesentries mirroring them must still move in lockstep;package-override-paritycatches it if they drift. Noted in a comment on the block.knip 6.32.0 — true positive
apps/ui/src/lib/api/client.tsre-exportedpaths,componentsandoperationsfrom./schema. knip 6.32 tightened unused-re-export detection and flagged the first two. It's right:pathsis imported straight from@/lib/api/schemaat its one use site (AuditLog.types.ts), never through this barrelcomponentsisn't referenced anywhereoperationsis consumed via the barrel in ~8 feature type modulesNarrowed the re-export to
operations.Test plan
Full local verification, smoke stack booted by the gate:
cd apps/api && bun run check— typecheck, lint, lint:meta, knip cleancd apps/api && bun test— 1192 pass, 1 skip, 0 failcd apps/ui && bun run check— lint, lint:meta, format, typecheck, knip cleancd apps/ui && bun run test:ci— 656 pass across 152 filescd apps/ui && bun run build && size:check && size:check:modulepreload— all budgets pass, 13 preload assets coveredcd apps/docs && bun run build:ci— plus fragments, rendered-markdown, docs-data, components, scripts-docs, lint-meta-docsosv-scannerclean in all three appsDependabot config changes can't be validated by CI — they only take effect on the next scheduled run. Expect the next wave as ~2–3 grouped PRs rather than ~20; if the grouping is wrong it shows up as PR volume, not a broken build.
Conventions
any/as/!Screenshots
Not applicable — no UI behavior change.