feat: drop Node.js 18 support, require Node.js 20+#698
Conversation
- Update package.json engines to require Node.js >=20.0.0 - Remove Node.js 18.0.0, 18.x, and 19.x from CI test matrix - Update system requirements in documentation across all languages - Update GitHub Actions examples in documentation BREAKING CHANGE: Node.js 18 is no longer supported. Minimum required version is now Node.js 20.0.0. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughThe minimum required Node.js version has been raised from 18.x to 20.x across documentation, CI workflows, and the package configuration. Node.js 18.x and 19.x have been removed from the CI matrix. GitHub Action metadata was updated to change branding color and clean up whitespace, with no functional changes. Changes
Possibly related issues
Possibly related PRs
✨ Finishing Touches🧪 Generate Unit Tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
|
Claude finished @yamadashy's task —— View job PR Review: Drop Node.js 18 Support ✅This PR successfully drops Node.js 18 support and requires Node.js 20+. The implementation is comprehensive and well-executed. Here's my detailed review: Todo List:
✅ What's Done WellCore Configuration
Documentation Quality
Implementation Approach
|
There was a problem hiding this comment.
Summary of Changes
Hello @yamadashy, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request is a significant maintenance update that deprecates support for Node.js 18 and mandates Node.js 20 or newer across the project. The change is driven by Node.js 18 reaching its End of Life, ensuring the project remains on actively supported and secure Node.js versions. This involves core configuration updates, adjustments to the continuous integration pipeline, and comprehensive documentation revisions across all supported languages.
Highlights
- Node.js Version Update: I've updated the project's minimum required Node.js version from 18 to 20, aligning with Node.js 18 reaching End of Life (EOL) and focusing on supported LTS versions for improved security and performance.
- Configuration Changes: The
engines.nodefield inpackage.jsonhas been updated to reflect the new Node.js 20+ requirement. - CI Pipeline Adjustments: The CI test matrix has been updated to remove Node.js 18.x and 19.x versions, ensuring tests run against supported Node.js environments.
- Documentation Updates: I've updated system requirements and development prerequisites across 26 documentation files in 12 different languages to reflect the new Node.js 20+ requirement. GitHub Actions examples within the documentation have also been updated to use Node.js 20.
- Breaking Change: This pull request introduces a breaking change: Node.js 18 is no longer supported, and users must upgrade to Node.js 20.0.0 or later to use Repomix.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #698 +/- ##
=======================================
Coverage 90.36% 90.36%
=======================================
Files 99 99
Lines 5561 5561
Branches 1186 1186
=======================================
Hits 5025 5025
Misses 536 536 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull Request Overview
This PR updates the project to require Node.js 20 or later by removing support for Node.js 18 and 19 and reflecting that change across CI configs and documentation.
- Bump
engines.noderequirement from>=18.0.0to>=20.0.0inpackage.json - Remove Node.js 18.x and 19.x from the GitHub Actions CI matrix
- Update system-requirements and GitHub Actions version examples in localized guides to Node.js ≥20.0.0
Reviewed Changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| website/client/src/zh-tw/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/zh-tw/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/zh-cn/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/zh-cn/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/vi/guide/github-actions.md | Update setup-node version to 20 |
| website/client/src/pt-br/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/pt-br/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/ko/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/ko/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/ja/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/ja/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/id/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/hi/guide/github-actions.md | Update setup-node version to 20 and adjust examples |
| website/client/src/hi/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/fr/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/fr/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/es/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/es/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/en/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/en/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/de/guide/installation.md | Update Node.js requirement to ≥20.0.0 |
| website/client/src/de/guide/development/index.md | Update Node.js requirement to ≥20.0.0 |
| package.json | Bump engines.node to >=20.0.0 |
| .github/workflows/ci.yml | Remove Node.js 18.x/19.x from CI matrix |
Comments suppressed due to low confidence (1)
website/client/src/hi/guide/github-actions.md:126
- The matrix example still lists Node.js 18 (and previously 16); it should only include supported versions (>=20) to match the CI configuration (e.g., [20, 21, 22, 23, 24]).
node-version: [18, 20, 22]
Deploying repomix with
|
| Latest commit: |
0c264ec
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://aaa76d87.repomix.pages.dev |
| Branch Preview URL: | https://feat-drop-node18-support.repomix.pages.dev |
- Change branding color from purple to orange - Clean up trailing whitespace in action.yml 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request drops support for Node.js 18 and requires Node.js 20+, updating the package.json and documentation. An issue was found in the Hindi documentation's GitHub Actions example, where Node.js 18 was still included in the version matrix. This has been flagged for correction.
There was a problem hiding this comment.
PR Summary
Major version update dropping Node.js 18 support and requiring Node.js 20+ across the entire codebase.
- Updated
engines.nodeinpackage.jsonfrom>=18.0.0to>=20.0.0 - Modified
.github/workflows/ci.ymlto remove Node.js 18.x and 19.x from test matrix, now testing 20.x through 24.x - Updated system requirements across 26 documentation files in 12 languages to reflect new Node.js 20+ requirement
- Identified inconsistency in
website/client/src/hi/guide/github-actions.mdwhere Node.js 18 is still listed in matrix builds section
24 files reviewed, no comments
Edit PR Review Bot Settings | Greptile
Remove Node.js 18 from matrix.node-version in GitHub Actions documentation example to align with dropped Node.js 18 support. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
.github/actions/repomix/action.yml (1)
45-50: Composite action pins to Node 24 which is not yet availableUsing a non-existent version causes the action to fail for every user.
- node-version: "24" + # Use the current active LTS to maximise runner availability + node-version: "20"Alternatively, rely on
.tool-versionsor an input so that consumers can decide.
🧹 Nitpick comments (7)
package.json (1)
116-118: Engine bump looks good – consider capping the upper bound or adding engine-strict
"node": ">=20.0.0"communicates the minimum version clearly 👍.
Two optional follow-ups you may want to consider:
- CI currently tests only up to Node 24.x – if that’s intentional, you can express it explicitly (
">=20.0.0 <25"), avoiding accidental installs on a yet-untested major.- Add
"engineStrict": true(npm) or an.npmrcwithengine-strict=trueso that consumers actually receive a hard error when using < 20.No action required if you’re comfortable with the current lax upper bound.
website/client/src/pt-br/guide/installation.md (1)
72-75: Consider templating the Node.js requirement across all localesWe’re manually hard-coding “Node.js ≥ 20.0.0” in every translated file.
Next time the minimum version changes we’ll face another sweeping docs update.
VitePress supports using global data viadefineor custom markdown-it replacements—worth centralising this constant.website/client/src/fr/guide/installation.md (1)
74-76: Minor French typography nitFrench style usually requires a fine non-breaking space before the colon (“Node.js : ≥ 20.0.0”).
If we prefer strict typographic correctness, insert(U+202F) before:and keep the non-breaking space after.website/client/src/vi/guide/github-actions.md (1)
175-179: Use the20.xrange instead of the bare major
actions/setup-noderecommends a semver range ('20.x') so that the workflow always installs the latest patch of the major LTS (e.g. 20.13 instead of 20.0).- node-version: '20' + node-version: '20.x'website/client/src/hi/guide/github-actions.md (3)
28-31: Align with setup-node guidanceSame remark as for the Vietnamese guide: prefer the
20.xsemver range.- node-version: '20' + node-version: '20.x'
68-71: Ditto for the advanced example- node-version: '20' + node-version: '20.x'
124-127: Matrix version list could include patch wildcard- node-version: [20, 22] + node-version: [20.x, 22.x]This keeps the example up-to-date automatically as new patches are released.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (25)
.github/actions/repomix/action.yml(2 hunks).github/workflows/ci.yml(2 hunks)package.json(1 hunks)website/client/src/de/guide/development/index.md(1 hunks)website/client/src/de/guide/installation.md(1 hunks)website/client/src/en/guide/development/index.md(1 hunks)website/client/src/en/guide/installation.md(1 hunks)website/client/src/es/guide/development/index.md(1 hunks)website/client/src/es/guide/installation.md(1 hunks)website/client/src/fr/guide/development/index.md(1 hunks)website/client/src/fr/guide/installation.md(1 hunks)website/client/src/hi/guide/development/index.md(1 hunks)website/client/src/hi/guide/github-actions.md(3 hunks)website/client/src/id/guide/development/index.md(1 hunks)website/client/src/ja/guide/development/index.md(1 hunks)website/client/src/ja/guide/installation.md(1 hunks)website/client/src/ko/guide/development/index.md(1 hunks)website/client/src/ko/guide/installation.md(1 hunks)website/client/src/pt-br/guide/development/index.md(1 hunks)website/client/src/pt-br/guide/installation.md(1 hunks)website/client/src/vi/guide/github-actions.md(1 hunks)website/client/src/zh-cn/guide/development/index.md(1 hunks)website/client/src/zh-cn/guide/installation.md(1 hunks)website/client/src/zh-tw/guide/development/index.md(1 hunks)website/client/src/zh-tw/guide/installation.md(1 hunks)
🧰 Additional context used
🧠 Learnings (18)
📓 Common learnings
Learnt from: chenrui333
PR: yamadashy/repomix#151
File: .github/workflows/release.yml:13-13
Timestamp: 2024-11-02T17:45:31.561Z
Learning: For `.github/workflows/release.yml`, the project prefers to use `@master` for GitHub Actions instead of pinning specific versions.
website/client/src/de/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/en/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/fr/guide/installation.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/hi/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/ko/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/zh-cn/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/zh-tw/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/vi/guide/github-actions.md (2)
Learnt from: chenrui333
PR: yamadashy/repomix#151
File: .github/workflows/release.yml:13-13
Timestamp: 2024-11-02T17:45:31.561Z
Learning: For `.github/workflows/release.yml`, the project prefers to use `@master` for GitHub Actions instead of pinning specific versions.
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: The Repomix browser extension is a cross-browser extension (Chrome, Firefox, Edge) that uses Manifest V3 and injects UI elements into GitHub repository pages via content scripts.
website/client/src/id/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: The Repomix browser extension is a cross-browser extension (Chrome, Firefox, Edge) that uses Manifest V3 and injects UI elements into GitHub repository pages via content scripts.
website/client/src/ja/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/pt-br/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/fr/guide/development/index.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
package.json (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/hi/guide/github-actions.md (2)
Learnt from: chenrui333
PR: yamadashy/repomix#151
File: .github/workflows/release.yml:13-13
Timestamp: 2024-11-02T17:45:31.561Z
Learning: For `.github/workflows/release.yml`, the project prefers to use `@master` for GitHub Actions instead of pinning specific versions.
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
website/client/src/en/guide/installation.md (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
.github/actions/repomix/action.yml (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: The Repomix browser extension is a cross-browser extension (Chrome, Firefox, Edge) that uses Manifest V3 and injects UI elements into GitHub repository pages via content scripts.
.github/workflows/ci.yml (1)
Learnt from: CR
PR: yamadashy/repomix#0
File: browser/CLAUDE.md:0-0
Timestamp: 2025-06-23T13:06:21.806Z
Learning: Development, build, lint, test, and icon generation tasks are managed via npm scripts, ensuring a consistent workflow.
🪛 LanguageTool
website/client/src/fr/guide/installation.md
[uncategorized] ~76-~76: Les deux-points sont précédés d’une espace insécable.
Context: ...tôt ! ## Configuration requise - Node.js: ≥ 20.0.0 - Git: Requis pour le traiteme...
(FRENCH_WHITESPACE)
🔇 Additional comments (19)
website/client/src/hi/guide/development/index.md (1)
9-10: Doc update matches new requirementNode version raised to v20 – consistent with
package.jsonand CI.
LGTM.website/client/src/es/guide/installation.md (1)
72-75: Spanish installation doc updated correctlySystem requirements now list “≥ 20.0.0”. 👌
website/client/src/ko/guide/installation.md (1)
72-75: Korean installation doc in syncNode.js minimum bumped to 20.0.0 – looks good.
website/client/src/de/guide/development/index.md (1)
52-55: German development guide reflects new Node baselineRequirement updated to “≥ 20.0.0”. No other issues found.
website/client/src/en/guide/development/index.md (1)
18-18: Node-version bump looks goodThe prerequisite now correctly states “Node.js ≥ 20.0.0”, matching the package.json engines entry and CI matrix.
No further issues spotted here.website/client/src/de/guide/installation.md (1)
72-75: Node version update acknowledgedThe new requirement is consistent with the rest of the documentation and tooling.
Nothing else to flag.website/client/src/fr/guide/development/index.md (1)
52-53: Good sync with global Node 20 baselinePrerequisites now reflect Node 20+. Ensure any code examples that still use
setup-node@v3with version 18 are also updated (none found in this file).website/client/src/zh-tw/guide/installation.md (1)
72-75: All Node.js version references updated—no further action neededI’ve scanned the entire
website/directory and found no remaining hard-coded “18.x” or “>=18” mentions in docs or configuration files, aside from:
- Numerous entries in
package-lock.json(auto-generated, safe to ignore).- A single usage of
>= 18inwebsite/client/src/vi/guide/code-compress.md, which is an age-check example in the Vietnamese guide and not a Node.js version requirement.No manual changes are needed beyond your update to ≥ 20.0.0.
website/client/src/ja/guide/installation.md (1)
72-75: Version bump looks good
Node.js: 20.0.0 以上correctly reflects the new minimum.
No further issues spotted here.website/client/src/zh-cn/guide/installation.md (1)
72-75: Consistent update confirmedLine now reads
Node.js: ≥ 20.0.0, matching other locales.
All good.website/client/src/es/guide/development/index.md (1)
52-55: Prerequisite updated; LGTMThe prerequisite list now requires
Node.js ≥ 20.0.0.
Change aligns with the PR goal.website/client/src/pt-br/guide/development/index.md (1)
52-55: Minimum Node version bumped to 20 – looks correctNo further action needed for this locale.
website/client/src/ja/guide/development/index.md (2)
18-18: Node.js version bump aligns with project policy
Updating the prerequisite to≥ 20.0.0keeps the guide in sync withpackage.jsonand the CI matrix. Nothing else needed.
18-18: No stale Node.js 18/19 references found
Searched allwebsite/clientdocs for “Node.js 18” or “Node.js 19”—no matches. All version calls now use ≥ 20.0.0 or generic Node.js mentions.website/client/src/zh-cn/guide/development/index.md (1)
54-54: 版本号已正确更新
Prerequisite now reads≥ 20.0.0, matching the new support matrix.website/client/src/zh-tw/guide/development/index.md (1)
54-54: Node.js 20+ requirement correctly reflected
Change is consistent with other locales.website/client/src/en/guide/installation.md (1)
74-74: System-requirements line updated to 20+
The install guide now shows the correct minimum Node version. Good catch.website/client/src/ko/guide/development/index.md (1)
54-54: 노드 버전 요구사항 최신화 완료
Node.js ≥ 20.0.0로 갱신된 부분 확인했습니다.website/client/src/id/guide/development/index.md (1)
10-14: Node-js version bump looks goodPrerequisite now correctly lists “Node.js 20 +”.
No further action required.
- Update Vietnamese development guide from Node.js 16+ to 20+ - Update MCP installation guide from Node.js 18.0.0+ to 20.0.0+ Ensures all documentation consistently reflects the new minimum Node.js version requirement after dropping Node.js 18 support. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Summary
Changes
engines.nodefrom>=18.0.0to>=20.0.0Breaking Change
BREAKING CHANGE: Node.js 18 is no longer supported. Applications using Repomix must upgrade to Node.js 20.0.0 or later.
Rationale
Test Plan
🤖 Generated with Claude Code