Skip to content

Conversation

@fengmk2
Copy link
Member

@fengmk2 fengmk2 commented Oct 30, 2025

Summary by CodeRabbit

  • Chores

    • Updated several dev-tool versions and refined workspace exclusion entries; removed many explicit tsconfig baseUrl settings and adjusted template tsconfig paths/excludes.
  • Performance

    • Broadened parallel execution for build/typecheck/pretest commands and added pre-clean sequencing to improve run efficiency.
  • Tests

    • Normalized IPC test event payloads and marked several flaky suites to skip on Windows to reduce instability.

@fengmk2 fengmk2 requested a review from Copilot October 30, 2025 12:58
@gemini-code-assist
Copy link
Contributor

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 primarily focuses on maintaining the project's dependency health by updating various packages to their latest stable versions. These updates encompass type definitions, code minifiers, formatters, linters, and bundler-related tools, ensuring compatibility and leveraging recent improvements across the development stack. Additionally, the pnpm workspace configuration has been adjusted to align with these dependency changes.

Highlights

  • Core Dependency Updates: Several key dependencies including '@types/node', 'oxc-minify', 'oxfmt', 'oxlint', 'oxlint-tsgolint', 'rolldown-vite', and 'rolldown' have been updated to their latest versions, ensuring the project benefits from bug fixes, performance improvements, and new features.
  • Keygrip Deprecation Status: The 'deprecated' flag for the 'keygrip' package has been removed, indicating it might no longer be considered deprecated or the warning was removed.
  • Pnpm Workspace Configuration: The 'pnpm-workspace.yaml' file has been updated to reflect the new '@types/node' and 'oxlint' versions in the catalog, and 'oxlint-tsgolint', 'oxlint', and 'oxc-minify' have been added to the 'minimumReleaseAgeExclude' list.
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.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 30, 2025

Caution

Review failed

The pull request is closed.

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

Update workspace dependency pins and exclusion lists; make root scripts run a pre-clean and add parallel recursive execution options; change IPC test emits to use undefined instead of null; skip several flaky schedule/cluster tests on Windows; reformat a TypeScript this-parameter in BaseError.from; remove many per-package tsconfig baseUrl entries and make a few template/path tweaks.

Changes

