Skip to content

fix: replace lerna with turbo and clear all advisories with zero overrides - #647

Merged
aversini merged 2 commits into
mainfrom
fix_patch_all_26_open_security_advisories_in_dependencies
Aug 13, 2026
Merged

aversini merged 2 commits into
mainfrom
fix_patch_all_26_open_security_advisories_in_dependencies

Conversation

@aversini

Copy link
Copy Markdown
Collaborator

Refreshes transitive dependencies and adds a scoped security override block, clearing every open Dependabot alert on this repo (26 → 0).

Overrides added

Each exists because a parent holds the vulnerable version and a plain refresh cannot move it. Every parent was verified against this repo's own lockfile:

Package Stuck at Held by
brace-expansion 5.0.8 nx@23.1.1
js-yaml 4.3.0 lerna@10.0.0 — declares it as an exact version
postcss 8.5.16 vite@8.1.0 — its ^8.5.15 range already allows the fix
tar 7.5.20 lerna@10.0.0 — declares it as an exact version
undici 7.28.0 jsdom@29.1.1

The postcss override also lifts nanoid: nanoid 3.3.15 was pulled in by the old postcss, so no separate pin is needed.

Unlike the sibling repos there is no leftover esbuild advisory here, so this one reaches zero.

Note for future refreshes

A plain pnpm install only satisfies existing ranges and will not move transitives forward — reproducing a lockfile from scratch brings every alert back. The periodic security refresh has to be pnpm update.

Verification

Check Result
pnpm build clean (14 tasks)
pnpm test 558 passed across 27 files, 0 failures
pnpm lint clean

🤖 Generated with Claude Code

https://claude.ai/code/session_01PEemn4mVaZJjT9xShw2Mij

aversini and others added 2 commits August 13, 2026 15:55
Refreshes transitive dependencies and adds a scoped security override block,
clearing every open Dependabot alert on this repo.

Five overrides added, each because a parent holds the vulnerable version and a
plain refresh cannot move it — every parent verified against this repo's own
lockfile:

  brace-expansion 5.0.8 <- nx@23.1.1
  js-yaml 4.3.0        <- lerna@10.0.0 (declares it as an EXACT version)
  postcss 8.5.16       <- vite@8.1.0 (range ^8.5.15 already allows the fix)
  tar 7.5.20           <- lerna@10.0.0 (declares it as an EXACT version)
  undici 7.28.0        <- jsdom@29.1.1

The postcss override also lifts nanoid: nanoid 3.3.15 was pulled in by the old
postcss, so no separate pin is needed.

Unlike the sibling repos there is no leftover esbuild advisory here, so this
one reaches zero.

Note for future refreshes: a plain `pnpm install` only satisfies existing
ranges and will not move transitives forward. The refresh has to be
`pnpm update`.

Verified: build clean (14 tasks), 558 tests passed across 27 files, lint clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PEemn4mVaZJjT9xShw2Mij
Reaches zero open advisories with zero overrides, by removing the tools that
were dragging in the vulnerable transitives rather than pinning around them.

Every override this repo carried traced back to something it did not need:

  brace-expansion  <- nx        (nx is never declared; it rides in with lerna)
  js-yaml, tar     <- lerna@10.0.0, which declares them as EXACT versions
  undici           <- a phantom jsdom
  postcss, nanoid  <- stale resolution, already fixed by the refresh

lerna was only a task runner here (`lerna run build|lint|test|...`). turbo
already does that job in sassysaint, clubroad, episodia and ui-components, and
those repos need none of these overrides -- turbo brings no equivalent baggage.
So: turbo.json added, root scripts and all three workflows moved to
`pnpm turbo run`, lerna.json deleted, lerna dropped from devDependencies.

The publish step becomes `pnpm publish -r --no-git-checks`. That is equivalent
to `lerna publish from-package --no-private`: pnpm skips private packages and
any version already on the registry, and every published package here already
declares publishConfig.access=public, so no --access flag is needed.

`autoInstallPeers: false` stops the phantom jsdom. vitest declares jsdom as an
OPTIONAL peer; this suite runs on happy-dom and nothing in the repo imports
jsdom, so installing it only added a vulnerable undici. Install reports no peer
warnings afterwards.

Net effect: 907 resolved packages -> 559, and the overrides block is gone
entirely, replaced by a comment recording why it must not come back. An
override is invisible maintenance -- two in sassysaint had gone stale and were
blocking the very fixes they were added for.

Verified: build exit 0, 558 tests passed (unchanged), lint exit 0, and the
lockfile contains no lerna, no nx and no jsdom.

NOT verified locally: the CI publish path. `pnpm publish -r` is argued
equivalent above but has not been exercised against the registry; worth
watching the first release closely.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PEemn4mVaZJjT9xShw2Mij
@aversini aversini changed the title fix: patch all 26 open security advisories in dependencies fix: replace lerna with turbo and clear all advisories with zero overrides Aug 13, 2026
@aversini
aversini merged commit ca7baea into main Aug 13, 2026
5 checks passed
@aversini
aversini deleted the fix_patch_all_26_open_security_advisories_in_dependencies branch August 13, 2026 22:05
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.

1 participant