chore(deps): drop the security overrides that upstream has made redundant - #152
Merged
Conversation
…dant #149 was meant to do this but landed as a no-op for the overrides. It was branched from #143, so GitHub squashed both against main and the removal cancelled out the addition in the same commit; only the comment changes survived, and the lockfile was left untouched. This redoes it from main. Eleven of the twelve overrides no longer change anything. Upstream ranges have widened -- postcss `^8.5.13`, esbuild `^0.27.0 || ^0.28.0`, picomatch `^3 || ^4`, vite `^6 || ^7 || ^8` -- so ordinary caret resolution now reaches the patched releases on its own. Removing them and re-resolving produces identical versions for every one: postcss 8.5.26, nanoid 3.3.18, js-yaml 4.3.1, svgo 4.0.2, vite 8.2.2, qs 6.15.3, defu 6.1.7, picomatch 2.3.2 + 4.0.5, esbuild 0.25.12 + 0.28.2, and smol-toml 1.8.0 -- the last already ahead of the `^1.6.1` it pinned. Keeping them would be worse than redundant: a stale override caps a dependency at whatever was current when it was written, so it eventually holds the tree back from a later patch while hiding that behind a green audit. `rollup-plugin-dts>typescript` stays, because it is still load-bearing. Removing it lets that subtree resolve its own typescript peer to 7.0.2, and the build fails in dts bundling: TypeError: Cannot read properties of undefined (reading 'useCaseSensitiveFileNames') The catalog's `typescript: ^6.0.3` does not prevent this -- it constrains the workspace's direct dependency, not the transitive peer. This was verified by removing the override and building, not assumed. Its comment now records what would make it removable: unbuild asks for `rollup-plugin-dts: ^6.2.1`, and 6.5.0 added a fallback to `@typescript/typescript6` for API-less typescript, but pnpm 10 resolves that range to 6.3.0. Each of the 24 advisories was re-checked against the resolved versions in the regenerated lockfile rather than trusting `pnpm audit` alone; none falls inside its vulnerable range. esbuild 0.25.12 remains via unbuild, outside the affected `>=0.27.3 <0.28.1` window. Verified with install --frozen-lockfile, typecheck, build --force (CLI + 105 docs pages, internal links valid), format:check and audit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Coverage Report
File CoverageNo changed files found. |
This was referenced Aug 25, 2026
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.
Redo of #149, which landed as a no-op for the overrides.
What went wrong with #149
It was branched from #143, so when GitHub squashed the whole branch against
main, the override removal cancelled out #143's override addition inside the same commit. Only the comment changes survived, andpnpm-lock.yamlwas never updated. My mistake — a stacked PR needs its parent merged before the squash, or the base must be the parent branch at merge time.mainis fine and self-consistent: manifest and lockfile match,--frozen-lockfileinstalls,pnpm auditis clean, all 24 alerts stay closed. Nothing is broken; the cleanup just didn't happen. This branches from currentmainand does it properly.What changes
Eleven of twelve overrides removed. Upstream ranges have widened (
postcss ^8.5.13,esbuild ^0.27.0 || ^0.28.0,picomatch ^3 || ^4,vite ^6 || ^7 || ^8), so caret resolution reaches the patched releases unaided. Re-resolving gives identical versions for every one:postcss8.5.26 ·nanoid3.3.18 ·js-yaml4.3.1 ·svgo4.0.2 ·vite8.2.2 ·qs6.15.3 ·defu6.1.7 ·picomatch2.3.2 + 4.0.5 ·esbuild0.25.12 + 0.28.2 ·smol-toml1.8.0 (already ahead of the^1.6.1it pinned)One override stays, and it earns its place
rollup-plugin-dts>typescript: ^6.0.3is still load-bearing. I removed it, and the build broke:The catalog's
typescript: ^6.0.3does not cover this — it constrains the workspace's direct dependency, whilerollup-plugin-dtsresolves its owntypescriptpeer to 7.0.2, which ships no JS compiler API. Confirmed in the lockfile: with the override, the pairing isrollup-plugin-dts@6.3.0(typescript@6.0.3).Worth noting this class of failure is invisible to
pnpm testandpnpm typecheck— both stay green. Onlypnpm buildcatches it.Its comment now records the removal condition:
unbuildasks forrollup-plugin-dts: ^6.2.1, and 6.5.0 added a fallback to@typescript/typescript6, but pnpm 10 resolves that range to 6.3.0.Verification
pnpm install --frozen-lockfile— cleanpnpm typecheck— 5/5pnpm build --force— CLI + docs, 105 pages, internal links valid, 0 cachedpnpm format:check— cleanpnpm audit— no known vulnerabilitiespnpm auditalone: 0 vulnerablepnpm test— 780/781 locally; the one failure isdefaults to port 5033(EADDRINUSE, an unrelated dev server on my machine holds that port). It fails identically on unmodifiedmain. CI will confirm. Test count is 781/117 rather than 767/116 because #150 and #151 landed in the meantime.Unrelated pre-existing issue spotted
A freshly built CLI exits 13 on
--versionwithDetected unsettled top-level awaitatdist/index.mjs(await program.addCommands(loadCommands())). This reproduces identically on unmodifiedmain, so it is not from this change and not addressed here — but it looks worth its own issue, since it affects the shipped binary.🤖 Generated with Claude Code