Cohort / File(s) Summary
Workspace config
pnpm-workspace.yaml
Bump catalog dependency versions (@types/node ^24.9.1 → ^24.10.0, oxlint ^1.24.0 → ^1.25.0, oxlint-tsgolint ^0.4.0 → ^0.5.0, rimraf ^6.0.1 → ^6.1.0) and add entries to minimumReleaseAgeExclude (@oxlint/*, @oxlint-tsgolint/*, plus oxlint-tsgolint, oxlint, oxc-minify).
Root scripts
package.json
Make recursive scripts use parallel execution where applicable and add pre-clean sequencing: clean now runs pnpm -r --parallel run clean && rimraf ...; build becomes pnpm clean && pnpm -r run build; add build:parallel; add typecheck:parallel; preci uses pnpm -r --parallel run pretest.
Tests — IPC
packages/egg/test/lib/core/messenger/ipc.test.ts
Replace null with undefined in process.emit('message', ...) calls and related payload arguments.
Tests — Windows skips
plugins/schedule/test/cronError.test.ts, plugins/schedule/test/customType.test.ts, plugins/schedule/test/executeError.test.ts, plugins/schedule/test/customTypePlugin.test.ts, packages/cluster/test/master/messenger.test.ts, tools/create-egg/test/cli.test.ts
Wrap suites/tests with conditional skips describe.skipIf(process.platform === 'win32') / it.skipIf(...) (Windows-flaky guards) and add FIXME/comments/timeouts where present; test logic unchanged.
Errors — typing tweak
packages/errors/src/base.ts
Reflow/reformat TypeScript generics/this-parameter on BaseError.from signature (typing/formatting change only; runtime unchanged).
tsconfig removals / template tweaks
Multiple tsconfig and template files (examples//tsconfig.json, packages//test/fixtures//tsconfig.json, plugins//test/fixtures//tsconfig.json, site/tsconfig.json, tsconfig.json, tegg//test/fixtures//tsconfig.json, tools/create-egg/src/templates//tsconfig.json, tools/egg-bin/test/fixtures//tsconfig.json, packages/tsconfig/test/fixtures//tsconfig.json)
Remove many local compilerOptions.baseUrl entries, adjust a few paths mappings (add/remove leading ./), change one exclude from node_modules*node_modules, and perform minor formatting/indentation edits across templates and configs.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as Developer
  participant Root as Root scripts (package.json)
  participant PNPM as pnpm
  participant Pkg as Packages (monorepo)

  Note over Root: build/typecheck now run with an explicit pre-clean and optional parallelism
  Dev->>Root: npm run build (or build:parallel / typecheck:parallel)
  Root->>PNPM: pnpm clean && pnpm -r (--parallel) run build
  alt parallel
    PNPM->>Pkg: run build (Pkg A) — parallel
    PNPM->>Pkg: run build (Pkg B) — parallel
  else serial
    PNPM->>Pkg: run build (Pkg A) — sequential
    PNPM->>Pkg: run build (Pkg B) — sequential
  end
  Pkg-->>PNPM: exit statuses
  PNPM-->>Root: aggregated exit
  Root-->>Dev: process exit
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Review focus:
    • Verify version bumps and minimumReleaseAgeExclude entries in pnpm-workspace.yaml.
    • Confirm package.json script ordering and safe use of --parallel.
    • Check IPC tests for behavioral equivalence after nullundefined changes.
    • Validate Windows conditional skips (ensure not hiding real failures).
    • Inspect packages/errors/src/base.ts TypeScript signature formatting for correctness.
    • Spot-check key tsconfig removals and template path tweaks to avoid breaking imports.

Possibly related PRs

Poem

🐰 I nudged the configs, hopped through each line,
Scripts tidy now, some run parallel in time,
Tests dodge Windows where timeouts misbehave,
Messages whisper "undefined" — small and brave,
A rabbit's little hop to keep the build in rhyme.

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'chore: update deps' is vague and doesn't convey the actual scope of changes. The PR includes not just dependency updates but also significant structural changes like removing baseUrl from 25+ tsconfig.json files, adding parallel execution scripts, replacing null with undefined, and adding Windows-specific test skips. Consider a more descriptive title that captures the main changes, such as 'chore: update deps and remove baseUrl from tsconfig files' or separate this into multiple focused PRs.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 52b23c0 and 4731669.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (30)
  • examples/helloworld-tegg/tsconfig.json (1 hunks)
  • examples/helloworld-typescript/tsconfig.json (1 hunks)
  • package.json (1 hunks)
  • packages/cluster/test/master/messenger.test.ts (1 hunks)
  • packages/core/test/fixtures/app-ts/tsconfig.json (0 hunks)
  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json (1 hunks)
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json (1 hunks)
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig.json (0 hunks)
  • packages/egg/test/fixtures/apps/app-ts/tsconfig.json (0 hunks)
  • packages/egg/test/lib/core/messenger/ipc.test.ts (3 hunks)
  • packages/errors/src/base.ts (1 hunks)
  • packages/tsconfig/test/fixtures/apps/ts-proj/tsconfig.json (0 hunks)
  • plugins/multipart/test/fixtures/apps/ts/tsconfig.json (0 hunks)
  • plugins/schedule/test/cronError.test.ts (1 hunks)
  • plugins/schedule/test/customType.test.ts (1 hunks)
  • plugins/schedule/test/customTypePlugin.test.ts (1 hunks)
  • plugins/schedule/test/executeError.test.ts (1 hunks)
  • plugins/view/test/fixtures/apps/ts/tsconfig.json (1 hunks)
  • pnpm-workspace.yaml (4 hunks)
  • site/tsconfig.json (0 hunks)
  • tegg/core/dynamic-inject/test/fixtures/modules/wrong-enum-module/tsconfig.json (0 hunks)
  • tegg/core/dynamic-inject/test/fixtures/modules/wrong-extends-module/tsconfig.json (0 hunks)
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json (1 hunks)
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json (1 hunks)
  • tools/create-egg/src/templates/simple-ts/tsconfig.json (1 hunks)
  • tools/create-egg/src/templates/tegg/tsconfig.json (1 hunks)
  • tools/create-egg/test/cli.test.ts (2 hunks)
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json (1 hunks)
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json (1 hunks)
  • tsconfig.json (0 hunks)

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.

Copy link
Contributor

@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 updates several dependencies. While most changes seem correct, there are a few inconsistencies in pnpm-lock.yaml that should be addressed. Specifically, the catalogs section has version mismatches for @types/node and oxlint where the resolved version does not match the updated specifier. Additionally, the deprecated flag for the keygrip package has been removed, which is not ideal as it hides important information from developers. These issues suggest the lock file might be in an inconsistent state. It is recommended to regenerate the pnpm-lock.yaml file by running pnpm install to ensure its integrity.

pnpm-lock.yaml Outdated
'@types/node':
specifier: ^24.9.1
specifier: ^24.9.2
version: 24.9.1
Copy link
Contributor

Choose a reason for hiding this comment

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

high

There's an inconsistency in the lock file for @types/node. The specifier has been updated to ^24.9.2, but the resolved version is still 24.9.1. This should be 24.9.2 to match the specifier and other parts of the lock file where this dependency is used. This might indicate an incomplete dependency update.

      version: 24.9.2

pnpm-lock.yaml Outdated
oxlint:
specifier: ^1.24.0
specifier: ^1.25.0
version: 1.24.0
Copy link
Contributor

Choose a reason for hiding this comment

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

high

Similar to the issue with @types/node, there's an inconsistency here for oxlint. The specifier is ^1.25.0 but the resolved version is 1.24.0. This should be updated to 1.25.0 to maintain consistency in the lock file.

      version: 1.25.0

keygrip@1.1.0:
resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==}
engines: {node: '>= 0.6'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The deprecated field for keygrip@1.1.0 was removed. This package is indeed deprecated, and this field provides a useful warning to developers. It's better to keep it in the lockfile. Was this removal intentional?

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 30, 2025

Deploying egg with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0803087
Status: ✅  Deploy successful!
Preview URL: https://ae88968d.egg-cci.pages.dev
Branch Preview URL: https://update-deps.egg-cci.pages.dev

View logs

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 30, 2025

Deploying egg-v3 with  Cloudflare Pages  Cloudflare Pages

Latest commit: 52b23c0
Status: ✅  Deploy successful!
Preview URL: https://c450908a.egg-v3.pages.dev
Branch Preview URL: https://update-deps.egg-v3.pages.dev

View logs

@codecov
Copy link

codecov bot commented Oct 30, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.43%. Comparing base (57751a0) to head (4731669).
⚠️ Report is 2 commits behind head on next.

Additional details and impacted files
@@            Coverage Diff             @@
##             next    #5671      +/-   ##
==========================================
+ Coverage   85.42%   87.43%   +2.00%     
==========================================
  Files         561      561              
  Lines       10931    10931              
  Branches     1238     1238              
==========================================
+ Hits         9338     9557     +219     
+ Misses       1494     1290     -204     
+ Partials       99       84      -15     

☔ 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
Contributor

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 updates several development dependencies in the monorepo's catalog configuration. The changes include version bumps for TypeScript types and build/linting tools.

  • Updates @types/node from ^24.9.1 to ^24.9.2
  • Updates oxlint from ^1.24.0 to ^1.25.0
  • Updates oxfmt from ^0.8.0 to ^0.9.0
  • Updates oxc-minify from ^0.95.0 to ^0.96.0
  • Updates oxlint-tsgolint from ^0.3.0 to ^0.4.0
  • Adds oxlint-tsgolint, oxlint, and oxc-minify to the minimumReleaseAgeExclude list

Reviewed Changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 2 comments.

File Description
pnpm-workspace.yaml Updates catalog versions for @types/node, oxlint, oxfmt, oxc-minify, oxlint-tsgolint; adds these tools to minimumReleaseAgeExclude
pnpm-lock.yaml Updates lockfile with resolved versions and dependency graph changes corresponding to catalog updates
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

@socket-security
Copy link

socket-security bot commented Oct 31, 2025

No dependency changes detected. Learn more about Socket for GitHub.

👍 No dependency changes detected in pull request

Copy link
Contributor

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

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between efaa265 and 4021a81.

📒 Files selected for processing (4)
  • package.json (1 hunks)
  • plugins/schedule/test/cronError.test.ts (1 hunks)
  • plugins/schedule/test/customType.test.ts (1 hunks)
  • plugins/schedule/test/executeError.test.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (6)
**/*.ts

📄 CodeRabbit inference engine (AGENTS.md)

**/*.ts: Prefer TypeScript and ESM: write sources and exports in .ts (ESM-first) rather than CommonJS
Use two-space indentation, trailing commas, and semicolons (Prettier/oxlint defaults)
Name files in lowercase with hyphens (e.g., loader-context.ts)
Name classes in PascalCase
Name functions and variables in camelCase
Re-export types thoughtfully to keep the public API stable

Files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
**/test/**/*.test.ts

📄 CodeRabbit inference engine (AGENTS.md)

**/test/**/*.test.ts: Place test suites following Vitest discovery: /test//*.test.ts
Mirror the repository test pattern when adding new suites

Files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
{packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts

📄 CodeRabbit inference engine (CLAUDE.md)

{packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts: For isolatedDeclarations support, all exported functions/methods/getters must have explicit return type annotations
Avoid computed property names with symbols in class declarations (no get SYM)
Add explicit type annotations for class properties when needed (no inferred exported property types)
Exported symbols must use unique symbol type (e.g., export const X: unique symbol = Symbol('x'))

Files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
{packages/!(cookies)/**/test/**/*.test.ts,plugins/**/test/**/*.test.ts}

📄 CodeRabbit inference engine (CLAUDE.md)

Vitest test files must follow the naming pattern test/**/*.test.ts

Files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
{packages/**/test/**,plugins/**/test/**}

📄 CodeRabbit inference engine (CLAUDE.md)

Use Node.js assert for assertions in Vitest tests

Files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
{package.json,packages/**/package.json,plugins/**/package.json,tools/**/package.json}

📄 CodeRabbit inference engine (CLAUDE.md)

All packages must require Node.js >= 22.18.0 (set engines.node to ">=22.18.0")

Files:

  • package.json
🧠 Learnings (22)
📓 Common learnings
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Use pnpm workspaces with catalog: for shared externals and workspace:* for internal deps; centralize versions in root pnpm-workspace.yaml; set catalogMode: prefer in root .npmrc
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Use catalog: versions for external dependencies defined in pnpm-workspace.yaml
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to pnpm-workspace.yaml : Define dependency versions via the catalog section in pnpm-workspace.yaml and reference them with "catalog:"
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/{core,plugin,standalone}/*/package.json : Use workspace:* for internal monorepo dependencies and catalog: for external dependencies
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Run pnpm run test locally before submitting changes
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "lint:fix" that runs oxlint with --fix (e.g., "pnpm run lint -- --fix")
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Use workspace:* for internal dependencies between monorepo packages
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/*/package.json : Use "workspace:*" for internal workspace dependencies in package.json
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to plugins/*/package.json : Plugins must include scripts: build (tsdown && rimraf dist *.tsbuildinfo && tsc -p tsconfig.build.json), typecheck (tsc --noEmit), lint (oxlint --type-aware), test (vitest run), prepublishOnly (pnpm run build)
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Use pnpm with Node.js ≥ 20.19.0; keep local tool versions aligned with the repository packageManager
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/**/test/**/*.test.ts : Use import { describe, it } from 'vitest' in tests

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/plugin/*/{test,tests}/**/*.ts : Add Vitest tests for plugins using eggjs/mock; tests will be discovered by the root vitest config

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/cookies/test/**/*.test.ts,tools/egg-bin/test/**/*.test.ts} : Mocha test suites (cookies, egg-bin) must use test/**/*.test.ts

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/**/test/**/*.test.ts : Use Node.js built-in assert module for test assertions

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Tests are executed via root vitest.config.ts and should not rely on per-package test scripts

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
  • package.json
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: For features affecting HTTP or process orchestration, add regression tests that exercise both the CommonJS and TypeScript example apps

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/executeError.test.ts
  • plugins/schedule/test/cronError.test.ts
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/!(cookies)/**/test/**/*.test.ts,plugins/**/test/**/*.test.ts} : Vitest test files must follow the naming pattern test/**/*.test.ts

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/cronError.test.ts
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Applies to **/test/**/*.test.ts : Mirror the repository test pattern when adding new suites

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/cronError.test.ts
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/test/**,plugins/**/test/**} : Use Node.js assert for assertions in Vitest tests

Applied to files:

  • plugins/schedule/test/customType.test.ts
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/vitest.config.ts,plugins/**/vitest.config.ts} : Packages using Vitest must include a vitest.config.ts and import test functions from vitest

