8000 build(deps): close the frontend's open security alerts by adeelahmad · Pull Request #300 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

build(deps): close the frontend's open security alerts - #300

Merged
adeelahmad merged 1 commit into
mainfrom
claude/project-thread-ekjzsg
Oct 10, 2026
Merged

adeelahmad merged 1 commit into
mainfrom
claude/project-thread-ekjzsg

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Description

Before: pnpm audit in nextjs-frontend reported 8 advisories (2 critical, 1 high, 4 moderate, 1 low), the open Dependabot alerts. The backend (pip-audit, PyPI and OSV), the web clipper (npm audit) and the GitHub Actions in use had none.

After: one is left, braces (GHSA-vfj7-8cjw-p6xm), which has no fixed release.

How: pnpm overrides in pnpm-workspace.yaml, like #41.

Package Advisory Was Now Via
handlebars GHSA-8r5x-fm3f-whwj, GHSA-p8wg-vrv2-v86f (critical), GHSA-xw65-4hp5-5hc7 4.7.9 4.7.10 ts-jest
file-type GHSA-5v7r-6r5c-r473 19.6.0 21.3.4 BlockSuite store
postcss-selector-parser GHSA-rj75-hqrm-r3gf 6.1.4 7.1.6 Tailwind 3
katex GHSA-238p-pmpm-9mq7 (low) 0.16.47 0.18.10 BlockSuite
sprintf-js GHSA-hp3w-g68c-fv3c (no fixed release) 1.0.3 removed jest → js-yaml 3 → argparse 1

Three of these needed a newer major than the parent asks for, so each was checked against what the parent calls:

  • postcss-selector-parser 7: its only breaking change is safe insertion during iteration. Tailwind's compiled app/globals.css is byte-identical before and after (98,285 bytes).
  • katex 0.18: BlockSuite renders with output: 'mathml'. The MathML for five sample equations (fractions, roots, sums, matrices, integrals) is identical between 0.16.47 and 0.18.10. The 0.18 CSS class prefixing doesn't touch MathML output.
  • file-type 21: BlockSuite calls fileTypeFromBuffer, which 21 still exports from both its node and browser entries. It detects a PNG header correctly.
  • sprintf-js: js-yaml 3 needs argparse only for its own js-yaml command line, which nothing runs. The override "js-yaml@^3>argparse": "-" drops it. js-yaml 3 still loads, and pnpm coverage (which loads the nyc config through it) passes.

Left open: braces ≤ 3.0.3 (GHSA-vfj7-8cjw-p6xm, stack exhaustion from deeply nested brace patterns). There's no fixed release (upstream issue micromatch/braces#70). It comes in through Tailwind 3 (chokidar, fast-glob, micromatch) and @next/eslint-plugin-next, which pins fast-glob 3.3.1 even on canary. Both are build-time only and expand glob patterns from our own config, never user input. Dependabot will raise the fix once braces ships one.

Motivation and Context

Open Dependabot security alerts.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change; ! in the title)

Checklist:

  • The title is a Conventional Commit.
  • My code follows the code style of this project (make hooks checks it on commit).
  • I added or updated tests. n/a: dependency floors only; the existing suite (95 suites, 734 tests), coverage, lint, tsc and build cover them.
  • My change requires documentation updates. n/a: no behaviour or configuration change.
  • CHANGELOG. n/a: the build(deps) title lists it under Dependencies.

Done questions (AGENTS.md)

  • Goal: closes 7 of the 8 open frontend advisories. braces has no fix anywhere yet. Merges on green CI.
  • Agents: n/a, no user-facing feature.
  • Zero setup: no new prerequisite, .env edit or manual step.
  • Fewest clicks: n/a.
  • Configurable: n/a, no new setting.
  • Light: no new packages. sprintf-js and argparse 1 are gone.
  • Private and secure: closes DoS and code-injection advisories. No new attack surface.
  • Cost: n/a, no model calls.
  • User decides: no defaults changed.
  • Upgrades: n/a, no stored data touched.
  • Honest: the PR states what's left open and why.
  • Tests, docs and generated files: lockfile regenerated with pnpm install. lint, tsc, jest and coverage pass locally.
  • Open: same MIT-licensed packages, newer versions.
  • Result reported with evidence. Refine later: drop the braces path when braces ships a fix, or when Tailwind 4 and a fast-glob-free eslint-plugin-next land.

🤖 Generated with Claude Code

https://claude.ai/code/session_017H7VU5LssSNh2wspwR3qik


Generated by Claude Code

Raise pnpm overrides for handlebars (4.7.10), file-type (21.3.1), katex (0.18.2) and
postcss-selector-parser (7.1.6), and leave argparse out of js-yaml 3, which needs it only for its
own command line, so sprintf-js (no fixed release) is gone. The three new majors keep the API their
parents call: Tailwind's CSS is byte-identical, KaTeX's MathML output is unchanged and file-type
still detects from a buffer.

braces (GHSA-vfj7-8cjw-p6xm) has no fixed release and stays, through Tailwind 3 and
eslint-config-next.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017H7VU5LssSNh2wspwR3qik
@adeelahmad adeelahmad self-assigned this Oct 10, 2026
@adeelahmad
adeelahmad merged commit c24cd0e into main Oct 10, 2026
12 checks passed
@adeelahmad
adeelahmad deleted the claude/project-thread-ekjzsg branch October 10, 2026 21:04
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

0