Skip to content

deps(apps/web): bump postcss ^8.5.15 -> ^8.5.23 (6/6, fills gap after #103) - #107

Open
martyy-code wants to merge 2 commits into
stagingfrom
fix/dep-postcss-direct
Open

martyy-code wants to merge 2 commits into
stagingfrom
fix/dep-postcss-direct

Conversation

@martyy-code

Copy link
Copy Markdown
Contributor

Follow-up to #103. Bumps the direct postcss range in apps/web/package.json from ^8.5.15 to ^8.5.23. pnpm-lock.yaml now resolves postcss to 8.5.29.

The previous PR transitively lifted postcss in some dep chains, but the direct range floor at 8.5.15 kept the wider graph pinned there. Raising the direct range clears the remaining 10 postcss Dependabot alerts (4 distinct GHSAs).

Validated locally:

  • pnpm install --no-frozen-lockfile (postinstall passes)
  • pnpm build (turbo: 2 successful)
  • pnpm --filter errors test (146/146)

Note: apps/web/package-lock.json is not regenerated here (pnpm install does not write it; it is a historical artifact requiring a different workflow). Follow-up noted in PR #105.

The direct postcss range in apps/web/package.json was ^8.5.15, which
kept pnpm's resolver at 8.5.15 for the wider dep graph even after
PR #103 transitively bumped postcss in some sub-trees. Bumping the
direct range to ^8.5.23 lifts resolution to 8.5.29 and clears all
10 postcss Dependabot alerts (4 distinct GHSAs).

- apps/web/package.json: postcss ^8.5.15 -> ^8.5.23
- pnpm-lock.yaml: regenerated, postcss resolves to 8.5.29

Validated locally:
- pnpm install --no-frozen-lockfile
- pnpm build (turbo: 2 successful)
- pnpm --filter errors test (146/146)

apps/web/package-lock.json is not regenerated here; it is a
historical artifact and requires clearing apps/web/node_modules
first to avoid pnpm/npm cross-tooling breakage. Documented as
follow-up in PR #105.
@vercel

vercel Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
deessejs-errors-documentation Error Error Oct 12, 2026 8:48am UTC

@martyy-code

Copy link
Copy Markdown
Contributor Author

This PR (#107) is the 5th in the bulk-fix series. It raises the direct postcss range in apps/web/package.json from ^8.5.15 to ^8.5.23, which lifts pnpm's resolution to 8.5.29 and clears the 4 distinct postcss GHSAs that #103 (vitest + tailwindcss) could not close because of the direct range floor.

Series recap (open PRs):

Closed: #104 (sprintf-js dismiss without code change; the v1 override was cosmetic, dismissal is the right call).

To come: #106 cherry-pick staging -> main after the above five land, so Dependabot re-scans main and the alert count drops.

@martyy-code

Copy link
Copy Markdown
Contributor Author

CI note: the failing Vercel check is unrelated to this PR. Root cause is a vercel.json drift between main and staging (PR #100 fixed the outputDirectory on main but it never propagated to staging). The changeset-check GitHub Actions job (the only CI gate defined in ci.yml for PRs to staging) passes. No code change needed in this PR to address Vercel — the issue resolves itself once staging catches up with main's vercel.json.

@martyy-code

Copy link
Copy Markdown
Contributor Author

Reviewing the rationale: my prior "binding constraint" wording in #103 / here is wrong on the mechanism. The semver caret ^8.5.15 already permits 8.5.29 (any 8.5.x >= 8.5.15). There was no peer-dependency forcing the resolution to stay at 8.5.15.

The real reason postcss stayed at 8.5.15 in the transitive graph was that pnpm-lock.yaml was a stale snapshot. The lockfile still had postcss@8.4.31 (hoisted by next@16.x.x itself) and postcss@8.5.15 (the direct range) because nobody had re-resolved since the original commit. pnpm install --no-frozen-lockfile in this PR regenerated the snapshot, pnpm picked the highest satisfying version (8.5.29), and that cleared the 4 GHSAs.

This matters because it means a fresh pnpm install on the previous lockfile (or anyone bumping ^8.5.15 to a wider range) would have also cleared the alerts — we did not need to wait on a peer constraint to be relaxed. The minimum-action fix would have been a no-version-bump lockfile regen.

Two concrete corrections to the rest of the series:

Net effect on the alert count is the same: postcss alerts clear once pnpm-lock.yaml resolves to a patched version. PR #107 still ships that resolution; it just wasn't a peer-dependency problem in the first place.

The previous wording said the direct `^8.5.15` range was the binding
constraint. That was wrong: caret semver already permits 8.5.29, and no
peer dependency was blocking the resolution. The real reason the
lockfile still pinned vulnerable postcss versions was that it was a
stale snapshot from the original commit; pnpm re-uses locked versions
until the lockfile is regenerated. The regen alone would have cleared
the alerts; this PR additionally raises the direct range to make the
manifest explicit. Also drops the outdated follow-up note that pointed
at PR #105, since PR #110 is the real cleanup for the npm lockfile.

This branch had an error being deployed

1 failed deployment
Preview — d1bd6591 Deployed Oct 12, 2026 by vercel[bot]
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