Skip to content

Conversation

@fengmk2
Copy link
Member

@fengmk2 fengmk2 commented Jan 15, 2026

https://github.com/voidzero-dev/setup-vite-plus-action

Summary by CodeRabbit

  • New Features

    • Upgraded development tooling to Vite+ (build, test and formatting via unified commands).
  • Chores

    • Consolidated and modernized CI workflows; updated Node.js test matrix and removed legacy Node 16 workflow.
    • Modernized package scripts to use Vite+ runners and adjusted project configuration.
  • Tests

    • Tests now use the Vite+ test harness (test imports updated).
  • Documentation

    • Added Vite+ usage docs and a new README badge.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

Replaces Vitest/Oxfmt/Oxlint toolchain with Vite+ across CI, config, scripts, and tests; removes legacy formatter/linter configs; updates workflows and package.json scripts; switches test imports to vite-plus/test; broadens tsconfig excludes and augments vite configuration for fmt/lint.

Changes

Cohort / File(s) Summary
CI Workflows
.github/workflows/*
\.github/workflows/nodejs-16.yml, \.github/workflows/nodejs-old-versions.yml, \.github/workflows/nodejs.yml, \.github/workflows/pkg.pr.new.yml
Removed standalone Node 16 workflow; added/updated workflows to run Node 16/18 and newer matrices; replaced PNPM-specific install steps with a "Setup Vite+" action (cache: true, run-install: true); updated Node matrix and switched script invocations to vite/vite dlx variants.
Formatter / Linter Configs (deleted)
.oxfmtrc.json, .oxlintrc.json
Deleted OxFmt and OxLint configuration files; formatting/lint rules migrated into Vite+/vite.config.ts.
Project manifest / Scripts
package.json
Migrated scripts from ox*/vitest to vite/vite-plus equivalents; adjusted build/test/ci scripts and lint-staged entries; added pnpm overrides mapping vite to vite-plus-core.
Vite configuration
vite.config.ts
Replaced Vitest/codspeed usage with Vite+ tooling config; added fmt and lint configuration blocks; changed test worker pool from threads to forks; left codspeed plugin commented.
Tests (imports updated)
test/*.test.ts, test/*.bench.ts (many files)
e.g., test/HttpClient.test.ts, test/index.test.ts, test/urllib.bench.ts, ...
Replaced imports of test utilities from vitest to vite-plus/test across all test files; no test logic changes.
Docs & other config
CLAUDE.md, README.md, tsconfig.json
Added Vite+ documentation block to CLAUDE.md; added pkg.pr.new badge to README.md; broadened tsconfig.json exclude pattern from vite.config.ts to *.config.ts.
CI consolidation for old Node versions
.github/workflows/nodejs-old-versions.yml
New workflow to test Node 16 and 18 with matrix, includes patches/workarounds for vitest compatibility and a separate Node16 test script.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I nibble code at dawn’s first light,

Vite+ hops in, the tests take flight,
No more old configs in a stack,
Scripts renamed and toolchain packed,
Hooray — build, lint, and run — good night!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: use vite+' clearly summarizes the main change: migrating the project to use the Vite+ tooling suite, which is the primary focus across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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


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.

❤️ Share

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

@socket-security
Copy link

socket-security bot commented Jan 15, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedvite-plus@​0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a76170100999490

View full report

@socket-security
Copy link

socket-security bot commented Jan 15, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm @voidzero-dev/vite-plus-core is 91.0% likely obfuscated

Confidence: 0.91

Location: Package overview

From: pnpm-lock.yamlnpm/@vitest/[email protected]npm/[email protected]npm/@voidzero-dev/[email protected]

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@voidzero-dev/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 15, 2026

Open in StackBlitz

npm i https://pkg.pr.new/node-modules/urllib@643

commit: 5840c75

@gemini-code-assist
Copy link

Summary of Changes

Hello @fengmk2, 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 significantly overhauls the project's development infrastructure by adopting Vite+ as the primary and unified toolchain. This strategic shift aims to simplify the development experience by centralizing commands for code quality checks, testing, and other build processes under a single interface. The changes ensure a more cohesive and efficient workflow, backed by detailed guidelines for seamless integration and usage.

Highlights

  • Toolchain Migration to Vite+: The project has fully migrated its development toolchain to Vite+, consolidating various development tasks under a single, unified CLI.
  • Streamlined Commands: Linting, formatting, and testing commands in package.json scripts have been updated to use the vite CLI (e.g., vite lint, vite fmt, vite test), replacing direct calls to oxlint, oxfmt, and vitest.
  • Dependency Updates: Standalone oxlint and oxfmt dependencies have been removed, and vitest has been aliased to a vite-plus specific version. The vite-plus package has been added as a core dependency.
  • Updated Test Imports: All test files now import testing utilities (like describe, it) from vite-plus/test instead of vitest, aligning with the new toolchain.
  • Comprehensive Documentation: Extensive documentation has been added to CLAUDE.md, detailing the Vite+ workflow, available commands, package manager integration, common pitfalls, and a review checklist.
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

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

  1. 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
Copy link

codecov bot commented Jan 15, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.77%. Comparing base (d748999) to head (5840c75).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #643      +/-   ##
==========================================
- Coverage   93.82%   92.77%   -1.06%     
==========================================
  Files          14       10       -4     
  Lines        1474      747     -727     
  Branches      289      233      -56     
==========================================
- Hits         1383      693     -690     
+ Misses         85       51      -34     
+ Partials        6        3       -3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request migrates the project's tooling to vite+, a unified toolchain. This involves removing the standalone configurations for oxlint and oxfmt and consolidating them into vite.config.ts. The package.json scripts and dependencies have been updated accordingly to use vite+ commands. Additionally, test files have been updated to import from vite-plus/test, and documentation has been added to CLAUDE.md to explain the new workflow. The changes are mostly correct and align with the goal of adopting vite+. I've found one potential issue in the new vite.config.ts regarding a configuration path that seems incorrect.

@fengmk2 fengmk2 marked this pull request as ready for review January 17, 2026 07:21
Copilot AI review requested due to automatic review settings January 17, 2026 07:21
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates the project from individual tooling (vitest, vite, oxlint, oxfmt) to the unified vite-plus toolchain. Vite+ is a modern development toolchain that wraps multiple tools (Vite, Vitest, Oxlint, Oxfmt) behind a single CLI.

Changes:

  • Replaced vitest and standalone oxlint/oxfmt packages with vite-plus
  • Updated all test imports from 'vitest' to 'vite-plus/test'
  • Migrated configuration from separate .oxlintrc.json and .oxfmtrc.json files into vite.config.ts
  • Updated package.json scripts to use vite commands instead of individual tools
  • Modified GitHub Actions workflows to use vite+ and removed Node 18 from test matrix
  • Added comprehensive vite+ documentation in CLAUDE.md

Reviewed changes

Copilot reviewed 52 out of 54 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
vite.config.ts Changed import from vitest to vite-plus, moved lint/fmt config inline, commented out codspeed plugin, changed pool from 'threads' to 'forks'
package.json Removed vitest/oxlint/oxfmt dependencies, added vite-plus, updated all scripts to use vite commands, added vite override mappings
tsconfig.json Updated exclude pattern from specific vite.config.ts to wildcard *.config.ts
test/*.test.ts Updated 50+ test files to import from 'vite-plus/test' instead of 'vitest'
.oxlintrc.json Removed (configuration moved to vite.config.ts)
.oxfmtrc.json Removed (configuration moved to vite.config.ts)
README.md Added pkg.pr.new badge
CLAUDE.md Added comprehensive vite+ documentation section
.github/workflows/*.yml Updated to use vite commands and setup-vite-plus-action, added old-versions workflow for Node 16/18
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

@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: 2

Caution

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

⚠️ Outside diff range comments (1)
CLAUDE.md (1)

11-44: Update "Common Commands" and "Testing" sections to align with Vite+ guidance.

Lines 11-44 and 69-77 instruct direct use of pnpm and Vitest, but the Vite+ section (lines 86-129) explicitly prohibits this. Update these earlier sections to use vite commands instead (e.g., vite install, vite test, vite lint) to prevent conflicting guidance for users.

🤖 Fix all issues with AI agents
In `@package.json`:
- Around line 113-114: Update the lint-staged command entries so the formatter
call does not include a trailing directory argument: replace the "vite run fmt
." invocation with "vite fmt --no-error-on-unmatched-pattern" (no dot) so oxfmt
only formats the staged files passed by lint-staged, and similarly consider
removing explicit paths from "vite run lint --fix" (i.e., use "vite lint --fix"
or rely on lint-staged file-paths) to ensure both the lint and fmt commands
operate on the staged files rather than the entire repo.

In `@README.md`:
- Line 11: The README contains a broken pkg.pr.new badge URL
("https://pkg.pr.new/badge/node-modules/urllib") that returns 404; update the
badge reference in README.md by either correcting the badge path to the proper
OWNER/REPO for the package or removing/replacing the badge with a valid
alternative (e.g., Shields.io or the correct pkg.pr.new badge after confirming
the package is registered). Locate the badge string in README.md and replace the
URL in the markdown image/link to a verified working badge URL.
♻️ Duplicate comments (1)
vite.config.ts (1)

28-29: Acknowledge the FIXME for the incorrect extends path.

The FIXME comment documents a known issue with the relative path resolution. Once vite-plus fixes the extends path resolution, update this to use the correct path: ./node_modules/@eggjs/oxlint-config/.oxlintrc.json.

🧹 Nitpick comments (2)
vite.config.ts (1)

30-37: All lint categories are set to 'allow', effectively disabling category-level enforcement.

Setting every category to 'allow' neutralizes the category defaults. If this is intentional to rely solely on explicit rule overrides below, consider adding a brief inline comment explaining this strategy for future maintainers.

package.json (1)

127-134: Both pnpm.overrides and top-level overrides use @latest, amplifying reproducibility concerns.

When vite-plus-core publishes a breaking change, builds may fail unexpectedly. Consider pinning these overrides to a specific version range as well, or document why latest is necessary during active development.

@fengmk2 fengmk2 merged commit 7a2fc90 into master Jan 17, 2026
23 of 24 checks passed
@fengmk2 fengmk2 deleted the vite-plus branch January 17, 2026 07:37
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