Skip to content

fix: resolve test-app dependabot alerts#649

Merged
thymikee merged 2 commits into
mainfrom
worktree-fix-test-app-dependabot
Jun 1, 2026
Merged

fix: resolve test-app dependabot alerts#649
thymikee merged 2 commits into
mainfrom
worktree-fix-test-app-dependabot

Conversation

@thymikee
Copy link
Copy Markdown
Member

@thymikee thymikee commented Jun 1, 2026

Summary

Resolves all 4 open Dependabot alerts, all transitive deps in examples/test-app/pnpm-lock.yaml.

The postcss/uuid overrides added in #464 had stopped applying: once test-app ended up nested under the repo-root pnpm-workspace.yaml, pnpm only honored overrides from a workspace root, so test-app's package.json pnpm.overrides were silently ignored and the lockfile drifted back to vulnerable versions.

Fix

  • Move overrides into a dedicated examples/test-app/pnpm-workspace.yaml so test-app is its own pnpm root and the overrides are actually honored (the canonical location in pnpm 10+).
  • Remove the now-dead pnpm field from package.json (single source of truth).
  • Add scoped overrides for the two remaining alerts.
Package Before After Advisory
postcss 8.4.49 8.5.12 XSS in CSS stringify
uuid 7.0.3 14.0.0 missing buffer bounds check
ws@8 8.20.0 8.21.0 uninitialized memory disclosure
brace-expansion@5 5.0.5 5.0.6 ReDoS / max bypass

ws and brace-expansion overrides are scoped to the vulnerable majors (ws@8, brace-expansion@5) so the non-vulnerable ws@7 / brace-expansion@1 copies elsewhere in the tree are left untouched.

Notes

  • Lockfile regenerated and verified clean of all 4 vulnerable versions; the re-resolve is idempotent (byte-identical on a second run).
  • Only semver-major bump is uuid 7→14 (forced by the existing override, used by xcode). API-compatible — uuid.v1()/v4() named exports work via require across v7→v14.

The postcss/uuid overrides added in #464 stopped applying once test-app
ended up nested under the repo-root pnpm-workspace.yaml: pnpm only honors
overrides from a workspace root, so test-app's package.json `pnpm.overrides`
were silently ignored and the lockfile drifted back to vulnerable versions.

Move the overrides into a dedicated examples/test-app/pnpm-workspace.yaml so
test-app is its own pnpm root and the overrides are honored, and add scoped
overrides for the two remaining alerts:

- postcss   8.4.49 -> 8.5.12  (XSS in CSS stringify)
- uuid      7.0.3  -> 14.0.0  (missing buffer bounds check)
- ws@8      8.20.0 -> 8.21.0  (uninitialized memory disclosure)
- brace-expansion@5  5.0.5 -> 5.0.6  (ReDoS / max bypass)

ws and brace-expansion overrides are scoped to the vulnerable majors so the
non-vulnerable ws@7 / brace-expansion@1 copies in the tree are left untouched.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

Size Report

Metric Base Current Diff
JS raw 1.1 MB 1.1 MB +18 B
JS gzip 360.9 kB 360.9 kB +12 B
npm tarball 461.7 kB 461.7 kB -29 B
npm unpacked 1.5 MB 1.5 MB -52 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 27.7 ms 27.7 ms -0.0 ms
CLI --help 43.2 ms 43.4 ms +0.2 ms

Top changed chunks:

Chunk Raw diff Gzip diff
dist/src/session.js +18 B +12 B

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f729f436f7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -0,0 +1,6 @@
overrides:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep overrides reachable for documented installs

The documented install paths still run pnpm install --dir examples/test-app --ignore-workspace from the root script and pnpm install --ignore-workspace in examples/test-app/README.md; --ignore-workspace makes pnpm behave as if no pnpm-workspace.yaml exists, so these newly moved overrides are not applied on the normal setup path. After a contributor runs the documented install, pnpm can either rewrite the lockfile back without the security overrides or report the lockfile overrides/config as mismatched, which defeats the Dependabot-alert fix this commit is trying to make durable.

Useful? React with 👍 / 👎.

- Remove the no-op `lodash-es` override from the root package.json (leftover
  from #368). lodash-es is no longer in the dependency tree, so the override
  resolved to nothing; regenerating the root lockfile is a no-op.
- Add a comment to examples/test-app/pnpm-workspace.yaml explaining why the
  file exists, so it isn't "tidied away" and the override drift reintroduced.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-01 17:32 UTC

@thymikee thymikee merged commit 9e65372 into main Jun 1, 2026
19 checks passed
@thymikee thymikee deleted the worktree-fix-test-app-dependabot branch June 1, 2026 17:32
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