Skip to content

chore(ci): update pnpm and node#77

Merged
coryrylan merged 1 commit intomainfrom
topic-upgrade-pnpm
May 8, 2026
Merged

chore(ci): update pnpm and node#77
coryrylan merged 1 commit intomainfrom
topic-upgrade-pnpm

Conversation

@coryrylan
Copy link
Copy Markdown
Collaborator

@coryrylan coryrylan commented May 7, 2026

Summary by CodeRabbit

  • Chores

    • Require Node.js 26.1.0; upgrade pnpm to 11.0.8 and Corepack to 0.34.7
    • CI workflow: pin package manager tooling and adjust Node/Playwright install steps
    • Update workspace/catalog dependency pins and overrides; assorted dependency bumps across packages
    • Adjust build/start scripts for direct Node execution; bump cssnano and other tooling deps
  • Documentation

    • Update setup, troubleshooting, and NOTICE docs to match new toolchain and dependency versions

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 7, 2026

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR upgrades Node to 26.1.0, pnpm to 11.0.8 (adds structured devEngines entry), bumps Corepack to 0.34.7, pins pnpm/action-setup in workflows to a commit SHA, updates pnpm-workspace catalog/overrides and allowBuilds, and applies related docs, NOTICE, eslint, and build-script dependency/version changes.

Changes

Toolchain Version Upgrade