Applied to files:

  • plugins/schedule/test/customType.test.ts
  • plugins/schedule/test/cronError.test.ts
  • package.json
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/**/test/**/*.test.ts : Name test files as test/**/*.test.ts and run them with Vitest

Applied to files:

  • plugins/schedule/test/cronError.test.ts
  • package.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to plugins/*/package.json : Plugins must include scripts: build (tsdown && rimraf dist *.tsbuildinfo && tsc -p tsconfig.build.json), typecheck (tsc --noEmit), lint (oxlint --type-aware), test (vitest run), prepublishOnly (pnpm run build)

Applied to files:

  • package.json
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/core/*/package.json : Core packages should include scripts: typecheck, clean, build (tsc --noEmit, rimraf, build pipeline)

Applied to files:

  • package.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "lint:fix" that runs oxlint with --fix (e.g., "pnpm run lint -- --fix")

Applied to files:

  • package.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "typecheck": "tsc --noEmit" in all packages

Applied to files:

  • package.json
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Run pnpm run test locally before submitting changes

Applied to files:

  • package.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "lint": "oxlint --type-aware" in all packages

Applied to files:

  • package.json
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Use pnpm with Node.js ≥ 20.19.0; keep local tool versions aligned with the repository packageManager

Applied to files:

  • package.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Use catalog: versions for external dependencies defined in pnpm-workspace.yaml

Applied to files:

  • package.json
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Run build, test, and versioning commands from the monorepo root (Egg.js repo), not from tegg/

Applied to files:

  • package.json
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/{core,plugin,standalone}/*/package.json : Use workspace:* for internal monorepo dependencies and catalog: for external dependencies

Applied to files:

  • package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (21)
  • GitHub Check: Socket Security: Pull Request Alerts
  • GitHub Check: Test (ubuntu-latest, 24, 4/5)
  • GitHub Check: Test (ubuntu-latest, 22, 3/5)
  • GitHub Check: Test (macos-latest, 22, 2/5)
  • GitHub Check: Test (windows-latest, 24, 3/5)
  • GitHub Check: Test (windows-latest, 24, 4/5)
  • GitHub Check: Test (macos-latest, 22, 4/5)
  • GitHub Check: Test (macos-latest, 24, 4/5)
  • GitHub Check: Test (macos-latest, 24, 3/5)
  • GitHub Check: Test (macos-latest, 22, 3/5)
  • GitHub Check: Test (windows-latest, 22, 1/5)
  • GitHub Check: Test (ubuntu-latest, 24, 3/5)
  • GitHub Check: Test (ubuntu-latest, 22, 1/5)
  • GitHub Check: Test bin (ubuntu-latest, 22, 0/3)
  • GitHub Check: Test bin (windows-latest, 22, 0/3)
  • GitHub Check: Test bin (windows-latest, 22, 1/3)
  • GitHub Check: Test bin (windows-latest, 22, 2/3)
  • GitHub Check: Test bin (ubuntu-latest, 22, 1/3)
  • GitHub Check: Test bin (ubuntu-latest, 22, 2/3)
  • GitHub Check: typecheck
  • GitHub Check: Analyze (javascript-typescript)

Copy link
Contributor

@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

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 74573c1 and 52b23c0.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (24)
  • examples/helloworld-tegg/tsconfig.json (1 hunks)
  • examples/helloworld-typescript/tsconfig.json (1 hunks)
  • packages/cluster/test/master/messenger.test.ts (1 hunks)
  • packages/core/test/fixtures/app-ts/tsconfig.json (0 hunks)
  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json (1 hunks)
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json (1 hunks)
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig.json (0 hunks)
  • packages/egg/test/fixtures/apps/app-ts/tsconfig.json (0 hunks)
  • packages/tsconfig/test/fixtures/apps/ts-proj/tsconfig.json (0 hunks)
  • plugins/multipart/test/fixtures/apps/ts/tsconfig.json (0 hunks)
  • plugins/schedule/test/customTypePlugin.test.ts (1 hunks)
  • plugins/view/test/fixtures/apps/ts/tsconfig.json (1 hunks)
  • pnpm-workspace.yaml (4 hunks)
  • site/tsconfig.json (0 hunks)
  • tegg/core/dynamic-inject/test/fixtures/modules/wrong-enum-module/tsconfig.json (0 hunks)
  • tegg/core/dynamic-inject/test/fixtures/modules/wrong-extends-module/tsconfig.json (0 hunks)
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json (1 hunks)
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json (1 hunks)
  • tools/create-egg/src/templates/simple-ts/tsconfig.json (1 hunks)
  • tools/create-egg/src/templates/tegg/tsconfig.json (1 hunks)
  • tools/create-egg/test/cli.test.ts (2 hunks)
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json (1 hunks)
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json (1 hunks)
  • tsconfig.json (0 hunks)
💤 Files with no reviewable changes (9)
  • tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts/tsconfig.json
  • tegg/core/dynamic-inject/test/fixtures/modules/wrong-enum-module/tsconfig.json
  • packages/core/test/fixtures/app-ts/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig.json
  • plugins/multipart/test/fixtures/apps/ts/tsconfig.json
  • packages/tsconfig/test/fixtures/apps/ts-proj/tsconfig.json
  • site/tsconfig.json
  • tegg/core/dynamic-inject/test/fixtures/modules/wrong-extends-module/tsconfig.json
🧰 Additional context used
📓 Path-based instructions (9)
**/*.ts

📄 CodeRabbit inference engine (AGENTS.md)

**/*.ts: Prefer TypeScript and ESM: write sources and exports in .ts (ESM-first) rather than CommonJS
Use two-space indentation, trailing commas, and semicolons (Prettier/oxlint defaults)
Name files in lowercase with hyphens (e.g., loader-context.ts)
Name classes in PascalCase
Name functions and variables in camelCase
Re-export types thoughtfully to keep the public API stable

Files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • tools/create-egg/test/cli.test.ts
  • packages/cluster/test/master/messenger.test.ts
**/test/**/*.test.ts

📄 CodeRabbit inference engine (AGENTS.md)

**/test/**/*.test.ts: Place test suites following Vitest discovery: /test//*.test.ts
Mirror the repository test pattern when adding new suites

Files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • tools/create-egg/test/cli.test.ts
  • packages/cluster/test/master/messenger.test.ts
{packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts

📄 CodeRabbit inference engine (CLAUDE.md)

{packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts: For isolatedDeclarations support, all exported functions/methods/getters must have explicit return type annotations
Avoid computed property names with symbols in class declarations (no get SYM)
Add explicit type annotations for class properties when needed (no inferred exported property types)
Exported symbols must use unique symbol type (e.g., export const X: unique symbol = Symbol('x'))

Files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • tools/create-egg/test/cli.test.ts
  • packages/cluster/test/master/messenger.test.ts
{packages/!(cookies)/**/test/**/*.test.ts,plugins/**/test/**/*.test.ts}

📄 CodeRabbit inference engine (CLAUDE.md)

Vitest test files must follow the naming pattern test/**/*.test.ts

Files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • packages/cluster/test/master/messenger.test.ts
{packages/**/test/**,plugins/**/test/**}

📄 CodeRabbit inference engine (CLAUDE.md)

Use Node.js assert for assertions in Vitest tests

Files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • packages/cluster/test/master/messenger.test.ts
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
packages/egg/test/fixtures/apps/**

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Place scenario test fixtures under packages/egg/test/fixtures/apps/

Files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
**/test/fixtures/**

📄 CodeRabbit inference engine (AGENTS.md)

Put reusable test data under test/fixtures/

Files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
packages/**/test/**/*.test.ts

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

packages/**/test/**/*.test.ts: Name test files as test/**/*.test.ts and run them with Vitest
Use import { describe, it } from 'vitest' in tests
Use Node.js built-in assert module for test assertions

Files:

  • packages/cluster/test/master/messenger.test.ts
pnpm-workspace.yaml

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Define dependency versions via the catalog section in pnpm-workspace.yaml and reference them with "catalog:"

Files:

  • pnpm-workspace.yaml
🧠 Learnings (54)
📓 Common learnings
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Use pnpm workspaces with catalog: for shared externals and workspace:* for internal deps; centralize versions in root pnpm-workspace.yaml; set catalogMode: prefer in root .npmrc
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to plugins/*/package.json : Plugins must include scripts: build (tsdown && rimraf dist *.tsbuildinfo && tsc -p tsconfig.build.json), typecheck (tsc --noEmit), lint (oxlint --type-aware), test (vitest run), prepublishOnly (pnpm run build)
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/{core,plugin,standalone}/*/package.json : Use workspace:* for internal monorepo dependencies and catalog: for external dependencies
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/core/*/package.json : Core packages should include scripts: typecheck, clean, build (tsc --noEmit, rimraf, build pipeline)
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/*/package.json : Use "workspace:*" for internal workspace dependencies in package.json
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Use workspace:* for internal dependencies between monorepo packages
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "lint:fix" that runs oxlint with --fix (e.g., "pnpm run lint -- --fix")
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "typecheck": "tsc --noEmit" in all packages
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Use catalog: versions for external dependencies defined in pnpm-workspace.yaml
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/plugin/*/{test,tests}/**/*.ts : Add Vitest tests for plugins using eggjs/mock; tests will be discovered by the root vitest config

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • examples/helloworld-tegg/tsconfig.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/create-egg/test/cli.test.ts
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/**/test/**/*.test.ts : Use import { describe, it } from 'vitest' in tests

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • tools/create-egg/test/cli.test.ts
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/cookies/test/**/*.test.ts,tools/egg-bin/test/**/*.test.ts} : Mocha test suites (cookies, egg-bin) must use test/**/*.test.ts

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/test/cli.test.ts
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to plugins/*/package.json : Plugins must include scripts: build (tsdown && rimraf dist *.tsbuildinfo && tsc -p tsconfig.build.json), typecheck (tsc --noEmit), lint (oxlint --type-aware), test (vitest run), prepublishOnly (pnpm run build)

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • pnpm-workspace.yaml
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/!(cookies)/**/test/**/*.test.ts,plugins/**/test/**/*.test.ts} : Vitest test files must follow the naming pattern test/**/*.test.ts

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • pnpm-workspace.yaml
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/**/test/**/*.test.ts : Use Node.js built-in assert module for test assertions

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • tools/create-egg/test/cli.test.ts
  • packages/cluster/test/master/messenger.test.ts
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/vitest.config.ts,plugins/**/vitest.config.ts} : Packages using Vitest must include a vitest.config.ts and import test functions from vitest

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • pnpm-workspace.yaml
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: For features affecting HTTP or process orchestration, add regression tests that exercise both the CommonJS and TypeScript example apps

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • packages/cluster/test/master/messenger.test.ts
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Tests are executed via root vitest.config.ts and should not rely on per-package test scripts

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
  • tools/create-egg/test/cli.test.ts
  • packages/cluster/test/master/messenger.test.ts
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/test/**,plugins/**/test/**} : Use Node.js assert for assertions in Vitest tests

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/plugin/*/app.ts : Plugin packages must include app.ts for initialization

Applied to files:

  • plugins/schedule/test/customTypePlugin.test.ts
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/**/src/**/*.{ts,tsx,js,mjs} : Do not use CommonJS APIs (require, module.exports); author code as ESM

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts : Add explicit type annotations for class properties when needed (no inferred exported property types)

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/core/*/tsconfig.json : Core packages must include tsconfig.json extending eggjs/tsconfig

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/**/src/**/*.{ts,tsx} : Use .js extensions in ESM import specifiers in TypeScript source

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/*/tsdown.config.ts : Each package must provide a tsdown.config.ts for unbundled ESM builds

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts : For isolatedDeclarations support, all exported functions/methods/getters must have explicit return type annotations

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/*/tsconfig.json,plugins/*/tsconfig.json,tools/*/tsconfig.json} : Sub-project tsconfig.json must contain only { "extends": "../../tsconfig.json" } (no additional options)

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts : Exported symbols must use unique symbol type (e.g., export const X: unique symbol = Symbol('x'))

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**,plugins/**,tools/!(egg-bin)/**}/**/*.ts : Avoid computed property names with symbols in class declarations (no get [SYM]())

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/*/tsconfig.json : All sub-project tsconfig.json files must extend from the root via "extends": "../../tsconfig.json"

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/*/tsconfig.build.json,plugins/*/tsconfig.build.json,tools/*/tsconfig.build.json} : Sub-project tsconfig.build.json must contain only { "extends": "../../tsconfig.build.json" }

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Applies to **/*.ts : Prefer TypeScript and ESM: write sources and exports in .ts (ESM-first) rather than CommonJS

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to plugins/*/tsdown.config.ts : All plugins must use the standard tsdown configuration (entry: 'src/**/*.ts', unbundle: true, dts: true, exports.devExports: true)

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to {tsconfig.json,packages/*/tsconfig.json} : Enable strict TypeScript mode across all packages

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "typecheck": "tsc --noEmit" in all packages

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • tools/egg-bin/test/fixtures/example-ts/tsconfig.json
  • pnpm-workspace.yaml
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/{core,plugin,standalone}/*/package.json : Set package.json "type": "module" (ESM only; no CommonJS) in all tegg packages

Applied to files:

  • tools/create-egg/src/templates/tegg/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/{core,plugin,standalone}/*/tsconfig.json : Enable emitDecoratorMetadata in tsconfig to support decorator-based injection type inference

Applied to files:

  • tools/create-egg/src/templates/tegg/tsconfig.json
  • examples/helloworld-tegg/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {package.json,packages/**/package.json,plugins/**/package.json,tools/**/package.json} : All packages must require Node.js >= 22.18.0 (set engines.node to ">=22.18.0")

Applied to files:

  • tools/create-egg/src/templates/tegg/tsconfig.json
  • tools/create-egg/src/templates/simple-ts/tsconfig.json
  • pnpm-workspace.yaml
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Applies to **/*.ts : Re-export types thoughtfully to keep the public API stable

Applied to files:

  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • examples/helloworld-typescript/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to **/.eslintrc{,.js,.json,.cjs,.yaml,.yml} : Do not include any ESLint configuration files (project uses oxlint)

Applied to files:

  • tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json
  • pnpm-workspace.yaml
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to plugins/*/src/types.ts : All plugins must provide src/types.ts that augments module 'egg' (module augmentation, config types, interface extensions, .ts import extensions, documented properties)

Applied to files:

  • examples/helloworld-tegg/tsconfig.json
  • examples/helloworld-typescript/tsconfig.json
  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to plugins/*/package.json : Plugins must declare peerDependencies: { "egg": "workspace:*" }

Applied to files:

  • examples/helloworld-tegg/tsconfig.json
  • examples/helloworld-typescript/tsconfig.json
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Applies to **/*.ts : Use two-space indentation, trailing commas, and semicolons (Prettier/oxlint defaults)

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
  • tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json
  • plugins/view/test/fixtures/apps/ts/tsconfig.json
  • pnpm-workspace.yaml
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to tsconfig.json : Root tsconfig.json must include all packages in the references array

Applied to files:

  • packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/**/test/**/*.test.ts : Name test files as test/**/*.test.ts and run them with Vitest

Applied to files:

  • tools/create-egg/test/cli.test.ts
  • pnpm-workspace.yaml
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Applies to **/test/**/*.test.ts : Mirror the repository test pattern when adding new suites

Applied to files:

  • tools/create-egg/test/cli.test.ts
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Run build, test, and versioning commands from the monorepo root (Egg.js repo), not from tegg/

Applied to files:

  • tools/create-egg/test/cli.test.ts
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/config/module.json : Alternatively declare modules via config/module.json for npm packages

Applied to files:

  • tools/create-egg/src/templates/egg3-tegg/tsconfig.json
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/plugin/*/package.json : Plugin packages must define eggPlugin in package.json with dependencies

Applied to files:

  • plugins/view/test/fixtures/apps/ts/tsconfig.json
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Use catalog: versions for external dependencies defined in pnpm-workspace.yaml

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to pnpm-workspace.yaml : Define dependency versions via the catalog section in pnpm-workspace.yaml and reference them with "catalog:"

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Use pnpm workspaces with catalog: for shared externals and workspace:* for internal deps; centralize versions in root pnpm-workspace.yaml; set catalogMode: prefer in root .npmrc

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/{core,plugin,standalone}/*/package.json : Use workspace:* for internal monorepo dependencies and catalog: for external dependencies

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-09-18T07:56:17.417Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-09-18T07:56:17.417Z
Learning: Use pnpm with Node.js ≥ 20.19.0; keep local tool versions aligned with the repository packageManager

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Use workspace:* for internal dependencies between monorepo packages

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "lint:fix" that runs oxlint with --fix (e.g., "pnpm run lint -- --fix")

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Applies to packages/*/package.json : Use "workspace:*" for internal workspace dependencies in package.json

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-09-14T08:41:30.618Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-09-14T08:41:30.618Z
Learning: Require Node.js version >= 20.19.0 for all development and CI environments

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Use Node.js >= 22.18.0

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to {packages/**/package.json,plugins/**/package.json,tools/**/package.json} : Include script "lint": "oxlint --type-aware" in all packages

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-18T11:59:58.226Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-10-18T11:59:58.226Z
Learning: Applies to **/.eslintignore : Remove .eslintignore files (oxlint is the standard linter)

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-10-23T17:37:37.567Z
Learnt from: CR
Repo: eggjs/egg PR: 0
File: tegg/CLAUDE.md:0-0
Timestamp: 2025-10-23T17:37:37.567Z
Learning: Applies to tegg/core/*/package.json : Core packages should include scripts: typecheck, clean, build (tsc --noEmit, rimraf, build pipeline)

Applied to files:

  • pnpm-workspace.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (22)
  • GitHub Check: Socket Security: Pull Request Alerts
  • GitHub Check: Test (windows-latest, 22, 4/5)
  • GitHub Check: Test (windows-latest, 22, 1/5)
  • GitHub Check: Test (macos-latest, 24, 1/5)
  • GitHub Check: Test (macos-latest, 24, 3/5)
  • GitHub Check: Test (macos-latest, 24, 2/5)
  • GitHub Check: Test (macos-latest, 22, 5/5)
  • GitHub Check: Test (ubuntu-latest, 24, 3/5)
  • GitHub Check: Test (ubuntu-latest, 24, 2/5)
  • GitHub Check: Test (macos-latest, 22, 1/5)
  • GitHub Check: Test (ubuntu-latest, 22, 1/5)
  • GitHub Check: Test (windows-latest, 24, 4/5)
  • GitHub Check: Test (ubuntu-latest, 22, 2/5)
  • GitHub Check: Test bin (ubuntu-latest, 22, 2/3)
  • GitHub Check: Test bin (ubuntu-latest, 22, 0/3)
  • GitHub Check: Test bin (windows-latest, 22, 2/3)
  • GitHub Check: Test bin (ubuntu-latest, 22, 1/3)
  • GitHub Check: Test bin (windows-latest, 22, 1/3)
  • GitHub Check: Test bin (windows-latest, 22, 0/3)
  • GitHub Check: typecheck
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: Cloudflare Pages: egg-v3
🔇 Additional comments (15)
packages/egg/test/fixtures/apps/app-ts-type-check/tsconfig-error.json (1)

2-2: Clean simplification of test fixture configuration.

Removing the redundant baseUrl setting and relying solely on the parent configuration makes the test fixture's tsconfig cleaner and more maintainable. The file now properly delegates all settings to ../app-ts/tsconfig.json.

plugins/view/test/fixtures/apps/ts/tsconfig.json (1)

1-7: LGTM – baseUrl removal aligns with PR cleanup objectives.

The removal of baseUrl from this test fixture configuration is appropriate and consistent with the PR's goal to clean up tsconfig baseUrl entries across the monorepo. Test fixtures can legitimately maintain compiler options to simulate different configuration scenarios, and this one retains the essential extends directive and relevant compiler flags.

tools/egg-bin/test/fixtures/test-demo-app-esm/tsconfig.json (1)

1-11: Simplifying test fixture configuration.

Removing baseUrl and relying on inherited configuration from @eggjs/tsconfig is appropriate here. Test fixtures don't require explicit path resolution overrides.

tools/create-egg/src/templates/egg3-simple-ts/tsconfig.json (1)

1-3: Narrowing exclude pattern for precision.

Removing the wildcard from node_modules* to node_modules is more precise and prevents unintended exclusion of similarly-named paths. This is a cleaner configuration.

packages/egg/test/fixtures/apps/app-ts-esm/tsconfig.json (1)

1-6: Simplifying fixture configuration.

Removing baseUrl and relying on inherited settings from the parent fixture (app-ts/tsconfig.json) is appropriate. The esModuleInterop setting is preserved as needed.

tools/create-egg/src/templates/tegg/tsconfig.json (1)

1-12: LGTM.

Removing baseUrl and relying on inherited configuration is sound. The template settings are clean and minimal.

tools/create-egg/src/templates/simple-ts/tsconfig.json (1)

1-9: LGTM.

Removing baseUrl and leaning on inherited configuration is appropriate. The template remains clean and focused.

tools/create-egg/src/templates/egg3-tegg/tsconfig.json (1)

1-12: Path alias correctly updated for baseUrl removal.

Adding ./ to the path alias (./app/module/*) makes it explicitly relative to the tsconfig root, which is necessary when baseUrl is inherited from the extended configuration. This maintains proper module resolution.

examples/helloworld-typescript/tsconfig.json (1)

1-3: Appropriate simplification for example.

Removing the compilerOptions block and keeping only the extends directive is ideal for example apps. Examples benefit from reduced configuration complexity while still inheriting the standard toolchain settings.

examples/helloworld-tegg/tsconfig.json (1)

1-3: Appropriate simplification for example.

Removing the compilerOptions block and keeping only the extends directive is ideal for example apps. Consistent with the helloworld-typescript example and reduces configuration noise.

tools/egg-bin/test/fixtures/example-ts/tsconfig.json (1)

13-13: Removal of baseUrl from fixture aligns with PR objectives.

This change is consistent with the PR's broad removal of baseUrl entries across tsconfig.json files. The fixture retains the paths mapping and test-specific compiler options needed for fixture testing.

pnpm-workspace.yaml (2)

172-175: Verify the oxc-minify version downgrade.

The catalog update downgrades oxc-minify from ^0.96.0 to ^0.82.1 (0.82.1 < 0.96.0). This is unusual; version downgrades typically indicate a regression fix or deliberate rollback. Please confirm this is intentional and review the oxc-minify release notes between these versions to understand the reason.

The other version updates (@types/node, oxlint, oxlint-tsgolint, rimraf) follow standard minor/patch upgrade patterns.

Also applies to: 184-184


232-233: minimumReleaseAgeExclude additions align with dependency updates.

The additions (@oxlint/, @oxlint-tsgolint/, oxlint-tsgolint, oxlint, oxc-minify) appropriately exclude development tooling from the minimum release age policy, enabling rapid updates when needed. This is consistent with the PR's dependency version bumps.

Also applies to: 241-243

plugins/schedule/test/customTypePlugin.test.ts (1)

8-9: Appropriate Windows skip for flaky test.

The conditional skip for Windows is reasonable given the documented timeout issues. The pattern is consistent with similar test handling across the schedule plugin.

packages/cluster/test/master/messenger.test.ts (1)

15-16: Appropriate Windows skip for flaky test.

The conditional skip for the individual test is appropriate given the documented Windows flakiness. Using it.skipIf allows other tests in the suite to continue running.

Comment on lines +159 to +161
test
.skipIf(process.platform === 'win32' || process.env.CI)
.skip('successfully scaffolds a project based on tegg starter template', () => {
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Test is unconditionally skipped due to chained .skip().

Chaining .skipIf(condition).skip(...) causes the test to be always skipped, regardless of the condition. The .skip() method unconditionally skips the test, making the .skipIf() condition ineffective.

Apply this diff to conditionally skip only on Windows or CI:

-test
-  .skipIf(process.platform === 'win32' || process.env.CI)
-  .skip('successfully scaffolds a project based on tegg starter template', () => {
+test.skipIf(process.platform === 'win32' || process.env.CI)('successfully scaffolds a project based on tegg starter template', () => {

Or if the test should remain unconditionally skipped, use only .skip():

-test
-  .skipIf(process.platform === 'win32' || process.env.CI)
-  .skip('successfully scaffolds a project based on tegg starter template', () => {
+test.skip('successfully scaffolds a project based on tegg starter template', () => {
📝 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
test
.skipIf(process.platform === 'win32' || process.env.CI)
.skip('successfully scaffolds a project based on tegg starter template', () => {
test.skipIf(process.platform === 'win32' || process.env.CI)('successfully scaffolds a project based on tegg starter template', () => {
🤖 Prompt for AI Agents
In tools/create-egg/test/cli.test.ts around lines 159-161, the test is being
unconditionally skipped because it chains .skipIf(...).skip(...); remove the
unconditional .skip(...) so the test is only skipped when the condition is true
(use test.skipIf(process.platform === 'win32' || process.env.CI)('successfully
scaffolds a project based on tegg starter template', () => { ... })) —
alternatively, if you intend the test to always be skipped, remove .skipIf(...)
and keep only test.skip('successfully scaffolds...', () => { ... }).

@fengmk2 fengmk2 merged commit 4cc4bbd into next Nov 5, 2025
44 of 46 checks passed
@fengmk2 fengmk2 deleted the update-deps branch November 5, 2025 13:29
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