Layer / File(s) Summary
Root Package Configuration
package.json
engines.node26.1.0; packageManagerpnpm@11.0.8; added devEngines.packageManager; extended knip file exclusions; adjusted wireit.playwright command.
Workspace Dependency Configuration
pnpm-workspace.yaml
Added overrides mapping (archiver>glob, eslint → catalog:), replaced onlyBuiltDependencies with allowBuilds, updated many catalog: pins and minimumReleaseAgeExclude.
CI Workflows
.github/workflows/ci.yml
ci, lighthouse, and release jobs pin pnpm/action-setup to a commit SHA with version: 11.0.8; ci and lighthouse Playwright Chromium install steps expanded to multi-command scripts that log runner storage/cache before/after install and emit failure diagnostics.
Docker CI Image
config/docker/ci.dockerfile
Upgraded Corepack to 0.34.7; Dockerfile reads pnpm version from package.json devEngines and runs corepack prepare "pnpm@${PNPM_VERSION}" --activate.
Environment Version Pins
.nvmrc
Pinned Node version updated to 26.1.0.
Tooling Hook
.husky/commit-msg
Switched commitlint invocation to pnpm exec commitlint --edit "$1" (replaced npx usage and quoted arg).
Documentation & Setup Guidance
README.md, AGENTS.md, projects/site/src/docs/...
Updated setup commands and examples to reference Node 26.1.0, pnpm 11.0.8, and Corepack 0.34.7.
Notices & Bundled Attribution
NOTICE.md, projects/cli/NOTICE.md, projects/lint/NOTICE.md
Bumped several bundled dependency versions and updated corresponding license attribution lists.
CLI Project Packages
projects/cli/package.json
Bumped @inquirer/prompts, marked, ora; bumped bun devDependency.
ESLint HTML Configs
projects/internals/eslint/src/configs/*.js
Disabled html/no-extra-spacing-tags (html config) and added disablement for html/no-extra-spacing-tags in lit config (retaining html/no-extra-spacing-attrs).
Monaco Build Scripts
projects/monaco/package.json
Wireit build commands updated to run build entrypoints with node ./build/*.ts (removed experimental flag).
Starters & Styles
projects/starters/nuxt/package.json, projects/styles/package.json
Nuxt starter runtime and dev deps bumped; styles package bumps cssnano devDependency.

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the primary changes: updating Node.js from 24.12.0 to 26.1.0 and pnpm from 10.27.0 to 11.0.8 across CI configuration and dependency declarations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch topic-upgrade-pnpm

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@package.json`:
- Around line 10-15: Add a top-level packageManager field to package.json with
the exact value "pnpm@11.0.8" (in addition to the existing
devEngines.packageManager block) so Corepack/pnpm enforcement is satisfied;
locate the package.json root object and insert "packageManager": "pnpm@11.0.8"
alongside the existing devEngines configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: d3f504d0-5b2a-4ee6-b833-af37425d0980

📥 Commits

Reviewing files that changed from the base of the PR and between 1d039cd and 7e1660f.

📒 Files selected for processing (9)
  • .github/workflows/ci.yml
  • .husky/commit-msg
  • .nvmrc
  • AGENTS.md
  • README.md
  • config/docker/ci.dockerfile
  • package.json
  • pnpm-workspace.yaml
  • projects/site/src/docs/internal/guidelines/troubleshooting.md

Comment thread package.json
@coryrylan coryrylan force-pushed the topic-upgrade-pnpm branch from 7e1660f to 135a0f9 Compare May 8, 2026 14:54
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pnpm-workspace.yaml (1)

2-3: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Duplicate package entry: projects/code listed twice.

projects/code appears at both line 2 and line 23 in the packages list. This is likely unintentional and should be deduplicated.

🛠️ Proposed fix
 packages:
-  - projects/code
   - projects/starters

Remove the first occurrence at line 2, keeping only the entry at line 23 where it appears in alphabetical context with other lab projects.

Also applies to: 23-23

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pnpm-workspace.yaml` around lines 2 - 3, The packages list contains a
duplicate entry "projects/code"; remove the first occurrence of projects/code
from the packages array (leaving the later, alphabetically-placed projects/code
entry intact) so the packages list no longer contains duplicate "projects/code"
entries.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@pnpm-workspace.yaml`:
- Around line 2-3: The packages list contains a duplicate entry "projects/code";
remove the first occurrence of projects/code from the packages array (leaving
the later, alphabetically-placed projects/code entry intact) so the packages
list no longer contains duplicate "projects/code" entries.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 88d2ab8d-aaf6-4b3c-8862-ccd6b10234b1

📥 Commits

Reviewing files that changed from the base of the PR and between 7e1660f and 135a0f9.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • .github/workflows/ci.yml
  • .husky/commit-msg
  • .nvmrc
  • AGENTS.md
  • NOTICE.md
  • README.md
  • config/docker/ci.dockerfile
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/package.json
  • projects/internals/eslint/src/configs/html.js
  • projects/internals/eslint/src/configs/lit.js
  • projects/lint/NOTICE.md
  • projects/monaco/package.json
  • projects/site/src/docs/internal/guidelines/troubleshooting.md
  • projects/starters/nuxt/package.json
  • projects/styles/package.json

@coryrylan coryrylan force-pushed the topic-upgrade-pnpm branch 2 times, most recently from e6f9d7e to ca06517 Compare May 8, 2026 15:40
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
projects/cli/package.json (1)

43-62: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Review verified: dependency versions are available, with caveat on bun@1.3.13.

Three of four dependencies are confirmed available on npm: @inquirer/prompts@8.4.2 (published Apr 19, 2026), marked@18.0.3 (latest as of May 1, 2026), and ora@9.4.0 (published Apr 22, 2026). However, bun@1.3.13 was released officially (Apr 20, 2026) but the npm registry currently shows 1.3.11 as the latest version due to delays in publishing the binary. Installation may require explicit version pinning or use of alternative install methods (e.g., bun upgrade from the Bun runtime itself).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/cli/package.json` around lines 43 - 62, The devDependencies entry
"bun": "1.3.13" in package.json may not be available via npm (registry shows
1.3.11); change the "bun" version in the devDependencies block to a published
version (e.g., "1.3.11") or use a range like ">=1.3.11" to avoid install
failures, and add a short note (README or package.json comment) that users can
obtain 1.3.13 via the Bun runtime (`bun upgrade`) if they need that exact
release; update the "bun" key in package.json accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 29-48: The "Install Playwright Chromium" GitHub Actions step (the
step named "Install Playwright Chromium" that runs "pnpm exec playwright install
--with-deps chromium") needs an explicit timeout to prevent hung jobs; add a
timeout-minutes value (e.g. timeout-minutes: 15) to this step and to the other
Playwright install step(s) that run the same commands later (the similar step
block around the other Playwright install) so package-manager/network installs
are bounded; keep the rest of the step body unchanged.

In `@projects/internals/eslint/src/configs/lit.js`:
- Around line 118-119: The config contains a non-existent rule
'html/no-extra-spacing-tags' which causes ESLint to fail; replace that entry
with the correct rule 'html/no-extra-spacing-text' (or remove the line if
spacing text checks are not desired) so the rules object uses only valid rules:
'html/no-extra-spacing-attrs' and 'html/no-extra-spacing-text'. Update the rule
key in the exported config where 'html/no-extra-spacing-tags' appears.

In `@projects/styles/package.json`:
- Line 67: The package.json dependency "cssnano": "8.0.0" references a
non-existent npm release; update the dependency entry in
projects/styles/package.json to a released version (e.g., "cssnano": "7.1.4") so
installs succeed, then run yarn/npm install and lockfile update; ensure the
change is made to the "cssnano" entry in package.json and update
package-lock.json or yarn.lock accordingly.

---

Outside diff comments:
In `@projects/cli/package.json`:
- Around line 43-62: The devDependencies entry "bun": "1.3.13" in package.json
may not be available via npm (registry shows 1.3.11); change the "bun" version
in the devDependencies block to a published version (e.g., "1.3.11") or use a
range like ">=1.3.11" to avoid install failures, and add a short note (README or
package.json comment) that users can obtain 1.3.13 via the Bun runtime (`bun
upgrade`) if they need that exact release; update the "bun" key in package.json
accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 3febf871-70d6-44f4-9c54-29af9d734c44

📥 Commits

Reviewing files that changed from the base of the PR and between 135a0f9 and e6f9d7e.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • .github/workflows/ci.yml
  • .husky/commit-msg
  • .nvmrc
  • AGENTS.md
  • NOTICE.md
  • README.md
  • config/docker/ci.dockerfile
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/package.json
  • projects/internals/eslint/src/configs/html.js
  • projects/internals/eslint/src/configs/lit.js
  • projects/lint/NOTICE.md
  • projects/monaco/package.json
  • projects/site/src/docs/internal/guidelines/troubleshooting.md
  • projects/starters/nuxt/package.json
  • projects/styles/package.json

Comment thread .github/workflows/ci.yml Outdated
Comment on lines +118 to +119
'html/no-extra-spacing-attrs': ['off'], // disabled interferes with example templates
'html/no-extra-spacing-tags': ['off'] // prettier
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

Does @html-eslint/eslint-plugin 0.60.0 define a rule named no-extra-spacing-tags?

💡 Result:

No, @html-eslint/eslint-plugin 0.60.0 does not define a rule named "no-extra-spacing-tags". The official rules list on the html-eslint documentation does not include this rule[1][2]. Existing spacing-related rules are "@html-eslint/no-extra-spacing-attrs" (disallows extra spaces around attributes and between start/end of tags)[3][4] and "@html-eslint/no-whitespace-only-children" (disallows tags with only whitespace children)[5]. There is a redirect page hinting at "no-extra-spacing-text"[6][7], but no "no-extra-spacing-tags". Changelogs for recent versions like v0.59.0 do not mention adding such a rule[8], and searches for the exact rule name yield no matches. Version 0.60.0 exists per npm[9][10][11], but no evidence of this specific rule in it or prior releases[12][13].

Citations:


Remove or replace the non-existent rule html/no-extra-spacing-tags.

The rule no-extra-spacing-tags does not exist in @html-eslint/eslint-plugin 0.60.0. ESLint will fail to load this config with "Definition for rule … was not found". The available spacing rules are no-extra-spacing-attrs and no-extra-spacing-text; replace this line with the intended rule or remove it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/internals/eslint/src/configs/lit.js` around lines 118 - 119, The
config contains a non-existent rule 'html/no-extra-spacing-tags' which causes
ESLint to fail; replace that entry with the correct rule
'html/no-extra-spacing-text' (or remove the line if spacing text checks are not
desired) so the rules object uses only valid rules:
'html/no-extra-spacing-attrs' and 'html/no-extra-spacing-text'. Update the rule
key in the exported config where 'html/no-extra-spacing-tags' appears.

"@nvidia-elements/themes": "workspace:*",
"@vitest/browser": "catalog:",
"cssnano": "7.1.1",
"cssnano": "8.0.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if cssnano 8.0.0 exists on npm and review changelog
echo "=== Checking cssnano version availability ==="
npm view cssnano@8.0.0 version 2>/dev/null || echo "Version 8.0.0 not found"

echo -e "\n=== Recent cssnano versions ==="
npm view cssnano versions --json | jq -r '.[-10:][]'

echo -e "\n=== Checking for postcss.config.cjs that might be affected ==="
fd -e cjs -e js postcss.config

Repository: NVIDIA/elements

Length of output: 987


🌐 Web query:

cssnano 8.0.0 release notes breaking changes

💡 Result:

cssnano 8.0.0 has not been released as of 2026-05-08. The latest version is cssnano@7.1.4, released on 2026-03-30.[1][2][3][4][5] No release notes or breaking changes for 8.0.0 exist because it does not exist yet.[1][4] The GitHub releases page lists only up to 7.1.4 as the latest, with recent patches like bug fixes for color conversions and PostCSS plugins.[1][6] npm confirms v7.1.3 (likely superseded by 7.1.4).[4] Note that css-minimizer-webpack-plugin v8.0.0 exists separately and uses cssnano, with its own breaking change: minimum Node.js 20.9.0.[7][8] Prior major version 7.0.0 dropped Node.js 14/16 support.[9]

Citations:


Update cssnano to an existing version; 8.0.0 does not exist.

cssnano@8.0.0 has not been released on npm. The latest available version is 7.1.4. The current specification will fail during installation. Update the dependency to a released version.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/styles/package.json` at line 67, The package.json dependency
"cssnano": "8.0.0" references a non-existent npm release; update the dependency
entry in projects/styles/package.json to a released version (e.g., "cssnano":
"7.1.4") so installs succeed, then run yarn/npm install and lockfile update;
ensure the change is made to the "cssnano" entry in package.json and update
package-lock.json or yarn.lock accordingly.

@coryrylan coryrylan force-pushed the topic-upgrade-pnpm branch from ca06517 to 61f4d88 Compare May 8, 2026 16:02
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (1)
projects/styles/package.json (1)

67-67: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

cssnano@8.0.0 does not exist; use a published version.

This dependency specifies version 8.0.0, but as confirmed in the previous review, the latest available cssnano release is 7.1.4. Installation will fail with this version.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/styles/package.json` at line 67, The package.json dependency entry
for "cssnano" is pinned to a non-existent version "8.0.0"; update the dependency
to a published version (for example "7.1.4" or a compatible semver like
"^7.1.4") so installs succeed, i.e., modify the "cssnano": "8.0.0" line in
package.json to the correct version string and run install to verify.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 29-31: The workflow temporarily sets actions/setup-node@v6 with
node-version: 24 then later switches back to the .nvmrc version (26.1.0); add an
inline comment immediately above the actions/setup-node@v6 node-version: 24 step
and above the later node switch (the block referencing .nvmrc / node-version
26.1.0) explaining that Playwright requires Node 24 for its install step (or
link to Playwright docs/issue), and if possible add a TODO to re-evaluate/remove
the temporary downgrade once Playwright supports the newer Node; ensure both
comment locations clearly reference the Playwright install step so future
maintainers understand the constraint.

In `@projects/internals/eslint/src/configs/html.js`:
- Line 52: Remove the invalid ESLint rule key "html/no-extra-spacing-tags" from
the config and replace it with the correct spacing-related rules from
`@html-eslint/eslint-plugin`: add "html/no-extra-spacing-attrs" and/or
"html/no-extra-spacing-text" as appropriate (keep the same "off" value if the
intent is to disable spacing linting), and update both the html.js and lit.js
configs so neither contains "html/no-extra-spacing-tags".

In `@projects/starters/nuxt/package.json`:
- Around line 17-25: The package.json has invalid/unpublished versions for the
Vue ecosystem: update the dependency entries "nuxt", "vue", "vue-router", and
devDependency "vue-tsc" to actual published versions (replace the current values
for the symbols nuxt, vue, vue-router, vue-tsc) by querying the npm/registry for
the latest stable releases (or choose known published semver ranges) and update
package.json accordingly so installs succeed; ensure you use published version
strings (no local/workspace/catalog placeholders) and run a fresh install to
verify.

---

Duplicate comments:
In `@projects/styles/package.json`:
- Line 67: The package.json dependency entry for "cssnano" is pinned to a
non-existent version "8.0.0"; update the dependency to a published version (for
example "7.1.4" or a compatible semver like "^7.1.4") so installs succeed, i.e.,
modify the "cssnano": "8.0.0" line in package.json to the correct version string
and run install to verify.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 56e37b1d-75b5-4dc5-9a49-7fcc02acafca

📥 Commits

Reviewing files that changed from the base of the PR and between e6f9d7e and 61f4d88.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • .github/workflows/ci.yml
  • .husky/commit-msg
  • .nvmrc
  • AGENTS.md
  • NOTICE.md
  • README.md
  • config/docker/ci.dockerfile
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/package.json
  • projects/internals/eslint/src/configs/html.js
  • projects/internals/eslint/src/configs/lit.js
  • projects/lint/NOTICE.md
  • projects/monaco/package.json
  • projects/site/src/docs/internal/guidelines/troubleshooting.md
  • projects/starters/nuxt/package.json
  • projects/styles/package.json

Comment thread .github/workflows/ci.yml Outdated
'html/indent': 'off', // prettier
'html/require-closing-tags': 'off', // prettier
'html/element-newline': 'off', // prettier
'html/no-extra-spacing-tags': 'off', // prettier
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

Does @html-eslint/eslint-plugin (current version used by this repo) define a rule named "html/no-extra-spacing-tags"? Please provide the official rules list and the closest valid spacing-related rule names.

💡 Result:

No, @html-eslint/eslint-plugin does not define a rule named "html/no-extra-spacing-tags". The official rules list from the plugin's documentation includes rules under the Style category such as: no-extra-spacing-attrs[1][2], no-extra-spacing-text[3][4][2], class-spacing[5], no-trailing-spaces[6], no-whitespace-only-children[7], and others like attrs-newline and element-newline[2]. The closest valid spacing-related rules are "@html-eslint/no-extra-spacing-attrs" (disallows extra spaces around attributes and between start/end of tags, including options for self-closing tags)[8][9] and "@html-eslint/no-extra-spacing-text" (disallows extra spacing in text content, based on redirecting doc page and developer guide listing)[3][4][2]. The current version is 0.58.1[10].

Citations:


🏁 Script executed:

# Find package.json or lock files to check `@html-eslint/eslint-plugin` version
find . -maxdepth 3 -type f \( -name "package.json" -o -name "package-lock.json" -o -name "yarn.lock" -o -name "pnpm-lock.yaml" \) | head -20

Repository: NVIDIA/elements

Length of output: 515


🏁 Script executed:

# Read the specific file to verify the rule at line 52
cat -n projects/internals/eslint/src/configs/html.js | head -60

Repository: NVIDIA/elements

Length of output: 1958


🏁 Script executed:

# Search for any other occurrences of this rule in the codebase
rg "html/no-extra-spacing-tags" --type js --type json

Repository: NVIDIA/elements

Length of output: 261


Remove invalid ESLint rule key html/no-extra-spacing-tags.

This rule key does not exist in @html-eslint/eslint-plugin (v0.58.1); keeping it breaks ESLint config loading. The valid spacing-related rules are html/no-extra-spacing-attrs and html/no-extra-spacing-text.

Proposed fix
-      'html/no-extra-spacing-tags': 'off', // prettier

Note: The same invalid rule also appears in projects/internals/eslint/src/configs/lit.js.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
'html/no-extra-spacing-tags': 'off', // prettier
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/internals/eslint/src/configs/html.js` at line 52, Remove the invalid
ESLint rule key "html/no-extra-spacing-tags" from the config and replace it with
the correct spacing-related rules from `@html-eslint/eslint-plugin`: add
"html/no-extra-spacing-attrs" and/or "html/no-extra-spacing-text" as appropriate
(keep the same "off" value if the intent is to disable spacing linting), and
update both the html.js and lit.js configs so neither contains
"html/no-extra-spacing-tags".

Comment thread projects/starters/nuxt/package.json
@coryrylan coryrylan force-pushed the topic-upgrade-pnpm branch from 61f4d88 to a3c7af4 Compare May 8, 2026 16:18
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (3)
projects/starters/nuxt/package.json (1)

17-19: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Nuxt/Vue version pins still need validation against published releases.

Lines [17]-[19] and Line [25] were previously flagged; if any of these exact versions are not published, pnpm install fails for this starter.

#!/bin/bash
set -euo pipefail

for spec in nuxt@4.4.4 vue@3.5.34 vue-router@5.0.6 vue-tsc@3.2.8; do
  echo "Checking $spec ..."
  npm view "$spec" version || echo "NOT FOUND: $spec"
done

Also applies to: 25-25

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/starters/nuxt/package.json` around lines 17 - 19, The package.json
currently pins nuxt@"4.4.4", vue@"3.5.34", vue-router@"5.0.6" (and elsewhere
vue-tsc@"3.2.8") which may not match published npm releases; run npm view for
each spec and update the version strings in projects/starters/nuxt/package.json
to the latest published versions (or switch to caret ranges like ^4.4.4) for the
entries "nuxt", "vue", "vue-router", and "vue-tsc" so pnpm install succeeds;
ensure you replace any non-existent exact pins with valid published versions or
compatible semver ranges.
projects/styles/package.json (1)

67-67: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

cssnano version appears invalid and can break installs.

Line [67] sets cssnano to 8.0.0; this was already flagged earlier and still appears unresolved. If unpublished, dependency installation fails immediately in CI/local setup.

#!/bin/bash
set -euo pipefail

echo "Checking pinned version..."
npm view cssnano@8.0.0 version || echo "cssnano@8.0.0 not found"

echo "Latest published cssnano..."
npm view cssnano version
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/styles/package.json` at line 67, The dependency entry for "cssnano"
in package.json uses an invalid/unpublished version "8.0.0" which breaks
installs; update the "cssnano" value to a published version (e.g., the current
npm published version) or remove the dependency if unused. Locate the "cssnano"
entry in package.json and replace "8.0.0" with a valid semver returned by `npm
view cssnano version` (or pin to the project-approved version), then run a local
install to verify CI will succeed. Ensure package-lock/yarn.lock is updated
after the change.
projects/internals/eslint/src/configs/lit.js (1)

118-119: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

The non-existent rule html/no-extra-spacing-tags will cause ESLint to fail.

This issue was previously flagged: the rule html/no-extra-spacing-tags does not exist in @html-eslint/eslint-plugin v0.60.0. ESLint will throw "Definition for rule 'html/no-extra-spacing-tags' was not found" and fail to load this configuration.

The valid spacing rules in this plugin are:

  • html/no-extra-spacing-attrs (already present on line 118)
  • html/no-extra-spacing-text (mentioned on line 112)

Replace line 119 with the correct rule name or remove it entirely.

🔧 Proposed fix

If you intended to disable text spacing checks:

-      'html/no-extra-spacing-tags': ['off'] // prettier
+      'html/no-extra-spacing-text': ['off'] // prettier

Or if this rule is unnecessary, simply remove line 119.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/internals/eslint/src/configs/lit.js` around lines 118 - 119, Replace
the invalid ESLint rule key 'html/no-extra-spacing-tags' in the rule list with
the correct plugin rule 'html/no-extra-spacing-text' (or remove the line
entirely if you don't want to disable text-spacing checks); ensure the rules
array that currently contains 'html/no-extra-spacing-attrs' and
'html/no-extra-spacing-tags' is updated so ESLint no longer references the
non-existent 'html/no-extra-spacing-tags'.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@projects/internals/eslint/src/configs/lit.js`:
- Around line 118-119: Replace the invalid ESLint rule key
'html/no-extra-spacing-tags' in the rule list with the correct plugin rule
'html/no-extra-spacing-text' (or remove the line entirely if you don't want to
disable text-spacing checks); ensure the rules array that currently contains
'html/no-extra-spacing-attrs' and 'html/no-extra-spacing-tags' is updated so
ESLint no longer references the non-existent 'html/no-extra-spacing-tags'.

In `@projects/starters/nuxt/package.json`:
- Around line 17-19: The package.json currently pins nuxt@"4.4.4", vue@"3.5.34",
vue-router@"5.0.6" (and elsewhere vue-tsc@"3.2.8") which may not match published
npm releases; run npm view for each spec and update the version strings in
projects/starters/nuxt/package.json to the latest published versions (or switch
to caret ranges like ^4.4.4) for the entries "nuxt", "vue", "vue-router", and
"vue-tsc" so pnpm install succeeds; ensure you replace any non-existent exact
pins with valid published versions or compatible semver ranges.

In `@projects/styles/package.json`:
- Line 67: The dependency entry for "cssnano" in package.json uses an
invalid/unpublished version "8.0.0" which breaks installs; update the "cssnano"
value to a published version (e.g., the current npm published version) or remove
the dependency if unused. Locate the "cssnano" entry in package.json and replace
"8.0.0" with a valid semver returned by `npm view cssnano version` (or pin to
the project-approved version), then run a local install to verify CI will
succeed. Ensure package-lock/yarn.lock is updated after the change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: eb4e2a51-c316-4e08-875f-ff06fc3c68f1

📥 Commits

Reviewing files that changed from the base of the PR and between 61f4d88 and a3c7af4.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • .github/workflows/ci.yml
  • .husky/commit-msg
  • .nvmrc
  • AGENTS.md
  • NOTICE.md
  • README.md
  • config/docker/ci.dockerfile
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/package.json
  • projects/internals/eslint/src/configs/html.js
  • projects/internals/eslint/src/configs/lit.js
  • projects/lint/NOTICE.md
  • projects/monaco/package.json
  • projects/site/src/docs/internal/guidelines/troubleshooting.md
  • projects/starters/nuxt/package.json
  • projects/styles/package.json

@coryrylan coryrylan force-pushed the topic-upgrade-pnpm branch from a3c7af4 to 49ef4f0 Compare May 8, 2026 16:33
Signed-off-by: Cory Rylan <crylan@nvidia.com>
@coryrylan coryrylan force-pushed the topic-upgrade-pnpm branch from 49ef4f0 to 0b4fb03 Compare May 8, 2026 16:56
@coryrylan coryrylan merged commit 26aba55 into main May 8, 2026
16 checks passed
@coryrylan coryrylan deleted the topic-upgrade-pnpm branch May 8, 2026 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants