-
Notifications
You must be signed in to change notification settings - Fork 13.1k
chore: Reformat package manifest files #37639
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Looks like this PR is ready to merge! 🎉 |
|
WalkthroughStandardizes ESLint ignore patterns and migrates/removes legacy ESLint configs, while reorganizing and consolidating package.json metadata, scripts, and dev tooling across many apps, ee packages, and workspace packages. No runtime code changes. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #37639 +/- ##
===========================================
- Coverage 68.79% 68.79% -0.01%
===========================================
Files 3361 3361
Lines 114201 114201
Branches 20619 20619
===========================================
- Hits 78563 78559 -4
- Misses 33543 33544 +1
- Partials 2095 2098 +3
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
There was a problem hiding this 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
♻️ Duplicate comments (20)
ee/apps/presence-service/.eslintrc.json (1)
11-11: Same ESLint ignore pattern change as other files in this PR (applies to ee/apps/stream-hub-service, packages/freeswitch, packages/account-utils, ee/packages/omnichannel-services, ee/apps/omnichannel-transcript, packages/logger, packages/agenda).See verification request in ee/apps/stream-hub-service/.eslintrc.json review for behavioral impact analysis.
packages/freeswitch/.eslintrc.json (1)
3-3: Same ESLint ignore pattern change as other files in this PR (applies to ee/apps/stream-hub-service, ee/apps/presence-service, packages/account-utils, ee/packages/omnichannel-services, ee/apps/omnichannel-transcript, packages/logger, packages/agenda).See verification request in ee/apps/stream-hub-service/.eslintrc.json review for behavioral impact analysis.
packages/account-utils/.eslintrc.json (1)
3-3: Same ESLint ignore pattern change as other files in this PR (applies to ee/apps/stream-hub-service, ee/apps/presence-service, packages/freeswitch, ee/packages/omnichannel-services, ee/apps/omnichannel-transcript, packages/logger, packages/agenda).See verification request in ee/apps/stream-hub-service/.eslintrc.json review for behavioral impact analysis.
ee/packages/omnichannel-services/.eslintrc.json (1)
3-3: Same ESLint ignore pattern change as other files in this PR (applies to ee/apps/stream-hub-service, ee/apps/presence-service, packages/freeswitch, packages/account-utils, ee/apps/omnichannel-transcript, packages/logger, packages/agenda).See verification request in ee/apps/stream-hub-service/.eslintrc.json review for behavioral impact analysis.
ee/apps/omnichannel-transcript/.eslintrc.json (1)
3-3: Same ESLint ignore pattern change as other files in this PR (applies to ee/apps/stream-hub-service, ee/apps/presence-service, packages/freeswitch, packages/account-utils, ee/packages/omnichannel-services, packages/logger, packages/agenda).See verification request in ee/apps/stream-hub-service/.eslintrc.json review for behavioral impact analysis.
packages/logger/.eslintrc.json (1)
3-3: Same ESLint ignore pattern change as other files in this PR (applies to ee/apps/stream-hub-service, ee/apps/presence-service, packages/freeswitch, packages/account-utils, ee/packages/omnichannel-services, ee/apps/omnichannel-transcript, packages/agenda).See verification request in ee/apps/stream-hub-service/.eslintrc.json review for behavioral impact analysis.
packages/agenda/.eslintrc.json (1)
3-3: Same ESLint ignore pattern change as other files in this PR (applies to ee/apps/stream-hub-service, ee/apps/presence-service, packages/freeswitch, packages/account-utils, ee/packages/omnichannel-services, ee/apps/omnichannel-transcript, packages/logger).See verification request in ee/apps/stream-hub-service/.eslintrc.json review for behavioral impact analysis.
packages/i18n/.eslintrc.json (1)
7-7: Verify narrowed ignore scope for nested dist directories.This change follows the same pattern as other files: narrowing from recursive
**/disttodist. Confirm nested dist directories won't cause linting failures on generated code.ee/apps/queue-worker/.eslintrc.json (1)
3-3: Verify narrowed ignore scope consistency.This change narrows from recursive
**/disttodistfollowing the repo-wide pattern. Confirm no nested dist directories will cause unexpected linting failures.ee/packages/ui-theming/.eslintrc.json (1)
3-3: Verify narrowed ignore scope pattern consistency.Following the repo-wide change from recursive to non-recursive dist ignore. Confirm nested paths won't cause linting issues.
packages/message-types/.eslintrc.json (1)
3-3: Narrow ignore scope verification.Consistent with repo-wide narrowing of dist ignores from recursive to non-recursive. Verify nested dist paths are acceptable targets for linting.
packages/models/.eslintrc.json (1)
3-3: Narrow ignore scope verification.Consistent with repo-wide shift to non-recursive dist ignores. Confirm no issues with linting nested dist directories.
packages/base64/.eslintrc.json (1)
7-7: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.Changing
ignorePatternsfrom"**/dist"to"dist"narrows the ignore scope from recursive to non-recursive. Nesteddistdirectories will no longer be ignored. Please confirm this narrowing is intentional and that subdirectories have appropriate ignore patterns if needed.packages/mongo-adapter/.eslintrc.json (1)
3-3: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.Changing
ignorePatternsfrom"**/dist"to"dist"narrows ignore scope to top-level only. Please confirm nesteddistdirectories should not be ignored and that subdirectories have appropriate configs if needed.packages/favicon/.eslintrc.json (1)
3-3: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.Changing
ignorePatternsfrom"**/dist"to"dist"narrows ignore scope. Confirm this is intentional and nesteddistdirectories (if any) have appropriate coverage.packages/model-typings/.eslintrc.json (1)
3-3: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.Changing
ignorePatternsfrom"**/dist"to"dist"narrows ignore scope. Confirm this is intentional for all packages and that nesteddistdirectories are handled appropriately.packages/cron/.eslintrc.json (1)
3-3: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.Changing
ignorePatternsfrom"**/dist"to"dist"narrows ignore scope. Confirm this is intentional and appropriate for the package structure.ee/packages/presence/.eslintrc.json (1)
11-11: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.Changing
ignorePatternsfrom"**/dist"to"dist"narrows ignore scope. Confirm this is intentional and nesteddistdirectories are handled appropriately.ee/apps/account-service/.eslintrc.json (1)
11-11: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.Changing
ignorePatternsfrom"**/dist"to"dist"narrows ignore scope systematically across the monorepo. Please confirm:
- This narrowing is intentional repo-wide
- Subdirectories that need dist-ignoring have their own configs
- No generated build artifacts will be unexpectedly linted
ee/apps/account-service/package.json (1)
21-45: @types/node should be in devDependencies, not dependencies.Line 33 places
"@types/node": "~22.16.5"in the runtime dependencies block. This is the same issue already flagged in presence-service and omnichannel-transcript. This appears to be a systematic problem across multiple service packages.See related comment on ee/apps/presence-service/package.json for details and suggested verification script.
🧹 Nitpick comments (2)
packages/mock-providers/package.json (1)
11-11: Consider using a cross-platform alternative torm -rf.The build script uses
rm -rf dist, which fails on Windows without Git Bash or additional tools. For a monorepo with mixed OS developers, consider usingrimraf(already likely available or easily added) ordel-clifor cross-platform compatibility.If other packages in the monorepo use
rimrafor another cross-platform solution, apply the same pattern here:- "build": "rm -rf dist && tsc -p tsconfig.json", + "build": "rimraf dist && tsc -p tsconfig.json",Please verify the monorepo's existing convention for cross-platform build scripts in other
package.jsonfiles.packages/jwt/package.json (1)
15-17: Clarify the purpose of the duplicatetestunitscript.Lines 15 and 16 define identical test commands (
jest), which may indicate a copy-paste oversight or an intentional monorepo test orchestration pattern. If this is deliberate (e.g., for test hierarchy or CI routing), document the distinction. Otherwise, consider consolidating.Does the
testunitscript serve a distinct purpose, or should it be removed/renamed?
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (107)
apps/meteor/.eslintignore(0 hunks)apps/meteor/.eslintrc.json(1 hunks)apps/meteor/package.json(2 hunks)apps/meteor/packages/rocketchat-i18n/.eslintrc.json(1 hunks)apps/uikit-playground/.eslintignore(0 hunks)apps/uikit-playground/.eslintrc.cjs(0 hunks)apps/uikit-playground/.eslintrc.json(1 hunks)apps/uikit-playground/package.json(1 hunks)ee/apps/account-service/.eslintrc.json(1 hunks)ee/apps/account-service/package.json(1 hunks)ee/apps/authorization-service/.eslintrc.json(1 hunks)ee/apps/authorization-service/package.json(1 hunks)ee/apps/ddp-streamer/.eslintrc.json(1 hunks)ee/apps/ddp-streamer/package.json(1 hunks)ee/apps/omnichannel-transcript/.eslintrc.json(1 hunks)ee/apps/omnichannel-transcript/package.json(1 hunks)ee/apps/presence-service/.eslintrc.json(1 hunks)ee/apps/presence-service/package.json(1 hunks)ee/apps/queue-worker/.eslintrc.json(1 hunks)ee/apps/queue-worker/package.json(1 hunks)ee/apps/stream-hub-service/.eslintrc.json(1 hunks)ee/apps/stream-hub-service/package.json(1 hunks)ee/packages/federation-matrix/.eslintrc.json(1 hunks)ee/packages/federation-matrix/package.json(2 hunks)ee/packages/license/.eslintrc.json(1 hunks)ee/packages/license/package.json(2 hunks)ee/packages/media-calls/.eslintrc.json(1 hunks)ee/packages/media-calls/package.json(1 hunks)ee/packages/network-broker/.eslintrc.json(1 hunks)ee/packages/network-broker/package.json(1 hunks)ee/packages/omni-core-ee/.eslintrc.json(1 hunks)ee/packages/omni-core-ee/package.json(2 hunks)ee/packages/omnichannel-services/.eslintrc.json(1 hunks)ee/packages/omnichannel-services/package.json(2 hunks)ee/packages/pdf-worker/.eslintignore(0 hunks)ee/packages/pdf-worker/.eslintrc.json(1 hunks)ee/packages/presence/.eslintrc.json(1 hunks)ee/packages/presence/package.json(1 hunks)ee/packages/ui-theming/.eslintrc.json(1 hunks)ee/packages/ui-theming/package.json(1 hunks)packages/account-utils/.eslintrc.json(1 hunks)packages/account-utils/package.json(1 hunks)packages/agenda/.eslintrc.json(1 hunks)packages/agenda/package.json(1 hunks)packages/api-client/.eslintrc.json(1 hunks)packages/api-client/package.json(2 hunks)packages/apps-engine/.eslintignore(0 hunks)packages/apps-engine/.eslintrc.json(1 hunks)packages/apps-engine/package.json(3 hunks)packages/apps/.eslintrc.json(1 hunks)packages/apps/package.json(1 hunks)packages/base64/.eslintrc.json(1 hunks)packages/base64/package.json(1 hunks)packages/cas-validate/.eslintrc.json(1 hunks)packages/cas-validate/package.json(1 hunks)packages/core-services/.eslintrc.json(1 hunks)packages/core-services/package.json(1 hunks)packages/core-typings/.eslintrc.json(1 hunks)packages/core-typings/package.json(1 hunks)packages/cron/.eslintrc.json(1 hunks)packages/cron/package.json(1 hunks)packages/ddp-client/package.json(1 hunks)packages/desktop-api/.eslintrc.json(1 hunks)packages/eslint-config/.eslintrc.json(1 hunks)packages/eslint-config/package.json(1 hunks)packages/favicon/.eslintrc.json(1 hunks)packages/favicon/package.json(1 hunks)packages/freeswitch/.eslintrc.json(1 hunks)packages/freeswitch/package.json(1 hunks)packages/fuselage-ui-kit/.eslintignore(0 hunks)packages/fuselage-ui-kit/.eslintrc.json(2 hunks)packages/fuselage-ui-kit/.prettierignore(0 hunks)packages/fuselage-ui-kit/package.json(1 hunks)packages/gazzodown/.eslintignore(0 hunks)packages/gazzodown/.eslintrc.json(1 hunks)packages/http-router/package.json(2 hunks)packages/i18n/.eslintrc.json(1 hunks)packages/i18n/package.json(1 hunks)packages/instance-status/.eslintrc.json(1 hunks)packages/instance-status/package.json(1 hunks)packages/jest-presets/package.json(1 hunks)packages/jwt/.eslintrc.json(1 hunks)packages/jwt/package.json(1 hunks)packages/livechat/.eslintignore(0 hunks)packages/livechat/.eslintrc.json(2 hunks)packages/livechat/package.json(1 hunks)packages/log-format/.eslintrc.json(1 hunks)packages/log-format/package.json(1 hunks)packages/logger/.eslintrc.json(1 hunks)packages/logger/package.json(1 hunks)packages/media-signaling/.eslintrc.json(1 hunks)packages/media-signaling/package.json(1 hunks)packages/message-parser/.eslintignore(0 hunks)packages/message-parser/.eslintrc.js(0 hunks)packages/message-parser/.eslintrc.json(1 hunks)packages/message-parser/package.json(1 hunks)packages/message-types/.eslintrc.json(1 hunks)packages/message-types/package.json(1 hunks)packages/mock-providers/.eslintrc.json(1 hunks)packages/mock-providers/package.json(1 hunks)packages/model-typings/.eslintrc.json(1 hunks)packages/model-typings/package.json(1 hunks)packages/models/.eslintrc.json(1 hunks)packages/models/package.json(2 hunks)packages/mongo-adapter/.eslintrc.json(1 hunks)packages/node-poplib/package.json(1 hunks)packages/omni-core/.eslintrc.json(1 hunks)
⛔ Files not processed due to max files limit (16)
- packages/omni-core/package.json
- packages/password-policies/.eslintrc.json
- packages/password-policies/package.json
- packages/peggy-loader/.eslintrc.json
- packages/random/.eslintrc.json
- packages/random/package.json
- packages/release-action/.eslintrc.json
- packages/release-action/package.json
- packages/release-changelog/.eslintrc.json
- packages/release-changelog/package.json
- packages/server-cloud-communication/.eslintrc.json
- packages/server-cloud-communication/package.json
- packages/sha256/.eslintrc.json
- packages/sha256/package.json
- packages/storybook-config/package.json
- packages/tsconfig/package.json
💤 Files with no reviewable changes (11)
- apps/uikit-playground/.eslintrc.cjs
- packages/gazzodown/.eslintignore
- packages/message-parser/.eslintrc.js
- packages/message-parser/.eslintignore
- packages/apps-engine/.eslintignore
- packages/fuselage-ui-kit/.eslintignore
- packages/fuselage-ui-kit/.prettierignore
- apps/meteor/.eslintignore
- apps/uikit-playground/.eslintignore
- ee/packages/pdf-worker/.eslintignore
- packages/livechat/.eslintignore
🧰 Additional context used
🧠 Learnings (7)
📓 Common learnings
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
apps/meteor/packages/rocketchat-i18n/.eslintrc.jsonpackages/message-parser/.eslintrc.jsonee/apps/queue-worker/package.jsonpackages/livechat/package.jsonee/apps/omnichannel-transcript/package.json
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.
Applied to files:
apps/meteor/packages/rocketchat-i18n/.eslintrc.json
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
Applied to files:
ee/packages/federation-matrix/.eslintrc.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-05T21:04:35.787Z
Learnt from: sampaiodiego
Repo: RocketChat/Rocket.Chat PR: 37357
File: ee/packages/federation-matrix/src/setup.ts:103-120
Timestamp: 2025-11-05T21:04:35.787Z
Learning: In Rocket.Chat's federation-matrix setup (ee/packages/federation-matrix/src/setup.ts and apps/meteor/ee/server/startup/federation.ts), configureFederationMatrixSettings does not need to be called before setupFederationMatrix. The SDK's init() establishes infrastructure (database, event handlers, APIs) first, and the configuration can be applied later via settings watchers before actual federation events are processed. The config only matters when events actually occur, at which point all infrastructure is already configured.
Applied to files:
ee/packages/federation-matrix/.eslintrc.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to **/*.{ts,tsx,js} : Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Applied to files:
packages/favicon/.eslintrc.jsonapps/uikit-playground/.eslintrc.jsonpackages/i18n/package.jsonpackages/apps-engine/.eslintrc.jsonpackages/eslint-config/package.jsonee/packages/pdf-worker/.eslintrc.jsonpackages/fuselage-ui-kit/package.json
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.
Applied to files:
ee/packages/federation-matrix/package.json
f5c9c8b to
887a3d0
Compare
There was a problem hiding this 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
♻️ Duplicate comments (7)
ee/packages/omnichannel-services/.eslintrc.json (1)
3-3: Consistency check: pattern change aligns with repository-wide standardization.This change mirrors the systematic update across other packages in this PR (e.g., packages/apps, packages/base64, ee/apps/authorization-service). The ignorePatterns narrowing from
**/disttodistis consistent with the broader PR intent.However, defer to the verification requested in the primary review comment (packages/apps/.eslintrc.json) to confirm the safety of this change across all affected packages.
packages/freeswitch/.eslintrc.json (1)
3-3: Consistency check: pattern change aligns with repository-wide standardization.This change is consistent with the systematic ignorePatterns update across the PR. Refer to the primary verification request in packages/apps/.eslintrc.json for confirmation of safe impact.
packages/desktop-api/.eslintrc.json (1)
3-3: Consistency check: pattern change aligns with repository-wide standardization.This change is consistent with the systematic ignorePatterns update across the PR. Refer to the primary verification request in packages/apps/.eslintrc.json for confirmation of safe impact.
packages/mock-providers/.eslintrc.json (1)
3-3: Consistency check: pattern change aligns with repository-wide standardization.This change is consistent with the systematic ignorePatterns update across the PR. Refer to the primary verification request in packages/apps/.eslintrc.json for confirmation of safe impact.
packages/base64/.eslintrc.json (1)
7-7: Consistency check: pattern change aligns with repository-wide standardization.This change is consistent with the systematic ignorePatterns update across the PR. Refer to the primary verification request in packages/apps/.eslintrc.json for confirmation of safe impact.
ee/apps/authorization-service/.eslintrc.json (1)
11-11: Consistency check: pattern change aligns with repository-wide standardization.This change is consistent with the systematic ignorePatterns update across the PR. Refer to the primary verification request in packages/apps/.eslintrc.json for confirmation of safe impact.
ee/packages/license/.eslintrc.json (1)
3-3: Consistency check: pattern change aligns with repository-wide standardization.This change is consistent with the systematic ignorePatterns update across the PR. Refer to the primary verification request in packages/apps/.eslintrc.json for confirmation of safe impact.
🧹 Nitpick comments (1)
packages/models/package.json (1)
7-9: Remove leading slash fromfilesarray entry.The
filesarray should use relative paths without leading slashes. While this doesn't matter for private packages (line 4 sets"private": true), it's still incorrect format. The entry should be"dist"not"/dist"."files": [ - "/dist" + "dist" ],
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (107)
apps/meteor/.eslintignore(0 hunks)apps/meteor/.eslintrc.json(1 hunks)apps/meteor/package.json(2 hunks)apps/meteor/packages/rocketchat-i18n/.eslintrc.json(1 hunks)apps/uikit-playground/.eslintignore(0 hunks)apps/uikit-playground/.eslintrc.cjs(0 hunks)apps/uikit-playground/.eslintrc.json(1 hunks)apps/uikit-playground/package.json(1 hunks)ee/apps/account-service/.eslintrc.json(1 hunks)ee/apps/account-service/package.json(1 hunks)ee/apps/authorization-service/.eslintrc.json(1 hunks)ee/apps/authorization-service/package.json(1 hunks)ee/apps/ddp-streamer/.eslintrc.json(1 hunks)ee/apps/ddp-streamer/package.json(1 hunks)ee/apps/omnichannel-transcript/.eslintrc.json(1 hunks)ee/apps/omnichannel-transcript/package.json(1 hunks)ee/apps/presence-service/.eslintrc.json(1 hunks)ee/apps/presence-service/package.json(1 hunks)ee/apps/queue-worker/.eslintrc.json(1 hunks)ee/apps/queue-worker/package.json(1 hunks)ee/apps/stream-hub-service/.eslintrc.json(1 hunks)ee/apps/stream-hub-service/package.json(1 hunks)ee/packages/federation-matrix/.eslintrc.json(1 hunks)ee/packages/federation-matrix/package.json(2 hunks)ee/packages/license/.eslintrc.json(1 hunks)ee/packages/license/package.json(2 hunks)ee/packages/media-calls/.eslintrc.json(1 hunks)ee/packages/media-calls/package.json(1 hunks)ee/packages/network-broker/.eslintrc.json(1 hunks)ee/packages/network-broker/package.json(1 hunks)ee/packages/omni-core-ee/.eslintrc.json(1 hunks)ee/packages/omni-core-ee/package.json(2 hunks)ee/packages/omnichannel-services/.eslintrc.json(1 hunks)ee/packages/omnichannel-services/package.json(2 hunks)ee/packages/pdf-worker/.eslintignore(0 hunks)ee/packages/pdf-worker/.eslintrc.json(1 hunks)ee/packages/presence/.eslintrc.json(1 hunks)ee/packages/presence/package.json(1 hunks)ee/packages/ui-theming/.eslintrc.json(1 hunks)ee/packages/ui-theming/package.json(1 hunks)packages/account-utils/.eslintrc.json(1 hunks)packages/account-utils/package.json(1 hunks)packages/agenda/.eslintrc.json(1 hunks)packages/agenda/package.json(1 hunks)packages/api-client/.eslintrc.json(1 hunks)packages/api-client/package.json(2 hunks)packages/apps-engine/.eslintignore(0 hunks)packages/apps-engine/.eslintrc.json(1 hunks)packages/apps-engine/package.json(3 hunks)packages/apps/.eslintrc.json(1 hunks)packages/apps/package.json(1 hunks)packages/base64/.eslintrc.json(1 hunks)packages/base64/package.json(1 hunks)packages/cas-validate/.eslintrc.json(1 hunks)packages/cas-validate/package.json(1 hunks)packages/core-services/.eslintrc.json(1 hunks)packages/core-services/package.json(1 hunks)packages/core-typings/.eslintrc.json(1 hunks)packages/core-typings/package.json(1 hunks)packages/cron/.eslintrc.json(1 hunks)packages/cron/package.json(1 hunks)packages/ddp-client/package.json(1 hunks)packages/desktop-api/.eslintrc.json(1 hunks)packages/eslint-config/.eslintrc.json(1 hunks)packages/eslint-config/package.json(1 hunks)packages/favicon/.eslintrc.json(1 hunks)packages/favicon/package.json(1 hunks)packages/freeswitch/.eslintrc.json(1 hunks)packages/freeswitch/package.json(1 hunks)packages/fuselage-ui-kit/.eslintignore(0 hunks)packages/fuselage-ui-kit/.eslintrc.json(2 hunks)packages/fuselage-ui-kit/.prettierignore(0 hunks)packages/fuselage-ui-kit/package.json(1 hunks)packages/gazzodown/.eslintignore(0 hunks)packages/gazzodown/.eslintrc.json(1 hunks)packages/http-router/package.json(2 hunks)packages/i18n/.eslintrc.json(1 hunks)packages/i18n/package.json(1 hunks)packages/instance-status/.eslintrc.json(1 hunks)packages/instance-status/package.json(1 hunks)packages/jest-presets/package.json(1 hunks)packages/jwt/.eslintrc.json(1 hunks)packages/jwt/package.json(1 hunks)packages/livechat/.eslintignore(0 hunks)packages/livechat/.eslintrc.json(2 hunks)packages/livechat/package.json(1 hunks)packages/log-format/.eslintrc.json(1 hunks)packages/log-format/package.json(1 hunks)packages/logger/.eslintrc.json(1 hunks)packages/logger/package.json(1 hunks)packages/media-signaling/.eslintrc.json(1 hunks)packages/media-signaling/package.json(1 hunks)packages/message-parser/.eslintignore(0 hunks)packages/message-parser/.eslintrc.js(0 hunks)packages/message-parser/.eslintrc.json(1 hunks)packages/message-parser/package.json(1 hunks)packages/message-types/.eslintrc.json(1 hunks)packages/message-types/package.json(1 hunks)packages/mock-providers/.eslintrc.json(1 hunks)packages/mock-providers/package.json(1 hunks)packages/model-typings/.eslintrc.json(1 hunks)packages/model-typings/package.json(1 hunks)packages/models/.eslintrc.json(1 hunks)packages/models/package.json(2 hunks)packages/mongo-adapter/.eslintrc.json(1 hunks)packages/node-poplib/package.json(1 hunks)packages/omni-core/.eslintrc.json(1 hunks)
⛔ Files not processed due to max files limit (16)
- packages/omni-core/package.json
- packages/password-policies/.eslintrc.json
- packages/password-policies/package.json
- packages/peggy-loader/.eslintrc.json
- packages/random/.eslintrc.json
- packages/random/package.json
- packages/release-action/.eslintrc.json
- packages/release-action/package.json
- packages/release-changelog/.eslintrc.json
- packages/release-changelog/package.json
- packages/server-cloud-communication/.eslintrc.json
- packages/server-cloud-communication/package.json
- packages/sha256/.eslintrc.json
- packages/sha256/package.json
- packages/storybook-config/package.json
- packages/tsconfig/package.json
💤 Files with no reviewable changes (11)
- apps/meteor/.eslintignore
- packages/gazzodown/.eslintignore
- apps/uikit-playground/.eslintignore
- packages/message-parser/.eslintignore
- apps/uikit-playground/.eslintrc.cjs
- packages/message-parser/.eslintrc.js
- packages/livechat/.eslintignore
- packages/fuselage-ui-kit/.eslintignore
- packages/apps-engine/.eslintignore
- ee/packages/pdf-worker/.eslintignore
- packages/fuselage-ui-kit/.prettierignore
✅ Files skipped from review due to trivial changes (5)
- packages/favicon/package.json
- apps/meteor/packages/rocketchat-i18n/.eslintrc.json
- ee/apps/account-service/.eslintrc.json
- packages/media-signaling/package.json
- packages/eslint-config/.eslintrc.json
🚧 Files skipped from review as they are similar to previous changes (45)
- packages/instance-status/package.json
- packages/core-services/.eslintrc.json
- ee/apps/ddp-streamer/.eslintrc.json
- packages/message-types/.eslintrc.json
- ee/packages/federation-matrix/.eslintrc.json
- ee/packages/media-calls/package.json
- ee/apps/presence-service/.eslintrc.json
- packages/mongo-adapter/.eslintrc.json
- ee/apps/queue-worker/.eslintrc.json
- packages/cron/package.json
- ee/packages/media-calls/.eslintrc.json
- packages/core-typings/.eslintrc.json
- ee/packages/presence/.eslintrc.json
- ee/packages/presence/package.json
- packages/favicon/.eslintrc.json
- packages/agenda/.eslintrc.json
- packages/cas-validate/package.json
- packages/eslint-config/package.json
- apps/uikit-playground/.eslintrc.json
- apps/meteor/.eslintrc.json
- packages/http-router/package.json
- ee/packages/ui-theming/.eslintrc.json
- packages/mock-providers/package.json
- packages/message-parser/package.json
- apps/uikit-playground/package.json
- ee/apps/queue-worker/package.json
- packages/node-poplib/package.json
- ee/apps/account-service/package.json
- packages/message-parser/.eslintrc.json
- packages/api-client/package.json
- packages/log-format/package.json
- packages/api-client/.eslintrc.json
- ee/packages/omni-core-ee/package.json
- ee/packages/omni-core-ee/.eslintrc.json
- packages/account-utils/package.json
- packages/logger/.eslintrc.json
- ee/apps/omnichannel-transcript/.eslintrc.json
- packages/apps/package.json
- packages/gazzodown/.eslintrc.json
- packages/i18n/.eslintrc.json
- packages/cron/.eslintrc.json
- ee/apps/omnichannel-transcript/package.json
- packages/base64/package.json
- packages/account-utils/.eslintrc.json
- packages/jwt/.eslintrc.json
🧰 Additional context used
🧠 Learnings (7)
📓 Common learnings
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
ee/packages/pdf-worker/.eslintrc.jsonee/apps/presence-service/package.jsonpackages/livechat/package.json
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to **/*.{ts,tsx,js} : Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Applied to files:
ee/packages/pdf-worker/.eslintrc.jsonpackages/apps-engine/.eslintrc.jsonpackages/fuselage-ui-kit/package.jsonpackages/i18n/package.json
📚 Learning: 2025-11-05T21:04:35.787Z
Learnt from: sampaiodiego
Repo: RocketChat/Rocket.Chat PR: 37357
File: ee/packages/federation-matrix/src/setup.ts:103-120
Timestamp: 2025-11-05T21:04:35.787Z
Learning: In Rocket.Chat's federation-matrix setup (ee/packages/federation-matrix/src/setup.ts and apps/meteor/ee/server/startup/federation.ts), configureFederationMatrixSettings does not need to be called before setupFederationMatrix. The SDK's init() establishes infrastructure (database, event handlers, APIs) first, and the configuration can be applied later via settings watchers before actual federation events are processed. The config only matters when events actually occur, at which point all infrastructure is already configured.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-06T20:32:23.658Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37152
File: packages/apps-engine/tests/test-data/utilities.ts:557-573
Timestamp: 2025-10-06T20:32:23.658Z
Learning: In packages/apps-engine/tests/test-data/utilities.ts, the field name `isSubscripbedViaBundle` in the `IMarketplaceSubscriptionInfo` type should not be flagged as a typo, as it may match the upstream API's field name.
Applied to files:
packages/fuselage-ui-kit/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). (3)
- GitHub Check: 📦 Build Packages
- GitHub Check: CodeQL-Build
- GitHub Check: CodeQL-Build
🔇 Additional comments (54)
packages/logger/package.json (1)
1-27: Structural reformatting aligns with sort-package-json conventions.The package.json keys have been reordered following the sort-package-json tool's standard conventions. All content (scripts, dependencies, devDependencies, volta configuration) remains unchanged and intact. No functional or behavioral changes.
ee/packages/ui-theming/package.json (1)
5-15: ✓ Package.json key ordering follows sort-package-json conventions.The reorganization moves public export declarations (
main,typings,files) andscriptsto a more conventional position following metadata fields. This follows standard sort-package-json conventions and improves readability without affecting functionality.ee/apps/presence-service/package.json (1)
1-56: Well-formatted package manifest with correctly ordered metadata.The package.json has been properly reorganized following sort-package-json conventions. The metadata fields (keywords, author, main, files) are appropriately positioned at the top level, and the new lint script entry is correctly configured. The main entry point references the compiled output directory, and the files field appropriately includes the dist folder for distribution.
packages/freeswitch/package.json (1)
1-35: Package manifest sorting is consistent with sort-package-json.The reordering follows the standard field priority used by sort-package-json: main/typings, files, scripts, dependencies, devDependencies. All dependency versions and script definitions remain unchanged—this is purely a key reordering.
packages/jwt/package.json (1)
1-36: Package.json formatting looks good.The key reordering is clean and follows standard conventions. All essential fields (main, typings, files) are properly configured, scripts are appropriate, and dependencies are well-specified. No functional or configuration issues detected.
ee/apps/ddp-streamer/package.json (1)
1-68: Package manifest follows npm field ordering conventions.The reorganization aligns the manifest with npm's recommended field order: name/version → private/description → keywords/author → main/files → scripts → dependencies. The "lint" script addition provides a consistent linting entry point across the package. No runtime or behavioral changes.
packages/jest-presets/package.json (1)
24-28: Approve package.json reorganization.The scripts field is appropriately positioned and contains standard build, clean, and lint commands suitable for a TypeScript package. All scripts are properly defined and align with the package's development dependencies.
packages/message-types/package.json (1)
29-32: Volta field relocation is correct.The volta block has been repositioned after peerDependencies, which follows the conventional package.json field ordering enforced by sort-package-json (public exports → scripts → dependencies → tools/config). The field content and extends reference remain valid.
packages/i18n/package.json (1)
1-51: LGTM—formatting and reordering are correct.The package.json has been properly reformatted with scripts sorted alphabetically (build → check → lint → lint:fix → replace-sprintf → test → testunit), consistent with the sort-package-json tool. The "replace-sprintf" script command itself remains unchanged. All sections (exports, main, types, dependencies) are intact, and the JSON structure is valid.
packages/instance-status/.eslintrc.json (1)
11-11: LGTM!The change from
**/disttodistappropriately narrows the ignore scope to the top-level directory only, which aligns with standard monorepo package structures where build outputs are at the package root. This is consistent with the PR-wide standardization effort documented in the AI summary.packages/models/package.json (3)
5-6: LGTM!The addition of
mainandtypingsexport metadata is appropriate for this TypeScript package and follows npm conventions. This properly exposes the compiled distribution entry points.
10-19: LGTM!The
scriptssection includes all expected development tasks (build, test, lint, typecheck, etc.). This aligns well with the package's purpose and the PR's consolidation objective.
30-38: LGTM!The
devDependenciesblock properly lists all development tooling. The reordering and consolidation aligns with the PR's manifest standardization goal.packages/livechat/package.json (1)
1-135: LGTM!The package.json restructuring looks good. Metadata is properly ordered, all required fields are present and syntactically correct, scripts are well-formed, and the dependency declarations use appropriate version specifiers. The additions (homepage, files, browserslist, new scripts) align with the PR objective of standardizing manifest structure across the monorepo.
packages/ddp-client/package.json (1)
1-40: Formatting and field reordering look good.The package.json structure follows the standard sort-package-json conventions with proper field ordering (metadata → entry points → scripts → dependencies → dev dependencies → peer dependencies → tool config). JSON is valid, and all workspace protocols are syntactically correct.
ee/apps/authorization-service/package.json (3)
10-10: Verify themainfield entry point is correct for this monorepo structure.The
mainfield points to./dist/ee/apps/authorization-service/src/service.js, which suggests the build outputs to a shared monorepo-rootdist/directory rather than a package-local one. Confirm this path aligns with the actual build output location and that consumers of this package can correctly resolve the entry point.
11-13: Verify thefilesarray does not inadvertently exclude necessary files.The
filesarray restricts published content to/distonly. Confirm that all necessary runtime files (e.g., config, migrations, or supplementary assets) are included in the build output and that this restriction does not break package functionality.
4-16: Metadata restructuring and lint script are well-aligned.The reformatting properly surfaces metadata at the top level (keywords, author, main, files), and the new
lintscript follows repo conventions. The changes appear safe and do not affect runtime behavior.ee/packages/license/package.json (3)
5-9: Metadata fields correctly configured for TypeScript package distribution.The
main,typings, andfilesfields are properly ordered and point to the correct build artifacts. Thefilesfield correctly restricts distribution to the compiled output.
18-34: Dependencies and devDependencies properly organized and specified.All dependencies are correctly categorized, versioned appropriately, and use proper workspace syntax for internal references. The separation of production and development dependencies follows best practices.
35-37: Volta configuration correctly delegated to parent manifest.The volta section appropriately extends the root package.json, following the standard monorepo pattern for centralized node version management.
packages/agenda/package.json (1)
1-32: Package.json formatting looks good—properly sorted and consolidated.The reorganization correctly consolidates public export fields (main, typings, files) and scripts at the top level per the sort-package-json standard. All field values are intact, the JSON structure is valid, and the scripts remain unchanged. The "files" array appropriately limits npm publication to the built "/dist" directory.
packages/apps-engine/.eslintrc.json (1)
58-58: Approve ignorePatterns consolidation.The addition of the
ignorePatternsarray consolidates and standardizes the ignore configuration in line with the PR objectives. The directory patterns (client, server, docs, build artifacts, etc.) are reasonable targets for exclusion from linting.Please verify that:
- If a
.eslintignorefile previously existed in this directory, it has been removed or is no longer needed.- These directory patterns match the actual project structure and there are no additional directories that should be ignored.
ee/packages/omnichannel-services/package.json (3)
5-9: Entry point fields correctly positioned.The
main,typings, andfilesfields follow standard NPM conventions and the sort-package-json formatting. These properly declare the package's public surface (compiled dist folder with TypeScript definitions) even though the package is marked private in the monorepo context.
10-17: Scripts look good; minor note on duplication.The build, dev, lint, and test scripts are well-structured. Note that
testandtestunit(lines 15-16) are identical and both invokejest. If this duplication is intentional for backward compatibility or workflow purposes, it's fine; otherwise, this could be consolidated. Since this is a formatting PR, no action needed unless you decide to simplify.
43-50: DevDependencies properly organized.The tooling dependencies (ESLint, Jest, TypeScript) and their presets are correctly listed and ordered. The workspace references (
workspace:^,workspace:~,workspace:*) align with the monorepo structure.ee/apps/stream-hub-service/.eslintrc.json (1)
11-11: Pattern narrowing from**/disttodistis safe for this package.The directory structure contains only a top-level
srcfolder with no nesteddistdirectories. The change correctly targets the root-leveldistoutput folder and won't cause issues with unignored nested build artifacts.packages/core-typings/package.json (1)
1-42: Well-organized package manifest following monorepo conventions.The reformatted package.json establishes a clear public surface for this TypeScript library package:
- Entry points (
main,typings) properly declared for consumers and toolingfilesrestriction to/distensures only compiled artifacts are packaged- Scripts follow the dot-prefixed internal task pattern common in monorepo setups (
.:build:*orchestrated by publicbuildtask)- Dependencies and devDependencies are properly segregated and sorted
- Workspace protocol (
workspace:^,workspace:~) correctly used for internal Rocket.Chat dependenciesAll declared tooling and build steps reference dependencies present in devDependencies, and the
voltasection appropriately extends the root configuration.packages/media-signaling/.eslintrc.json (1)
3-3: The ignore pattern change is appropriate for this package.The narrowed ignore pattern from
"**/dist"to"dist"is safe. The package only generates a top-leveldistdirectory (viatscin the build script), and no nested dist directories are created or present. The pattern correctly matches the package's actual build output structure.packages/model-typings/.eslintrc.json (1)
3-3: No action required. The pattern narrowing from**/disttodistis appropriate for this package. The build process compiles TypeScript to only a top-leveldistdirectory, and no nested dist directories are generated or present in the package structure.packages/cas-validate/.eslintrc.json (1)
3-3: The narrowed ignorePatterns change from**/disttodistis appropriate for this package. No nested dist directories exist inpackages/cas-validate(only root andsrc/directories are present), so the narrowed pattern will not cause ESLint to unexpectedly lint previously ignored files.packages/omni-core/.eslintrc.json (1)
3-3: Confirm this ignorePattern change aligns with your monorepo's ESLint strategy.The change from
"**/dist"to"dist"narrows ignore scope to only top-level dist directories. Nested dist folders (e.g.,subdir/dist) will now be linted. Ifpackages/omni-corecontains such nested directories or generates them during build, this could introduce new ESLint failures. Since this is part of monorepo-wide standardization, verify it was tested and doesn't cause unexpected linting failures in this package.ee/packages/network-broker/.eslintrc.json (1)
3-3: No action needed—the narrower ignore pattern is appropriate for this package.Verification confirms that
ee/packages/network-brokerhas no nesteddist/directories. The package structure is flat (onlysrc/subdirectory), and the build script usestscwith a single root-leveltsconfig.json, which outputs to a top-leveldist/directory only. The change from"**/dist"to"dist"is correct and aligns safely with the broader standardization effort.packages/log-format/.eslintrc.json (1)
3-3: No nesteddistdirectories exist withinpackages/log-format/, making the change from"**/dist"to"dist"functionally equivalent in this context. Both patterns produce identical behavior, so this is not a behavioral change with practical impact.Likely an incorrect or invalid review comment.
ee/packages/network-broker/package.json (1)
5-23: No issues identified—package.json is properly formatted with no duplicate fields.The full file content shows each field (main, typings, files, scripts, dependencies) appears exactly once in correct package.json ordering. The concern about duplicate fields claimed in the AI summary does not apply; no duplicates exist in the file. The formatting changes are valid.
Likely an incorrect or invalid review comment.
ee/packages/federation-matrix/package.json (3)
5-6: Reconsider exposing entry points on a private package.The package is marked
"private": truebut declares"main"and"typings"entry points. Since private packages are not published, these fields are semantically redundant. Verify whether this pattern is intentional for monorepo tooling or should be removed.
40-56: Devependencies consolidation looks good.The reintroduction of the
devDependenciesblock at the top level is consistent with the PR's goal of consolidating package manifest fields across the monorepo.
57-59: Volta configuration is correct.The volta block correctly extends from the root
package.json, which is the standard pattern for pinning Node/npm versions in this monorepo.packages/apps/.eslintrc.json (1)
3-3: Narrowing ignorePatterns from "/dist" to "dist" is safe for this codebase.**The change from a recursive pattern (
**/dist) to a non-recursive one (dist) is confirmed to be safe: no nested dist directories exist across any of the affected packages (packages/apps, ee/packages/omnichannel-services, packages/freeswitch, packages/desktop-api, packages/mock-providers, packages/base64, ee/apps/authorization-service, ee/packages/license). The risk of CI failures or unexpected linting changes due to nested dist directories does not apply in this case.Likely an incorrect or invalid review comment.
ee/packages/pdf-worker/.eslintrc.json (1)
4-4: LGTM!The ESLint configuration consolidation is correct. The narrowing of
ignorePatternsfrom recursive**/distto top-leveldist, combined with the explicit!.storybooknegation, properly preserves the original ignore behavior while migrating from.eslintignoreto.eslintrc.json. The negation pattern ensures the.storybookdirectory is linted despite the dist exclusion.packages/livechat/.eslintrc.json (1)
74-74: The ignorePatterns pattern is appropriate for the package structure.Line 74's
"ignorePatterns": ["dist", "build", "!.storybook"]correctly targets the top-level output directories. The package's build system (webpack configured in webpack.config.ts) creates dist only at the package root, as evidenced by the "clean" script ("rimraf dist"). No nested dist or build directories exist in the package structure. The pattern will not cause any linting behavior changes because there are no subdirectories with dist folders that would be affected.Likely an incorrect or invalid review comment.
ee/apps/stream-hub-service/package.json (1)
1-57: File structure is valid with appropriate field ordering.The package.json contains all necessary fields correctly configured:
private: truefor an internal package, proper entry point, dependency declarations, and volta configuration. Field ordering follows common npm conventions. However, the repository has no sort-package-json configuration enforced, so field ordering varies across the monorepo and cannot be verified against a standard pattern.packages/fuselage-ui-kit/package.json (2)
34-34: ✅ Dev script typo resolved from previous review.The critical issue flagged in the prior review—
tsconfig-esm.json(hyphenated) vs.tsconfig.esm.json(dotted)—has been corrected. Line 34 now consistently referencestsconfig.esm.json, matching line 30. This fix ensures the dev script will execute correctly.
27-41: Build script configuration verified; no changes required.All verification checks pass:
- Both
tsconfig.esm.jsonandtsconfig.cjs.jsonexist in the package root ✓- Required build tooling (
typescript,npm-run-all,rimraf,storybook) is present in devDependencies ✓- Build output structure (
dist/cjs) remains unchanged and matches the configured main entry point ✓- No downstream packages directly depend on build scripts; they consume the published package via npm/yarn from the
dist/directory ✓The modular build targets (
.:build:esm,.:build:cjs) and compositebuildorchestrator are internal organizational changes that do not affect consumers or CI/CD integration.packages/model-typings/package.json (1)
10-23: Reordering looks correct.The scripts and devDependencies sections have been properly reordered to follow sort-package-json conventions, with no changes to content or versions. The final ordering (public entry points → files → scripts → dependencies → devDependencies → volta) is standard and correct.
apps/meteor/package.json (3)
5-24: Metadata additions and field reordering are correct.The new fields (bugs, repository, license, author, type) are all standard npm package.json fields and are correctly positioned following sort-package-json conventions. The ordering places public metadata before scripts and dependencies, which is the correct standard order.
25-62: Scripts reorganization and new entries look appropriate.The scripts have been properly reorganized and new entries (test orchestration, coverage, storybook, docker, migration utilities, etc.) align with the needs of a large Meteor application. The commands appear well-structured and follow naming conventions (e.g.,
.testunit:*prefix for internal utilities,test:e2e:*for E2E variants).
477-482: Meteor mainModule correctly relocated to top-level meteor key.The meteor.mainModule configuration with client and server entry points has been properly structured at the package.json root under the "meteor" key. This is the correct format for Meteor framework configuration and maintains the intended build behavior.
packages/core-services/package.json (2)
5-16: Public API surface properly declared with correct structure.The addition of main, typings, and files fields correctly establishes this package as a publishable TypeScript library. The scripts section (build, dev, lint, testunit) are appropriate for a core services package and follow TypeScript/Node.js build conventions. The ordering follows sort-package-json standards with public entry points before build scripts.
17-28: Dependencies correctly specified for core-services package.The dependencies include appropriate workspace-internal packages (@rocket.chat/core-typings, models, http-router, etc.) and external packages (federation-sdk, icons, ui-kit). Version pinning appears consistent with the monorepo's conventions (workspace:^ and explicit versions where needed).
packages/fuselage-ui-kit/.eslintrc.json (1)
46-46: No actionable changes needed.The
ignorePatternsupdate is sound. ESLint 8.45.0 fully supports negation patterns (available since 6.3), and the actual directory structure confirms the patterns are appropriate:.storybookexists and correctly requires re-inclusion via!.storybookafter thestorybook-staticignore, whilestorybook-staticanddistare legitimate build outputs to exclude preemptively. The pattern change from**/disttodistis a reasonable normalization.packages/apps-engine/package.json (3)
66-80: Clarify test coverage scope configuration.The
nycconfiguration includes onlysrc/*.tsandsrc/server/**/*.tsbut excludessrc/client/**andsrc/definition/**from coverage. Confirm this is intentional and aligns with the test strategy.
1-127: Entry points correctly removed for modular import pattern.The previously flagged critical issue with invalid
mainandtypingsentry points has been resolved. The package.json now intentionally omits these fields (set to null), which is appropriate for a monorepo package designed for modular imports. Thefilesarray correctly includes all output directories (client/**,definition/**,lib/**,server/**,deno-runtime/**, andscripts/**), allowing consumers to import from specific subdirectories as needed (e.g.,@rocket.chat/apps-engine/lib/...). No issues with distribution configuration.
37-44: Files array is correctly configured for npm distribution.The
filesarray appropriately includes all compiled output directories (client/**,definition/**,server/**,lib/**) generated during the build process via TypeScript compilation and the bundle script. These artifacts are produced by theprepackhook (which runsyarn bundle) before npm packaging, ensuring all necessary compiled code is included in the distribution. Package.json itself and documentation files are implicitly included by npm and do not require explicit declaration. No additional runtime or config files are needed.
887a3d0 to
f42fcc5
Compare
There was a problem hiding this 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
🧹 Nitpick comments (1)
apps/uikit-playground/.eslintrc.json (1)
14-29: Remove ineffective negation patterns in ignorePatterns.Lines 18-19 contain negation patterns (
!.jest,!.storybook) that are ineffective. These patterns attempt to un-ignore directories, but no preceding patterns actually match them. The earlier patterns (dist,build,storybook-static) target different directory names, making the negations unnecessary and potentially confusing.Apply this diff to remove the ineffective negations:
"ignorePatterns": [ "dist", "build", "storybook-static", - "!.jest", - "!.storybook", ".storybook/jest-results.json", ".DS_Store", ".env.local", ".env.development.local", ".env.test.local", ".env.production.local", "npm-debug.log*", "yarn-debug.log*", "yarn-error.log*" ]
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (107)
apps/meteor/.eslintignore(0 hunks)apps/meteor/.eslintrc.json(1 hunks)apps/meteor/package.json(2 hunks)apps/meteor/packages/rocketchat-i18n/.eslintrc.json(1 hunks)apps/uikit-playground/.eslintignore(0 hunks)apps/uikit-playground/.eslintrc.cjs(0 hunks)apps/uikit-playground/.eslintrc.json(1 hunks)apps/uikit-playground/package.json(1 hunks)ee/apps/account-service/.eslintrc.json(1 hunks)ee/apps/account-service/package.json(1 hunks)ee/apps/authorization-service/.eslintrc.json(1 hunks)ee/apps/authorization-service/package.json(1 hunks)ee/apps/ddp-streamer/.eslintrc.json(1 hunks)ee/apps/ddp-streamer/package.json(1 hunks)ee/apps/omnichannel-transcript/.eslintrc.json(1 hunks)ee/apps/omnichannel-transcript/package.json(1 hunks)ee/apps/presence-service/.eslintrc.json(1 hunks)ee/apps/presence-service/package.json(1 hunks)ee/apps/queue-worker/.eslintrc.json(1 hunks)ee/apps/queue-worker/package.json(1 hunks)ee/apps/stream-hub-service/.eslintrc.json(1 hunks)ee/apps/stream-hub-service/package.json(1 hunks)ee/packages/federation-matrix/.eslintrc.json(1 hunks)ee/packages/federation-matrix/package.json(2 hunks)ee/packages/license/.eslintrc.json(1 hunks)ee/packages/license/package.json(2 hunks)ee/packages/media-calls/.eslintrc.json(1 hunks)ee/packages/media-calls/package.json(1 hunks)ee/packages/network-broker/.eslintrc.json(1 hunks)ee/packages/network-broker/package.json(1 hunks)ee/packages/omni-core-ee/.eslintrc.json(1 hunks)ee/packages/omni-core-ee/package.json(2 hunks)ee/packages/omnichannel-services/.eslintrc.json(1 hunks)ee/packages/omnichannel-services/package.json(2 hunks)ee/packages/pdf-worker/.eslintignore(0 hunks)ee/packages/pdf-worker/.eslintrc.json(1 hunks)ee/packages/presence/.eslintrc.json(1 hunks)ee/packages/presence/package.json(1 hunks)ee/packages/ui-theming/.eslintrc.json(1 hunks)ee/packages/ui-theming/package.json(1 hunks)packages/account-utils/.eslintrc.json(1 hunks)packages/account-utils/package.json(1 hunks)packages/agenda/.eslintrc.json(1 hunks)packages/agenda/package.json(1 hunks)packages/api-client/.eslintrc.json(1 hunks)packages/api-client/package.json(2 hunks)packages/apps-engine/.eslintignore(0 hunks)packages/apps-engine/.eslintrc.json(1 hunks)packages/apps-engine/package.json(3 hunks)packages/apps/.eslintrc.json(1 hunks)packages/apps/package.json(1 hunks)packages/base64/.eslintrc.json(1 hunks)packages/base64/package.json(1 hunks)packages/cas-validate/.eslintrc.json(1 hunks)packages/cas-validate/package.json(1 hunks)packages/core-services/.eslintrc.json(1 hunks)packages/core-services/package.json(1 hunks)packages/core-typings/.eslintrc.json(1 hunks)packages/core-typings/package.json(1 hunks)packages/cron/.eslintrc.json(1 hunks)packages/cron/package.json(1 hunks)packages/ddp-client/package.json(1 hunks)packages/desktop-api/.eslintrc.json(1 hunks)packages/eslint-config/.eslintrc.json(1 hunks)packages/eslint-config/package.json(1 hunks)packages/favicon/.eslintrc.json(1 hunks)packages/favicon/package.json(1 hunks)packages/freeswitch/.eslintrc.json(1 hunks)packages/freeswitch/package.json(1 hunks)packages/fuselage-ui-kit/.eslintignore(0 hunks)packages/fuselage-ui-kit/.eslintrc.json(2 hunks)packages/fuselage-ui-kit/.prettierignore(0 hunks)packages/fuselage-ui-kit/package.json(1 hunks)packages/gazzodown/.eslintignore(0 hunks)packages/gazzodown/.eslintrc.json(1 hunks)packages/http-router/package.json(2 hunks)packages/i18n/.eslintrc.json(1 hunks)packages/i18n/package.json(1 hunks)packages/instance-status/.eslintrc.json(1 hunks)packages/instance-status/package.json(1 hunks)packages/jest-presets/package.json(1 hunks)packages/jwt/.eslintrc.json(1 hunks)packages/jwt/package.json(1 hunks)packages/livechat/.eslintignore(0 hunks)packages/livechat/.eslintrc.json(2 hunks)packages/livechat/package.json(1 hunks)packages/log-format/.eslintrc.json(1 hunks)packages/log-format/package.json(1 hunks)packages/logger/.eslintrc.json(1 hunks)packages/logger/package.json(1 hunks)packages/media-signaling/.eslintrc.json(1 hunks)packages/media-signaling/package.json(1 hunks)packages/message-parser/.eslintignore(0 hunks)packages/message-parser/.eslintrc.js(0 hunks)packages/message-parser/.eslintrc.json(1 hunks)packages/message-parser/package.json(1 hunks)packages/message-types/.eslintrc.json(1 hunks)packages/message-types/package.json(1 hunks)packages/mock-providers/.eslintrc.json(1 hunks)packages/mock-providers/package.json(1 hunks)packages/model-typings/.eslintrc.json(1 hunks)packages/model-typings/package.json(1 hunks)packages/models/.eslintrc.json(1 hunks)packages/models/package.json(2 hunks)packages/mongo-adapter/.eslintrc.json(1 hunks)packages/node-poplib/package.json(1 hunks)packages/omni-core/.eslintrc.json(1 hunks)
⛔ Files not processed due to max files limit (16)
- packages/omni-core/package.json
- packages/password-policies/.eslintrc.json
- packages/password-policies/package.json
- packages/peggy-loader/.eslintrc.json
- packages/random/.eslintrc.json
- packages/random/package.json
- packages/release-action/.eslintrc.json
- packages/release-action/package.json
- packages/release-changelog/.eslintrc.json
- packages/release-changelog/package.json
- packages/server-cloud-communication/.eslintrc.json
- packages/server-cloud-communication/package.json
- packages/sha256/.eslintrc.json
- packages/sha256/package.json
- packages/storybook-config/package.json
- packages/tsconfig/package.json
💤 Files with no reviewable changes (11)
- ee/packages/pdf-worker/.eslintignore
- packages/fuselage-ui-kit/.eslintignore
- apps/meteor/.eslintignore
- packages/apps-engine/.eslintignore
- packages/livechat/.eslintignore
- apps/uikit-playground/.eslintignore
- apps/uikit-playground/.eslintrc.cjs
- packages/message-parser/.eslintrc.js
- packages/message-parser/.eslintignore
- packages/fuselage-ui-kit/.prettierignore
- packages/gazzodown/.eslintignore
✅ Files skipped from review due to trivial changes (3)
- apps/meteor/packages/rocketchat-i18n/.eslintrc.json
- packages/model-typings/package.json
- packages/eslint-config/.eslintrc.json
🚧 Files skipped from review as they are similar to previous changes (49)
- ee/packages/federation-matrix/.eslintrc.json
- packages/apps/package.json
- apps/uikit-playground/package.json
- ee/packages/media-calls/package.json
- packages/account-utils/package.json
- packages/media-signaling/.eslintrc.json
- packages/freeswitch/.eslintrc.json
- ee/packages/omni-core-ee/package.json
- packages/desktop-api/.eslintrc.json
- ee/apps/presence-service/package.json
- packages/jest-presets/package.json
- apps/meteor/.eslintrc.json
- ee/apps/ddp-streamer/.eslintrc.json
- ee/apps/queue-worker/package.json
- ee/apps/authorization-service/.eslintrc.json
- packages/message-parser/package.json
- packages/favicon/.eslintrc.json
- packages/mock-providers/package.json
- packages/eslint-config/package.json
- packages/logger/package.json
- packages/freeswitch/package.json
- packages/cas-validate/package.json
- ee/packages/presence/package.json
- ee/apps/authorization-service/package.json
- packages/base64/package.json
- ee/apps/presence-service/.eslintrc.json
- ee/apps/account-service/package.json
- ee/packages/omnichannel-services/.eslintrc.json
- packages/message-parser/.eslintrc.json
- packages/media-signaling/package.json
- ee/packages/network-broker/.eslintrc.json
- ee/apps/queue-worker/.eslintrc.json
- ee/apps/omnichannel-transcript/package.json
- packages/agenda/.eslintrc.json
- packages/log-format/.eslintrc.json
- packages/cron/package.json
- ee/packages/network-broker/package.json
- ee/apps/account-service/.eslintrc.json
- ee/apps/ddp-streamer/package.json
- packages/i18n/.eslintrc.json
- packages/models/.eslintrc.json
- packages/message-types/package.json
- packages/fuselage-ui-kit/package.json
- packages/node-poplib/package.json
- packages/jwt/package.json
- packages/instance-status/.eslintrc.json
- ee/packages/license/.eslintrc.json
- packages/livechat/.eslintrc.json
- packages/gazzodown/.eslintrc.json
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to **/*.{ts,tsx,js} : Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Applied to files:
packages/apps-engine/.eslintrc.jsonapps/uikit-playground/.eslintrc.jsonee/packages/pdf-worker/.eslintrc.jsonpackages/i18n/package.json
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
packages/http-router/package.jsonee/packages/pdf-worker/.eslintrc.jsonee/packages/federation-matrix/package.jsonpackages/livechat/package.json
📚 Learning: 2025-11-05T21:04:35.787Z
Learnt from: sampaiodiego
Repo: RocketChat/Rocket.Chat PR: 37357
File: ee/packages/federation-matrix/src/setup.ts:103-120
Timestamp: 2025-11-05T21:04:35.787Z
Learning: In Rocket.Chat's federation-matrix setup (ee/packages/federation-matrix/src/setup.ts and apps/meteor/ee/server/startup/federation.ts), configureFederationMatrixSettings does not need to be called before setupFederationMatrix. The SDK's init() establishes infrastructure (database, event handlers, APIs) first, and the configuration can be applied later via settings watchers before actual federation events are processed. The config only matters when events actually occur, at which point all infrastructure is already configured.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : All test files must be created in `apps/meteor/tests/e2e/` directory
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-10T19:06:20.146Z
Learnt from: MartinSchoeler
Repo: RocketChat/Rocket.Chat PR: 37408
File: apps/meteor/client/views/admin/ABAC/useRoomAttributeOptions.tsx:53-69
Timestamp: 2025-11-10T19:06:20.146Z
Learning: In the Rocket.Chat repository, do not provide suggestions or recommendations about code sections marked with TODO comments. The maintainers have already identified these as future work and external reviewers lack the full context about implementation plans and timing.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-06T20:32:23.658Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37152
File: packages/apps-engine/tests/test-data/utilities.ts:557-573
Timestamp: 2025-10-06T20:32:23.658Z
Learning: In packages/apps-engine/tests/test-data/utilities.ts, the field name `isSubscripbedViaBundle` in the `IMarketplaceSubscriptionInfo` type should not be flagged as a typo, as it may match the upstream API's field name.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.
Applied to files:
ee/packages/federation-matrix/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). (3)
- GitHub Check: 📦 Build Packages
- GitHub Check: CodeQL-Build
- GitHub Check: CodeQL-Build
🔇 Additional comments (46)
packages/log-format/package.json (1)
1-29: Package manifest reformatted correctly.The reordering of keys (scripts, devDependencies, volta) follows the sort-package-json convention and maintains valid JSON structure. All field values remain unchanged—only the key sequence has been normalized for consistency across the monorepo, which is the intended behavior for this chore.
packages/base64/.eslintrc.json (1)
7-7: Verify the narrowed ignorePatterns scope aligns with the package's build structure.The ignorePatterns have been narrowed from
**/dist(recursive, any depth) todist(top-level only). This change will no longer ignore dist directories at nested levels.Confirm this aligns with the package's actual build structure and is intentional per the standardization effort described in the PR. If the package generates build artifacts in nested directories, consider whether reverting to
**/distor specifying nested paths explicitly is necessary.packages/cas-validate/.eslintrc.json (1)
3-3: Verify no nested dist directories need ignoring.The change narrows the ignore pattern from recursive
**/distto top-leveldist, which is intentional per the PR's standardization effort. Please confirm thatpackages/cas-validate/doesn't have nested dist directories that should be excluded from ESLint checks.packages/cron/.eslintrc.json (1)
3-3: Verify the intent of narrowing the distIgnore pattern scope.This change converts the recursive pattern
**/distto the non-recursive patterndist, which significantly reduces the scope of what ESLint will ignore. The new pattern will only match adist/directory at the top level ofpackages/cron/, whereas the old pattern would matchdist/at any level in the directory tree.Confirm that this narrowing is intentional and won't cause ESLint to start linting nested
dist/directories that should be ignored (e.g., in subdirectories or monorepo dependencies).packages/instance-status/package.json (1)
1-32: LGTM! Formatting change looks good.The package.json keys have been reordered to follow a standardized convention (metadata → entry points → files → scripts → dependencies). All content and dependency versions remain unchanged; this is purely a structural reorganization for consistency across the monorepo.
packages/account-utils/.eslintrc.json (1)
3-3: Verify that narrowing the ignore pattern doesn't break ESLint.The change narrows
ignorePatternsfrom**/disttodist, which means only top-level dist directories will be ignored, not nested ones. While this aligns with the PR-wide standardization pattern, ensure that no nested build artifacts or generated files exist within this package that ESLint should be ignoring.If there are nested directories with build output that should be linted, you may need to add explicit patterns. Otherwise, if all build artifacts are at the package root, this change is correct.
packages/mock-providers/.eslintrc.json (1)
3-3: Verify the narrowed ignore scope correctly handles the package structure.The change from
**/dist(recursive, any level) todist(top-level only) aligns with standardization across the monorepo. For a package-level ESLint config in a monorepo, this is reasonable—nested packages manage their own configs. However, confirm that:
- Built output in
packages/mock-providers/distis still correctly ignored by ESLint- If nested packages exist, their
distdirectories aren't unexpectedly lintedee/packages/media-calls/.eslintrc.json (1)
3-3: Verify that narrowing the ignore scope from recursive to non-recursive is intentional.The change from
"**/dist"(recursive) to"dist"(non-recursive) changes ESLint's ignore behavior: it will no longer ignoredistdirectories at nested levels (e.g.,node_modules/*/dist,src/*/dist).While this appears to be part of a broader standardization across the monorepo, confirm that:
- This behavioral narrowing is intentional and aligns with the linting strategy.
- It does not cause ESLint errors when traversing nested package dependencies or subdirectories.
ee/packages/federation-matrix/package.json (1)
1-60: LGTM.The package.json manifest has been properly reorganized and standardized. The added public entry points (
main,typings,files), build scripts, and devDependencies are all appropriate for a TypeScript package in the monorepo. The volta configuration correctly extends the root package configuration, which is the standard pattern for this repository's monorepo setup.ee/packages/license/package.json (1)
5-9: Package manifest entries align with TypeScript/npm publishing best practices.The new
main,typings, andfilesfields properly declare the package's entry points and include-list. The volta reference to the root package.json maintains monorepo version consistency.Verify that the build output aligns with the declared entry points: confirm the TypeScript build (line 11, "build": "tsc") produces
./dist/index.jsand./dist/index.d.tsas referenced inmainandtypingsfields.packages/jwt/.eslintrc.json (1)
3-3: Remove this review comment: the narrower ignorePatterns is appropriate for this package.The change from
"**/dist"to"dist"is safe forpackages/jwt. Directory inspection confirms the package contains only top-level__tests__andsrcdirectories with no nested dist folders at any level. No linting issues will be exposed by this narrower pattern.packages/core-typings/package.json (1)
5-26: Verify this formatting aligns with the PR's sort-package-json tool output.The added metadata (private, main, typings, files, scripts, dependencies) follows standard npm package conventions and appears to be the result of the
sort-package-jsontool with top-level public surface declarations exposed. Confirm that this matches the intended output of the reformatting tool across all affected package.json files in the monorepo.packages/message-types/.eslintrc.json (1)
3-3: No action needed—glob pattern change is safe for this package.The package has no
distdirectories (nested or otherwise), so the ignorePatterns change from"**/dist"to"dist"has no practical impact on linting behavior. This is a safe standardization change.ee/packages/pdf-worker/.eslintrc.json (1)
1-5: Configuration consolidation looks good.The migration from
.eslintignoreto.eslintrc.jsonappropriately scopes the ignore patterns for this package: ignoring only top-leveldistwhile explicitly un-ignoring.storybookto ensure Storybook configuration and story files are linted. This aligns with the broader monorepo ESLint configuration standardization.packages/mongo-adapter/.eslintrc.json (1)
3-3: The pattern change from**/disttodistis appropriate for this package. The mongo-adapter package has a simple flat structure (only root andsrc/directory) with TypeScript building to a single root-leveldistdirectory. There are no nested packages or workspaces that would require recursive dist-directory ignoring.ee/apps/stream-hub-service/.eslintrc.json (1)
11-11: No functional issue with the ignorePatterns change.This package has no nested
distdirectories. The build outputs to a single top-leveldist/, and ESLint only lints thesrc/directory. The change from"**/dist"to"dist"is appropriate for this package structure.apps/uikit-playground/.eslintrc.json (1)
1-29: Verify ignore pattern coverage and linting scope changes.This ESLint configuration consolidates ignore rules from
.eslintignoreintoignorePatterns. Per the PR summary,.eslintignorepatterns were reduced, which expands linting coverage. Ensure this change doesn't inadvertently lint auto-generated files, dependencies, or other excluded assets that could introduce noise or failures in CI.Please verify that the consolidated ignorePatterns in this file match or intentionally extend the previous
.eslintignorerules, and that the resulting lint scope is appropriate for this workspace.packages/livechat/package.json (1)
12-14: Verify thecleanscript targets the correct build output directory.The
cleanscript (line 18) removesdist, but thefilesfield (lines 12-14) specifies only/build. The webpack build command (line 16) does not explicitly specify an output directory. Please verify whether:
- Webpack outputs to
distorbuild(or both)- The
cleanscript should removebuildinstead of (or in addition to)dist- The
filesfield accurately reflects what gets publishedAlso applies to: 18-18
packages/fuselage-ui-kit/.eslintrc.json (1)
46-46: Ignore patterns are correct and intentional.The
ignorePatternsupdate aligns with the package's ESLint configuration:
Pattern
distvs.**/dist: Both are functionally equivalent in ESLint glob matching—each matches adistdirectory at any nesting level. The simplification maintains the same behavior.
!.storybooknegation: This explicitly un-ignores.storybookbecause ESLint ignores dot-prefixed directories by default. Since the config extendsplugin:storybook/recommended, the.storybookdirectory must be linted for the plugin rules to apply. The un-ignore is necessary and correct.
storybook-staticaddition: Standard Storybook build output directory.The
.storybookdirectory exists in the package and is legitimately a source directory, not a generated artifact. The pattern changes are intentional and maintain correct linting behavior.packages/api-client/.eslintrc.json (1)
3-3: Consistent with broader pattern; verification covered in prior file review.This change follows the same pattern as other packages in this PR. Refer to the verification request in
packages/logger/.eslintrc.jsonreview.packages/core-services/.eslintrc.json (1)
11-11: Consistent with broader pattern; verification covered in prior file review.This change follows the same pattern as other packages in this PR. Refer to the verification request in
packages/logger/.eslintrc.jsonreview.ee/packages/omni-core-ee/.eslintrc.json (1)
3-3: Consistent with broader pattern; verification covered in prior file review.This change follows the same pattern as other packages in this PR. Refer to the verification request in
packages/logger/.eslintrc.jsonreview.ee/packages/presence/.eslintrc.json (1)
11-11: Consistent with broader pattern; verification covered in prior file review.This change follows the same pattern as other packages in this PR. Refer to the verification request in
packages/logger/.eslintrc.jsonreview.ee/apps/omnichannel-transcript/.eslintrc.json (1)
3-3: Consistent with broader pattern; verification covered in prior file review.This change follows the same pattern as other packages in this PR. Refer to the verification request in
packages/logger/.eslintrc.jsonreview.packages/omni-core/.eslintrc.json (1)
3-3: Consistent with broader pattern; verification covered in prior file review.This change follows the same pattern as other packages in this PR. Refer to the verification request in
packages/logger/.eslintrc.jsonreview.packages/core-typings/.eslintrc.json (1)
11-11: Consistent with broader pattern; verification covered in prior file review.This change follows the same pattern as other packages in this PR. Refer to the verification request in
packages/logger/.eslintrc.jsonreview.packages/logger/.eslintrc.json (1)
3-3: No action required—the narrowed ignore pattern is appropriate for the current package structure.The change from
"**/dist"to"dist"is safe. Verification found no nested dist directories (such assrc/distorlib/dist) in any affected packages. All packages use only top-level dist directories, so the narrowed pattern correctly ignores the intended dist output without unintentionally linting nested directories.Likely an incorrect or invalid review comment.
ee/packages/ui-theming/package.json (1)
5-6: Top-level consolidation of public exports and tooling is well-organized.Repositioning
main,typings, andscriptsto the top-level improves package manifest clarity and aligns with npm best practices. This consolidation makes the public surface and build configuration immediately discoverable.Also applies to: 10-15
ee/packages/ui-theming/.eslintrc.json (1)
3-3: TheignorePatternsnarrowing is appropriate for this package structure.Verification confirms the package has no nested subdirectories with
distfolders. The package contains only a flat structure withsrc/directory, so the narrowed pattern"dist"is correct and sufficient.packages/apps-engine/package.json (1)
1-127: No action needed — entry points were intentionally removed as invalid.The
mainandtypingsfields are not present in the package.json, which is correct. The most recent commit (f42fcc5235) explicitly removed the invalid typings declaration. Since the package exports via thefilesarray (which includes compiled output directories), entry point fields are unnecessary for this monorepo package's distribution. No regression has occurred.packages/i18n/package.json (1)
31-31: Script reordering — formatting only.The
replace-sprintfscript has been reordered within the scripts object without any command changes. This is a mechanical formatting change with no functional impact.packages/favicon/package.json (1)
10-19: Key reordering — standardized field sequence.The
scriptsanddevDependenciesblocks have been reordered to follow the standardized field sequence (scripts before devDependencies). No functional changes.packages/http-router/package.json (1)
5-40: Public surface fields standardized; verify alignment with previous fix.Lines 5–9 add
main,typings, andfilesentries exposing the dist artifacts. Lines 15–17 make thetestandtypecheckscripts explicit. This aligns with the PR's broader standardization effort across packages.However, note that a past review (in previous commits) flagged and addressed the leading slash in the
filesfield ("/dist"). Verify that the current state reflects the intended format for this repository. If the past fix removed the leading slash, this PR may need adjustment for consistency.packages/agenda/package.json (1)
5-15: Public surface standardized.Description, main, typings, files, and scripts are now properly declared at the top level, exposing the package's public interface and build tooling. Functionally equivalent reorganization.
packages/models/package.json (1)
5-18: Public surface and scripts comprehensively standardized.Lines 5–18 expose the package's build artifacts (main, typings, files) and define a complete suite of build and test scripts. All changes are reorganizational with no functional impact.
ee/packages/omnichannel-services/package.json (1)
5-50: Public surface standardized with comprehensive script suite.Lines 5–16 expose build artifacts and define standardized scripts. Lines 18–50 organize dependencies and devDependencies in consistent order. All changes are reformatting with no semantic impact.
packages/ddp-client/package.json (1)
4-22: Public surface and dependencies clearly exposed.Lines 4–22 expose the package's build artifacts, scripts, and explicit dependency declarations. This improves clarity and follows the PR's standardization pattern across packages.
packages/core-services/package.json (1)
5-28: Public surface fully standardized with explicit dependency declarations.Lines 5–28 expose build artifacts, scripts, and runtime dependencies at the top level. This improves clarity and follows the standardization pattern across the monorepo.
apps/meteor/package.json (4)
63-66: Browserslist field addition looks good.Standard browser targeting metadata; no concerns with addition or content.
11-23: Metadata elevation is appropriate.Moving
bugs,repository,license, andauthorfields to earlier positions in the manifest aligns with standard package.json schema conventions. This is a pure reordering with no functional impact.
477-482: No action required. ThemainModuleconfiguration is in its correct, documented location within themeteorobject. Verification confirms a single definition exists at line 478 with no duplicates or conflicting Meteor configuration files. This is the standard Meteor 1.6+ format for specifying entry points and reflects only a field reordering with no functional impact.
26-61: Cannot verify script command values due to inaccessible git history.The previous version of apps/meteor/package.json is not accessible for comparison. To verify that scripts are only reordered without functional changes to their command values, compare the previous commit's script section directly with the current version using
git show <commit>:apps/meteor/package.json.packages/api-client/package.json (3)
4-8: Standardize public export fields.Added
main,typings, andfilesfields to clarify the package's public API surface and instruct npm on which artifacts to publish. This follows npm package conventions and improves discoverability.
12-13: Lint scripts properly configured.The added
lintandlint:fixscripts follow standard eslint patterns and enable consistent linting across the package with TypeScript support (.ts,.tsx,.js,.jsx).
25-34: DevDependencies properly reorganized.The devDependencies are now consolidated at the end of the manifest in a single block. This follows package.json conventions (public exports/scripts first, dependencies second, dev dependencies last) and maintains the same tooling stack (
@types/jest,eslint,typescript, etc.).ee/apps/stream-hub-service/package.json (1)
16-16: The "lint" script"eslint src"in stream-hub-service is fully consistent with all related service packages (account-service, authorization-service, ddp-streamer, omnichannel-transcript, presence-service, queue-worker). All use identical lint commands. The package has a properly configured .eslintrc.json extending @rocket.chat/eslint-config with appropriate jest overrides and ignore patterns. No inconsistencies detected.Likely an incorrect or invalid review comment.
f42fcc5 to
92731ff
Compare
There was a problem hiding this 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
♻️ Duplicate comments (7)
ee/packages/ui-theming/package.json (1)
7-9: Fix thefilesarray entry format (duplicate of previous review).The entry
"/src"in thefilesarray uses a leading slash, which violates the npm package.json specification. Thefilesarray should contain relative paths without leading slashes.Apply this diff to correct the path:
"files": [ - "/src" + "src" ],packages/core-typings/package.json (1)
8-10: Remove the leading slash from the files array.The
filesarray should use relative paths without leading slashes. Using"/dist"instead of"dist"may prevent npm from correctly including files during package publication."files": [ - "/dist" + "dist" ],ee/packages/federation-matrix/.eslintrc.json (1)
3-3: Verify intent of ESLint ignorePatterns narrowing.The change from
"**/dist"to"dist"narrows the ignore scope to only the top-level directory. This is consistent with other files in the PR but represents a behavioral change in linting scope.ee/apps/ddp-streamer/.eslintrc.json (1)
11-11: Verify intent of ESLint ignorePatterns narrowing.The change from
"**/dist"to"dist"narrows the ignore scope. This change is applied consistently across the repository as part of this PR.packages/log-format/.eslintrc.json (1)
3-3: Verify intent of ESLint ignorePatterns narrowing.Consistent with other files in this PR, the ignore pattern is narrowed to top-level only.
packages/media-signaling/.eslintrc.json (1)
3-3: Verify intent of ESLint ignorePatterns narrowing.Consistent with other files in this PR, the ignore pattern is narrowed to top-level only.
ee/apps/authorization-service/.eslintrc.json (1)
11-11: Verify intent of ESLint ignorePatterns narrowing.Consistent with other files in this PR, the ignore pattern is narrowed to top-level only.
🧹 Nitpick comments (2)
ee/packages/presence/package.json (1)
10-17: Consider de-duplicating test scripts.Lines 14–15 define both "test" and "testunit" with identical commands (
jest). If they serve different purposes, they should run different test filters; if not, one can be removed. This may be intentional for backward compatibility, but warrants a quick clarification.packages/apps-engine/package.json (1)
37-44: Consider whether build scripts should be included in the "files" array.Line 42 includes
"scripts/**"in the published package. Typically, "files" should contain only:
- Compiled output (e.g.,
lib/,client/,definition/,server/,deno-runtime/)- Type definitions
- README, LICENSE, etc.
Build and tooling scripts in
scripts/are development-only and not needed by consumers. Including them unnecessarily increases package size.Consider removing
"scripts/**"from the "files" array unless those scripts are runtime utilities that consumers explicitly depend on."files": [ "client/**", "definition/**", "deno-runtime/**", "lib/**", - "scripts/**", "server/**" ],
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (107)
apps/meteor/.eslintignore(0 hunks)apps/meteor/.eslintrc.json(1 hunks)apps/meteor/package.json(2 hunks)apps/meteor/packages/rocketchat-i18n/.eslintrc.json(1 hunks)apps/uikit-playground/.eslintignore(0 hunks)apps/uikit-playground/.eslintrc.cjs(0 hunks)apps/uikit-playground/.eslintrc.json(1 hunks)apps/uikit-playground/package.json(1 hunks)ee/apps/account-service/.eslintrc.json(1 hunks)ee/apps/account-service/package.json(1 hunks)ee/apps/authorization-service/.eslintrc.json(1 hunks)ee/apps/authorization-service/package.json(1 hunks)ee/apps/ddp-streamer/.eslintrc.json(1 hunks)ee/apps/ddp-streamer/package.json(1 hunks)ee/apps/omnichannel-transcript/.eslintrc.json(1 hunks)ee/apps/omnichannel-transcript/package.json(1 hunks)ee/apps/presence-service/.eslintrc.json(1 hunks)ee/apps/presence-service/package.json(1 hunks)ee/apps/queue-worker/.eslintrc.json(1 hunks)ee/apps/queue-worker/package.json(1 hunks)ee/apps/stream-hub-service/.eslintrc.json(1 hunks)ee/apps/stream-hub-service/package.json(1 hunks)ee/packages/federation-matrix/.eslintrc.json(1 hunks)ee/packages/federation-matrix/package.json(2 hunks)ee/packages/license/.eslintrc.json(1 hunks)ee/packages/license/package.json(2 hunks)ee/packages/media-calls/.eslintrc.json(1 hunks)ee/packages/media-calls/package.json(1 hunks)ee/packages/network-broker/.eslintrc.json(1 hunks)ee/packages/network-broker/package.json(1 hunks)ee/packages/omni-core-ee/.eslintrc.json(1 hunks)ee/packages/omni-core-ee/package.json(2 hunks)ee/packages/omnichannel-services/.eslintrc.json(1 hunks)ee/packages/omnichannel-services/package.json(2 hunks)ee/packages/pdf-worker/.eslintignore(0 hunks)ee/packages/pdf-worker/.eslintrc.json(1 hunks)ee/packages/presence/.eslintrc.json(1 hunks)ee/packages/presence/package.json(1 hunks)ee/packages/ui-theming/.eslintrc.json(1 hunks)ee/packages/ui-theming/package.json(1 hunks)packages/account-utils/.eslintrc.json(1 hunks)packages/account-utils/package.json(1 hunks)packages/agenda/.eslintrc.json(1 hunks)packages/agenda/package.json(1 hunks)packages/api-client/.eslintrc.json(1 hunks)packages/api-client/package.json(2 hunks)packages/apps-engine/.eslintignore(0 hunks)packages/apps-engine/.eslintrc.json(1 hunks)packages/apps-engine/package.json(3 hunks)packages/apps/.eslintrc.json(1 hunks)packages/apps/package.json(1 hunks)packages/base64/.eslintrc.json(1 hunks)packages/base64/package.json(1 hunks)packages/cas-validate/.eslintrc.json(1 hunks)packages/cas-validate/package.json(1 hunks)packages/core-services/.eslintrc.json(1 hunks)packages/core-services/package.json(1 hunks)packages/core-typings/.eslintrc.json(1 hunks)packages/core-typings/package.json(1 hunks)packages/cron/.eslintrc.json(1 hunks)packages/cron/package.json(1 hunks)packages/ddp-client/package.json(1 hunks)packages/desktop-api/.eslintrc.json(1 hunks)packages/eslint-config/.eslintrc.json(1 hunks)packages/eslint-config/package.json(1 hunks)packages/favicon/.eslintrc.json(1 hunks)packages/favicon/package.json(1 hunks)packages/freeswitch/.eslintrc.json(1 hunks)packages/freeswitch/package.json(1 hunks)packages/fuselage-ui-kit/.eslintignore(0 hunks)packages/fuselage-ui-kit/.eslintrc.json(2 hunks)packages/fuselage-ui-kit/.prettierignore(0 hunks)packages/fuselage-ui-kit/package.json(1 hunks)packages/gazzodown/.eslintignore(0 hunks)packages/gazzodown/.eslintrc.json(1 hunks)packages/http-router/package.json(2 hunks)packages/i18n/.eslintrc.json(1 hunks)packages/i18n/package.json(1 hunks)packages/instance-status/.eslintrc.json(1 hunks)packages/instance-status/package.json(1 hunks)packages/jest-presets/package.json(1 hunks)packages/jwt/.eslintrc.json(1 hunks)packages/jwt/package.json(1 hunks)packages/livechat/.eslintignore(0 hunks)packages/livechat/.eslintrc.json(2 hunks)packages/livechat/package.json(1 hunks)packages/log-format/.eslintrc.json(1 hunks)packages/log-format/package.json(1 hunks)packages/logger/.eslintrc.json(1 hunks)packages/logger/package.json(1 hunks)packages/media-signaling/.eslintrc.json(1 hunks)packages/media-signaling/package.json(1 hunks)packages/message-parser/.eslintignore(0 hunks)packages/message-parser/.eslintrc.js(0 hunks)packages/message-parser/.eslintrc.json(1 hunks)packages/message-parser/package.json(1 hunks)packages/message-types/.eslintrc.json(1 hunks)packages/message-types/package.json(1 hunks)packages/mock-providers/.eslintrc.json(1 hunks)packages/mock-providers/package.json(1 hunks)packages/model-typings/.eslintrc.json(1 hunks)packages/model-typings/package.json(1 hunks)packages/models/.eslintrc.json(1 hunks)packages/models/package.json(2 hunks)packages/mongo-adapter/.eslintrc.json(1 hunks)packages/node-poplib/package.json(1 hunks)packages/omni-core/.eslintrc.json(1 hunks)
⛔ Files not processed due to max files limit (16)
- packages/omni-core/package.json
- packages/password-policies/.eslintrc.json
- packages/password-policies/package.json
- packages/peggy-loader/.eslintrc.json
- packages/random/.eslintrc.json
- packages/random/package.json
- packages/release-action/.eslintrc.json
- packages/release-action/package.json
- packages/release-changelog/.eslintrc.json
- packages/release-changelog/package.json
- packages/server-cloud-communication/.eslintrc.json
- packages/server-cloud-communication/package.json
- packages/sha256/.eslintrc.json
- packages/sha256/package.json
- packages/storybook-config/package.json
- packages/tsconfig/package.json
💤 Files with no reviewable changes (11)
- packages/message-parser/.eslintrc.js
- ee/packages/pdf-worker/.eslintignore
- apps/meteor/.eslintignore
- apps/uikit-playground/.eslintrc.cjs
- packages/apps-engine/.eslintignore
- apps/uikit-playground/.eslintignore
- packages/message-parser/.eslintignore
- packages/gazzodown/.eslintignore
- packages/fuselage-ui-kit/.eslintignore
- packages/fuselage-ui-kit/.prettierignore
- packages/livechat/.eslintignore
✅ Files skipped from review due to trivial changes (3)
- packages/logger/package.json
- packages/freeswitch/package.json
- apps/meteor/packages/rocketchat-i18n/.eslintrc.json
🚧 Files skipped from review as they are similar to previous changes (53)
- packages/models/.eslintrc.json
- ee/packages/license/.eslintrc.json
- packages/cron/package.json
- apps/uikit-playground/.eslintrc.json
- ee/packages/omni-core-ee/package.json
- packages/mongo-adapter/.eslintrc.json
- ee/apps/omnichannel-transcript/.eslintrc.json
- packages/mock-providers/.eslintrc.json
- packages/model-typings/.eslintrc.json
- ee/apps/presence-service/.eslintrc.json
- ee/apps/queue-worker/.eslintrc.json
- packages/jwt/.eslintrc.json
- ee/packages/ui-theming/.eslintrc.json
- packages/core-typings/.eslintrc.json
- packages/node-poplib/package.json
- packages/eslint-config/.eslintrc.json
- ee/apps/stream-hub-service/.eslintrc.json
- packages/livechat/.eslintrc.json
- packages/account-utils/package.json
- packages/eslint-config/package.json
- ee/packages/omnichannel-services/.eslintrc.json
- apps/meteor/.eslintrc.json
- packages/apps/package.json
- ee/packages/media-calls/.eslintrc.json
- packages/message-parser/.eslintrc.json
- packages/message-types/package.json
- packages/message-parser/package.json
- packages/base64/package.json
- apps/uikit-playground/package.json
- ee/packages/network-broker/package.json
- packages/ddp-client/package.json
- ee/packages/omni-core-ee/.eslintrc.json
- ee/packages/presence/.eslintrc.json
- packages/media-signaling/package.json
- packages/favicon/.eslintrc.json
- packages/message-types/.eslintrc.json
- ee/apps/stream-hub-service/package.json
- packages/cas-validate/package.json
- packages/instance-status/package.json
- ee/apps/ddp-streamer/package.json
- packages/fuselage-ui-kit/package.json
- packages/logger/.eslintrc.json
- packages/i18n/package.json
- ee/apps/presence-service/package.json
- packages/log-format/package.json
- packages/apps-engine/.eslintrc.json
- packages/favicon/package.json
- ee/packages/omnichannel-services/package.json
- ee/packages/pdf-worker/.eslintrc.json
- packages/cas-validate/.eslintrc.json
- packages/jwt/package.json
- packages/i18n/.eslintrc.json
- ee/apps/authorization-service/package.json
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
Applied to files:
ee/packages/federation-matrix/.eslintrc.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-05T21:04:35.787Z
Learnt from: sampaiodiego
Repo: RocketChat/Rocket.Chat PR: 37357
File: ee/packages/federation-matrix/src/setup.ts:103-120
Timestamp: 2025-11-05T21:04:35.787Z
Learning: In Rocket.Chat's federation-matrix setup (ee/packages/federation-matrix/src/setup.ts and apps/meteor/ee/server/startup/federation.ts), configureFederationMatrixSettings does not need to be called before setupFederationMatrix. The SDK's init() establishes infrastructure (database, event handlers, APIs) first, and the configuration can be applied later via settings watchers before actual federation events are processed. The config only matters when events actually occur, at which point all infrastructure is already configured.
Applied to files:
ee/packages/federation-matrix/.eslintrc.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
ee/apps/queue-worker/package.jsonee/packages/federation-matrix/package.jsonpackages/http-router/package.jsonpackages/livechat/package.jsonee/apps/omnichannel-transcript/package.json
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : All test files must be created in `apps/meteor/tests/e2e/` directory
Applied to files:
ee/packages/ui-theming/package.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-10T19:06:20.146Z
Learnt from: MartinSchoeler
Repo: RocketChat/Rocket.Chat PR: 37408
File: apps/meteor/client/views/admin/ABAC/useRoomAttributeOptions.tsx:53-69
Timestamp: 2025-11-10T19:06:20.146Z
Learning: In the Rocket.Chat repository, do not provide suggestions or recommendations about code sections marked with TODO comments. The maintainers have already identified these as future work and external reviewers lack the full context about implementation plans and timing.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-06T20:32:23.658Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37152
File: packages/apps-engine/tests/test-data/utilities.ts:557-573
Timestamp: 2025-10-06T20:32:23.658Z
Learning: In packages/apps-engine/tests/test-data/utilities.ts, the field name `isSubscripbedViaBundle` in the `IMarketplaceSubscriptionInfo` type should not be flagged as a typo, as it may match the upstream API's field name.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.
Applied to files:
ee/packages/federation-matrix/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). (3)
- GitHub Check: 📦 Build Packages
- GitHub Check: CodeQL-Build
- GitHub Check: CodeQL-Build
🔇 Additional comments (47)
ee/packages/media-calls/package.json (1)
10-33: LGTM!The reordering of package.json keys follows the sort-package-json standard convention while preserving all content and functionality. Scripts and devDependencies remain functionally identical, just repositioned for consistency across the monorepo.
packages/instance-status/.eslintrc.json (1)
11-11: Verify that narrowing the ignorePatterns glob is appropriate for this package.The change from
"**/dist"to"dist"narrows the pattern to match only a root-level dist directory. This tightening is intentional per the PR's focus on reviewing ignore patterns, but it could expose nested dist directories (e.g., in sub-packages or build outputs) to linting if they exist.Please confirm:
- Does
packages/instance-statusbuild only to a root-level dist directory, or does it have nested build outputs?- Are there any sub-packages or node_modules dist directories that should remain ignored?
If the package structure warrants ignoring nested dist directories, consider using
"**/dist"or a more specific pattern.ee/apps/account-service/package.json (1)
1-59: Clean manifest consolidation and reformatting—looks good!The reorganization of package.json follows standard sort-package-json conventions:
- Metadata fields (
keywords,author,main,files) are appropriately positioned and consolidated.- The
mainentry correctly points to the built service file.- The
filesarray appropriately restricts the package to the dist directory.- The new
lintscript (line 16) is a helpful addition for local development.- The
privateflag (line 4) is correctly set for an internal monorepo package.No issues detected.
packages/fuselage-ui-kit/.eslintrc.json (1)
46-46: ✓ ESLint ignore patterns correctly tightened.The change narrows
**/disttodist(top-level only) and adds Storybook-related patterns (storybook-staticand!.storybook), which is consistent with the PR objective to tighten ESLint ignore rules across the monorepo. The negation pattern!.storybookensures the.storybookconfiguration directory remains subject to linting.packages/jest-presets/package.json (1)
1-52: Manifest properly reformatted per project conventions.The package.json has been correctly reorganized using sort-package-json, with keys now ordered according to npm conventions: metadata → exports → files → scripts → dependencies → devDependencies → volta. No functional changes, content is intact, and JSON structure is valid.
packages/mock-providers/package.json (1)
5-15: Consolidation looks good; note the private + main/typings/files pattern.The reformatting consolidates public metadata (
main,typings,files) and scripts at the top level, removing duplicates elsewhere—a clean and idiomatic pattern. The scripts are well-formed for a TypeScript package (build with tsc, watch mode for dev, and ESLint lint/fix tasks).One informational note: the package is marked
"private": truebut declaresmain,typings, andfilesfields. This is common in monorepos for internal workspace packages (used for local resolution and tooling), but confirm that this is intentional and aligns with the package's usage within the workspace.packages/gazzodown/.eslintrc.json (1)
48-48: Verify the intentional narrowing of the dist ignore pattern and clarify the negation rule.The pattern has changed from recursive (
**/dist) to non-recursive (dist), which means nesteddistdirectories (e.g.,src/components/dist) would no longer be ignored by ESLint. Additionally, the negation pattern!.storybookis redundant—it does not affect thedistpattern and.storybookis not matched by it.Confirm that:
- The narrowed pattern (non-recursive
distonly) aligns with the actual directory structure and ESLint requirements for this package.- The
!.storybooknegation is intentional or can be removed for clarity.If the intent is to preserve non-recursive behavior while ensuring
.storybookis explicitly not ignored, consider clarifying the pattern (e.g., via a comment) or removing the redundant negation.packages/account-utils/.eslintrc.json (1)
3-3: Verify the narrowed ignore scope doesn't cause unintended linting of generated files.The
ignorePatternshas been narrowed from"**/dist"(recursive, any-depth directories) to"dist"(top-level only). This intentional narrowing aligns with the PR's focus on reviewing ESLint ignore patterns.However, confirm that:
- No nested
distor other generated directories at depth > 1 exist in this package that should remain ignored.- This change doesn't inadvertently cause ESLint to now lint build artifacts that should be excluded.
packages/livechat/package.json (4)
5-5: Verify metadata fields are intentional and consistent.The new metadata fields (homepage, license, files) align with npm conventions, but two potential concerns:
- The
homepagevalue is generic to the organization, not package-specific. Confirm this is intentional for the livechat package.- The
filesarray includes/build, but the clean script (line 18) removesdist. This may indicate an inconsistency—clarify whether the build output should be inbuild/ordist/.Also applies to: 11-14
17-18: Verify new build scripts reference existing tooling.The additions of
build-storybook(line 17),clean(line 18), andstylelint(line 24) scripts appear functional, and the updatedlintscript to combine both linters (line 21) is sensible. Confirm that the corresponding tooling (storybook, stylelint) is already configured and available.Also applies to: 21-21, 24-24
27-30: Browserslist addition.The new
browserslistsection follows npm conventions and aligns with the monorepo's standardization effort.
31-54: Verify dependencies were not previously specified elsewhere.The explicit
dependenciessection is now centralized here. Confirm that these dependencies were not previously specified in a different location (e.g., inline or in a separate config file) to avoid duplication or unexpected version changes.ee/packages/license/package.json (3)
5-9: Export configuration looks correct.The added
main,typings, andfilesfields properly declare the package's public exports and restrict publication to built artifacts.Please confirm that your build configuration (likely
tsconfig.json) outputs to./dist/with both.jsand.d.tsfiles as declared here.
24-34: DevDependencies are appropriate.The tooling dependencies (Jest, TypeScript, ESLint, and their types) align well with the package's build and test setup.
35-37: Volta configuration is idiomatic for the monorepo.Extending the root
package.jsonensures Node/npm version consistency across the workspace.ee/apps/omnichannel-transcript/package.json (1)
1-66: Package manifest reformatting looks good—fields properly ordered and consolidated.The sort-package-json tool has correctly reorganized the manifest to follow npm field ordering conventions (name → version → private → description → keywords → author → main → files → scripts → dependencies → devDependencies → volta). Field consolidation removes duplication while preserving all essential metadata.
Field values are semantically correct: keywords and author identify the package,
mainpoints to the compiled service entry point, and thelintscript provides ESLint integration.Verification: Please confirm that the
mainfield path (./dist/ee/apps/omnichannel-transcript/src/service.js) matches the actual compiled entry point aftertscbuilds the project. If the build output is structured differently, this path may need adjustment.packages/freeswitch/.eslintrc.json (1)
3-3: No issues found. The package has no nesteddistdirectories, so the narrowed ignore pattern from**/disttodisthas no negative impact. The pattern correctly ignores only the top-leveldistdirectory, which is the standard build output location for this package.packages/agenda/package.json (1)
5-15: Manifest reorganization is well-structured and follows npm conventions.The reordering of package.json fields—moving
description,main,typings,files, andscriptsto the top-level root after basic metadata—aligns with npm best practices andsort-package-jsonconventions. All field values are correct and consistent with the package's structure (TypeScript project compiling to/dist).packages/omni-core/.eslintrc.json (1)
3-3: The narrowed ignore pattern scope is safe for this package.The change from
"**/dist"to"dist"is intentional and poses no issues. The package structure contains no nesteddistdirectories, and any build output will be placed at the top level only, making the narrowed pattern appropriate.packages/cron/.eslintrc.json (1)
3-3: No changes needed for this ignore pattern.The package structure contains only a top-level
src/directory with no nesteddistdirectories, so the non-recursive pattern"dist"correctly ignores the build output at the package root.Likely an incorrect or invalid review comment.
packages/desktop-api/.eslintrc.json (1)
3-3: Verify the package structure before applying this ignore pattern change.The change from
"**/dist"to"dist"narrows the ignore scope from recursive (any nesting level) to top-level only. Confirm thatpackages/desktop-api/has no nesteddist/directories that should be excluded from linting, or that such directories are intentionally included.ee/packages/presence/package.json (2)
5-9: Field consolidation and export declarations look correct.The main, typings, and files fields are properly positioned and follow standard npm package.json conventions for TypeScript package distribution. The files list restricts distribution to /dist only, which is appropriate.
18-23: Dependency block looks good.Workspace protocol for internal packages (@rocket.chat/*) is correct for the monorepo, and mongodb is pinned to a specific version (6.16.0). No concerns.
packages/api-client/.eslintrc.json (1)
3-3: No changes needed; this aligns with the monorepo pattern.The
ignorePatternssetting using"dist"is consistent across all packages in the monorepo (account-utils, agenda, apps, base64, cas-validate, core-services, core-typings, cron, etc.). The api-client package structure does not include nested subdirectories with their own build outputs, so the top-leveldistpattern is appropriate and sufficient.Likely an incorrect or invalid review comment.
packages/api-client/package.json (2)
12-13: Lint scripts are properly configured.The ESLint commands correctly target TypeScript and JavaScript files and include the fix variant for automated corrections. These align with the PR's goal of standardizing ESLint tooling across the monorepo.
25-34: DevDependencies appropriately scoped.The reorganized devDependencies block contains the expected tooling: ESLint, Jest, TypeScript, and related type definitions. The workspace dependency specifiers (workspace:~, workspace:*) are appropriate for monorepo management.
packages/base64/.eslintrc.json (1)
7-7: The ignorePatterns change is appropriate and safe.Verification shows that
packages/base64contains only a top-leveldistdirectory (created by the build script), with no nesteddistdirectories in the package structure. The narrower pattern"dist"correctly targets the actual build output location and is consistent with the package's single-dist-per-package structure.packages/model-typings/package.json (1)
10-23: LGTM! Pure formatting standardization.The reordering of
scriptsanddevDependenciesblocks follows the sort-package-json convention. No content changes—only positional reorganization.packages/models/package.json (2)
5-18: Verify the intent of adding public surface fields.The addition of
main,typings,files, andscriptsfields represents a behavioral change to the package's public surface:
mainandtypingsnow explicitly define entry points for Node.js and TypeScript consumers (previously implicitly defaulted or undefined).filesnow controls which files are included in the npm package distribution.This contradicts the PR summary stating "No runtime or behavioral changes." Please confirm:
- Were these fields intentionally absent in the prior state?
- Does this change impact the npm package distribution or consumer behavior?
- Is this fixing a bug/oversight or an intentional restructuring?
30-37: Verify devDependencies consistency across the monorepo.Ensure the devDependencies reorganization is consistent with the sort-package-json tool output and aligns with similar changes in other packages within this PR (e.g., packages/model-typings and other modified package.json files).
packages/core-services/package.json (1)
10-28: Verify dependency vs. devDependency classification.Lines 17–28 list dependencies alongside internal packages and external libraries. Without examining the actual imports and exports in the source code, it's unclear whether all of these should truly be runtime dependencies (as opposed to devDependencies for build/test tooling).
Please confirm:
- Are
@rocket.chat/federation-sdk,@rocket.chat/icons,@rocket.chat/media-signaling, etc., all required at runtime by the exported API?- Or should any of these (especially tools like
@rocket.chat/ui-kitor@rocket.chat/message-parser) be devDependencies?packages/http-router/package.json (3)
5-9: Manifest fields look correct for a compiled TypeScript package.The
main,typings, andfilesfields are appropriately configured and align with the build output (./dist). These additions follow standard conventions for published TS packages.
15-17: Script additions are appropriate.The
typecheckscript (line 17) is a useful addition, enabling type checking viatsc --noEmitseparately from test execution. Thetestscript is correctly configured to use jest.
28-40: DevDependencies are properly organized.The devDependencies are alphabetically sorted and include all necessary tooling for this TypeScript package: ESLint config, Jest presets, TypeScript config, type definitions, and testing libraries. Versions are appropriately pinned.
ee/apps/account-service/.eslintrc.json (1)
11-11: Verify intent of ESLint ignorePatterns narrowing.The change from
"**/dist"(recursive, any nesting level) to"dist"(top-level only) significantly narrows the ignore scope. This is a behavioral change that affects which files ESLint will process. Nesteddistdirectories that were previously ignored will now be linted.Confirm this narrowing is intentional across the monorepo and won't inadvertently lint generated outputs or vendored code in nested packages.
ee/packages/federation-matrix/package.json (3)
5-9: Verify that public API declarations point to correct build outputs.The addition of
main,typings, andfilesexports the package's public surface. Confirm:
- The build process actually produces
dist/index.jsanddist/index.d.ts- The
tsconfig.build.jsonis configured to emit both CommonJS and type definitions- These declarations are correct for consuming packages
Also note: The package is marked
"private": true(line 4), so npm publishing exports won't apply to this monorepo package. These declarations still matter for internal monorepo consumption, but verify this is the intended pattern.
11-19: Build and development scripts are well-structured.The new
build,dev, andtypecheckscripts follow standard TypeScript project patterns and integrate cleanly with the existing scripts. No concerns.
57-59: Volta configuration correctly extends parent.The volta configuration correctly points to the monorepo root with the relative path. This is the standard pattern for enforcing Node/npm versions across monorepo packages.
packages/apps/.eslintrc.json (1)
3-3: Narrowed ignorePattern is appropriate for this package's structure.The pattern change from
**/disttodistis safe—packages/apps/contains only a flat source structure (src/with subdirectories likebridges/andconverters/) with no nested applications or packages. There are no nesteddistdirectories or ESLint configs to be exposed by this narrowing.packages/core-services/.eslintrc.json (1)
11-11: No issues found with the ignore pattern change.The narrowing from
**/disttodistis appropriate for this package. The codebase contains only a top-levelsrc/directory with no nesteddistdirectories, so the more specific pattern correctly ignores only the generated build output atpackages/core-services/dist/. This change poses no risk of exposing unintended directories to linting.apps/meteor/package.json (3)
11-23: Metadata fields look good.The additions of
bugs,repository,license, andauthorare standard package.json fields that improve discoverability and project metadata. No concerns here.
63-66: browserslist field is reasonable.The new
browserslistconfiguration targets the last 2 browser versions plus Firefox ESR, which is appropriate for a modern web application. This aligns with standard browser support practices.
26-61: All script dependencies and configuration files are present and properly configured. The.mocharcconfig files (.mocharc.js,.mocharc.api.js,.mocharc.definition.js, and.mocharc.base.json) exist in the project. Thedocker-composetool is declared as an explicit dev dependency (^0.24.8) in package.json. Referenced script files (.scripts/make-migration.ts,.scripts/run-ha.ts,.scripts/version.js,.scripts/set-version.js) are all present. Thets-nodedependency (^10.9.2) is correctly specified. No action needed.ee/apps/queue-worker/package.json (3)
4-13: Metadata fields properly reorganized per npm conventions.The reordering of package metadata (private, keywords, author, main, files) aligns with npm best practices and sort-package-json conventions. The structure is clean and follows the expected field precedence.
10-13: Build configuration is correct: outDir matches the declared main entry point.The
outDirin tsconfig.json is set to./dist/ee/apps/queue-worker/src, which aligns perfectly with the main entry point./dist/ee/apps/queue-worker/src/service.jsin package.json. The TypeScript compiler will compile./src/service.tstoservice.jsin the specified output directory, resulting in the exact path structure declared in the main field. No changes needed.
16-16: No action needed — ESLint configuration is properly set up.The
.eslintrc.jsonconfiguration file exists inee/apps/queue-worker/, and thesrcdirectory is present with lintable content. The lint script"eslint src"is correctly configured and will resolve the ESLint configuration locally.packages/apps-engine/package.json (1)
1-127: The review comment flags a non-issue. This package correctly uses subpath imports (e.g.,@rocket.chat/apps-engine/definition/AppStatus) rather than a root entry point, and therefore does not require"main"and"typings"fields. The commit "Remove invalid typings declaration" correctly removed incorrectly-configured entry points. The package structure withoutDir: "."and subpath imports is the intended architecture and is properly configured.Likely an incorrect or invalid review comment.
92731ff to
0a295c0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (7)
ee/apps/stream-hub-service/package.json (2)
10-10: "main" entry point path mismatch persists (duplicate issue).This was flagged in a previous review as addressing commits 74d21c2–92731ff, but the issue remains:
"./dist/ee/apps/stream-hub-service/src/service.js"appears to include the full monorepo path and likely doesn't match the TypeScripttsconfig.jsonoutput. Verify that the compiled output actually lands at this path relative to the package root, or adjust to"./dist/service.js"if the build outputs directly todist/.
11-13: "files" field uses incorrect leading slash (duplicate issue).This was flagged in a previous review as addressing commits 74d21c2–92731ff, but the issue persists: the pattern
"/dist"includes a leading slash, which is incorrect per npm documentation. Per.gitignore-style pattern rules, use"dist"instead. Verify across all related service packages (account-service, authorization-service, ddp-streamer, omnichannel-transcript, presence-service, queue-worker) that this has been uniformly corrected.ee/packages/ui-theming/package.json (1)
7-9: Fix thefilesarray entry format.This issue was flagged in a previous review. The entry
"/src"uses a leading slash, which is not standard per the npm package.json specification. Thefilesarray should contain relative paths without leading slashes.Apply this diff to correct the path:
"files": [ - "/src" + "src" ],packages/api-client/package.json (1)
6-8:⚠️ Unresolved: Remove leading slash fromfilesfield—previous review feedback not incorporated.The
filesfield still uses/distwith a leading slash. This was flagged in a previous review. Per npm specification, thefilesfield should use relative paths without leading slashes. This prevents npm from correctly including files during package publication.Apply this diff to fix:
"files": [ - "/dist" + "dist" ],packages/core-typings/package.json (1)
8-10:⚠️ Unresolved: Remove leading slash fromfilesfield—previous review feedback not incorporated.The
filesfield still uses/distwith a leading slash. This was flagged in a previous review. Per npm specification, thefilesfield should use relative paths without leading slashes. This prevents npm from correctly including files during package publication.Apply this diff to fix:
"files": [ - "/dist" + "dist" ],packages/ddp-client/package.json (1)
6-8:⚠️ Unresolved: Remove leading slash fromfilesfield—previous review feedback not incorporated.The
filesfield still uses/distwith a leading slash. This was flagged in a previous review. Per npm specification, thefilesfield should use relative paths without leading slashes. This prevents npm from correctly including files during package publication.Apply this diff to fix:
"files": [ - "/dist" + "dist" ],ee/apps/authorization-service/.eslintrc.json (1)
11-11: Same ignorePatterns concern as other ESLint files.This file follows the same
"**/dist"→"dist"pattern as other ESLint configs in this PR. See the verification request on theee/apps/ddp-streamer/.eslintrc.jsonfile for details on validating this change.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (107)
apps/meteor/.eslintignore(0 hunks)apps/meteor/.eslintrc.json(1 hunks)apps/meteor/package.json(2 hunks)apps/meteor/packages/rocketchat-i18n/.eslintrc.json(1 hunks)apps/uikit-playground/.eslintignore(0 hunks)apps/uikit-playground/.eslintrc.cjs(0 hunks)apps/uikit-playground/.eslintrc.json(1 hunks)apps/uikit-playground/package.json(1 hunks)ee/apps/account-service/.eslintrc.json(1 hunks)ee/apps/account-service/package.json(1 hunks)ee/apps/authorization-service/.eslintrc.json(1 hunks)ee/apps/authorization-service/package.json(1 hunks)ee/apps/ddp-streamer/.eslintrc.json(1 hunks)ee/apps/ddp-streamer/package.json(1 hunks)ee/apps/omnichannel-transcript/.eslintrc.json(1 hunks)ee/apps/omnichannel-transcript/package.json(1 hunks)ee/apps/presence-service/.eslintrc.json(1 hunks)ee/apps/presence-service/package.json(1 hunks)ee/apps/queue-worker/.eslintrc.json(1 hunks)ee/apps/queue-worker/package.json(1 hunks)ee/apps/stream-hub-service/.eslintrc.json(1 hunks)ee/apps/stream-hub-service/package.json(1 hunks)ee/packages/federation-matrix/.eslintrc.json(1 hunks)ee/packages/federation-matrix/package.json(2 hunks)ee/packages/license/.eslintrc.json(1 hunks)ee/packages/license/package.json(2 hunks)ee/packages/media-calls/.eslintrc.json(1 hunks)ee/packages/media-calls/package.json(1 hunks)ee/packages/network-broker/.eslintrc.json(1 hunks)ee/packages/network-broker/package.json(1 hunks)ee/packages/omni-core-ee/.eslintrc.json(1 hunks)ee/packages/omni-core-ee/package.json(2 hunks)ee/packages/omnichannel-services/.eslintrc.json(1 hunks)ee/packages/omnichannel-services/package.json(2 hunks)ee/packages/pdf-worker/.eslintignore(0 hunks)ee/packages/pdf-worker/.eslintrc.json(1 hunks)ee/packages/presence/.eslintrc.json(1 hunks)ee/packages/presence/package.json(1 hunks)ee/packages/ui-theming/.eslintrc.json(1 hunks)ee/packages/ui-theming/package.json(1 hunks)packages/account-utils/.eslintrc.json(1 hunks)packages/account-utils/package.json(1 hunks)packages/agenda/.eslintrc.json(1 hunks)packages/agenda/package.json(1 hunks)packages/api-client/.eslintrc.json(1 hunks)packages/api-client/package.json(2 hunks)packages/apps-engine/.eslintignore(0 hunks)packages/apps-engine/.eslintrc.json(1 hunks)packages/apps-engine/package.json(3 hunks)packages/apps/.eslintrc.json(1 hunks)packages/apps/package.json(1 hunks)packages/base64/.eslintrc.json(1 hunks)packages/base64/package.json(1 hunks)packages/cas-validate/.eslintrc.json(1 hunks)packages/cas-validate/package.json(1 hunks)packages/core-services/.eslintrc.json(1 hunks)packages/core-services/package.json(1 hunks)packages/core-typings/.eslintrc.json(1 hunks)packages/core-typings/package.json(1 hunks)packages/cron/.eslintrc.json(1 hunks)packages/cron/package.json(1 hunks)packages/ddp-client/package.json(1 hunks)packages/desktop-api/.eslintrc.json(1 hunks)packages/eslint-config/.eslintrc.json(1 hunks)packages/eslint-config/package.json(1 hunks)packages/favicon/.eslintrc.json(1 hunks)packages/favicon/package.json(1 hunks)packages/freeswitch/.eslintrc.json(1 hunks)packages/freeswitch/package.json(1 hunks)packages/fuselage-ui-kit/.eslintignore(0 hunks)packages/fuselage-ui-kit/.eslintrc.json(2 hunks)packages/fuselage-ui-kit/.prettierignore(0 hunks)packages/fuselage-ui-kit/package.json(1 hunks)packages/gazzodown/.eslintignore(0 hunks)packages/gazzodown/.eslintrc.json(1 hunks)packages/http-router/package.json(2 hunks)packages/i18n/.eslintrc.json(1 hunks)packages/i18n/package.json(1 hunks)packages/instance-status/.eslintrc.json(1 hunks)packages/instance-status/package.json(1 hunks)packages/jest-presets/package.json(1 hunks)packages/jwt/.eslintrc.json(1 hunks)packages/jwt/package.json(1 hunks)packages/livechat/.eslintignore(0 hunks)packages/livechat/.eslintrc.json(2 hunks)packages/livechat/package.json(1 hunks)packages/log-format/.eslintrc.json(1 hunks)packages/log-format/package.json(1 hunks)packages/logger/.eslintrc.json(1 hunks)packages/logger/package.json(1 hunks)packages/media-signaling/.eslintrc.json(1 hunks)packages/media-signaling/package.json(1 hunks)packages/message-parser/.eslintignore(0 hunks)packages/message-parser/.eslintrc.js(0 hunks)packages/message-parser/.eslintrc.json(1 hunks)packages/message-parser/package.json(1 hunks)packages/message-types/.eslintrc.json(1 hunks)packages/message-types/package.json(1 hunks)packages/mock-providers/.eslintrc.json(1 hunks)packages/mock-providers/package.json(1 hunks)packages/model-typings/.eslintrc.json(1 hunks)packages/model-typings/package.json(1 hunks)packages/models/.eslintrc.json(1 hunks)packages/models/package.json(2 hunks)packages/mongo-adapter/.eslintrc.json(1 hunks)packages/node-poplib/package.json(1 hunks)packages/omni-core/.eslintrc.json(1 hunks)
⛔ Files not processed due to max files limit (16)
- packages/omni-core/package.json
- packages/password-policies/.eslintrc.json
- packages/password-policies/package.json
- packages/peggy-loader/.eslintrc.json
- packages/random/.eslintrc.json
- packages/random/package.json
- packages/release-action/.eslintrc.json
- packages/release-action/package.json
- packages/release-changelog/.eslintrc.json
- packages/release-changelog/package.json
- packages/server-cloud-communication/.eslintrc.json
- packages/server-cloud-communication/package.json
- packages/sha256/.eslintrc.json
- packages/sha256/package.json
- packages/storybook-config/package.json
- packages/tsconfig/package.json
💤 Files with no reviewable changes (11)
- packages/gazzodown/.eslintignore
- packages/message-parser/.eslintignore
- apps/meteor/.eslintignore
- apps/uikit-playground/.eslintrc.cjs
- packages/fuselage-ui-kit/.prettierignore
- apps/uikit-playground/.eslintignore
- packages/livechat/.eslintignore
- ee/packages/pdf-worker/.eslintignore
- packages/apps-engine/.eslintignore
- packages/message-parser/.eslintrc.js
- packages/fuselage-ui-kit/.eslintignore
✅ Files skipped from review due to trivial changes (1)
- packages/message-parser/.eslintrc.json
🚧 Files skipped from review as they are similar to previous changes (60)
- packages/cron/package.json
- ee/apps/presence-service/.eslintrc.json
- packages/logger/.eslintrc.json
- packages/account-utils/.eslintrc.json
- packages/agenda/.eslintrc.json
- packages/freeswitch/package.json
- ee/packages/license/.eslintrc.json
- packages/cron/.eslintrc.json
- packages/message-parser/package.json
- packages/jwt/.eslintrc.json
- packages/i18n/package.json
- ee/apps/presence-service/package.json
- packages/jest-presets/package.json
- ee/packages/media-calls/.eslintrc.json
- packages/mongo-adapter/.eslintrc.json
- ee/packages/omnichannel-services/.eslintrc.json
- ee/packages/pdf-worker/.eslintrc.json
- packages/media-signaling/.eslintrc.json
- packages/favicon/.eslintrc.json
- packages/omni-core/.eslintrc.json
- packages/gazzodown/.eslintrc.json
- packages/desktop-api/.eslintrc.json
- packages/apps-engine/.eslintrc.json
- packages/node-poplib/package.json
- packages/base64/.eslintrc.json
- ee/packages/federation-matrix/.eslintrc.json
- packages/jwt/package.json
- packages/i18n/.eslintrc.json
- ee/packages/omni-core-ee/package.json
- ee/packages/network-broker/.eslintrc.json
- packages/eslint-config/package.json
- ee/packages/presence/package.json
- packages/favicon/package.json
- packages/cas-validate/package.json
- packages/http-router/package.json
- ee/packages/ui-theming/.eslintrc.json
- ee/apps/omnichannel-transcript/.eslintrc.json
- packages/message-types/.eslintrc.json
- apps/uikit-playground/.eslintrc.json
- packages/apps/.eslintrc.json
- ee/apps/queue-worker/.eslintrc.json
- apps/uikit-playground/package.json
- apps/meteor/packages/rocketchat-i18n/.eslintrc.json
- packages/log-format/package.json
- packages/models/.eslintrc.json
- packages/apps/package.json
- packages/media-signaling/package.json
- packages/eslint-config/.eslintrc.json
- packages/logger/package.json
- packages/fuselage-ui-kit/package.json
- packages/cas-validate/.eslintrc.json
- packages/api-client/.eslintrc.json
- packages/core-services/.eslintrc.json
- packages/freeswitch/.eslintrc.json
- packages/base64/package.json
- ee/apps/queue-worker/package.json
- ee/apps/stream-hub-service/.eslintrc.json
- ee/packages/media-calls/package.json
- ee/apps/account-service/.eslintrc.json
- packages/instance-status/package.json
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : All test files must be created in `apps/meteor/tests/e2e/` directory
Applied to files:
ee/packages/ui-theming/package.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
ee/packages/federation-matrix/package.jsonee/apps/omnichannel-transcript/package.jsonee/apps/stream-hub-service/package.jsonpackages/livechat/package.json
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-10T19:06:20.146Z
Learnt from: MartinSchoeler
Repo: RocketChat/Rocket.Chat PR: 37408
File: apps/meteor/client/views/admin/ABAC/useRoomAttributeOptions.tsx:53-69
Timestamp: 2025-11-10T19:06:20.146Z
Learning: In the Rocket.Chat repository, do not provide suggestions or recommendations about code sections marked with TODO comments. The maintainers have already identified these as future work and external reviewers lack the full context about implementation plans and timing.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-05T21:04:35.787Z
Learnt from: sampaiodiego
Repo: RocketChat/Rocket.Chat PR: 37357
File: ee/packages/federation-matrix/src/setup.ts:103-120
Timestamp: 2025-11-05T21:04:35.787Z
Learning: In Rocket.Chat's federation-matrix setup (ee/packages/federation-matrix/src/setup.ts and apps/meteor/ee/server/startup/federation.ts), configureFederationMatrixSettings does not need to be called before setupFederationMatrix. The SDK's init() establishes infrastructure (database, event handlers, APIs) first, and the configuration can be applied later via settings watchers before actual federation events are processed. The config only matters when events actually occur, at which point all infrastructure is already configured.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-06T20:32:23.658Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37152
File: packages/apps-engine/tests/test-data/utilities.ts:557-573
Timestamp: 2025-10-06T20:32:23.658Z
Learning: In packages/apps-engine/tests/test-data/utilities.ts, the field name `isSubscripbedViaBundle` in the `IMarketplaceSubscriptionInfo` type should not be flagged as a typo, as it may match the upstream API's field name.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.
Applied to files:
ee/packages/federation-matrix/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). (3)
- GitHub Check: 📦 Build Packages
- GitHub Check: CodeQL-Build
- GitHub Check: CodeQL-Build
🔇 Additional comments (53)
packages/account-utils/package.json (1)
10-19: Standard key ordering applied correctly.The reordering places
scriptsanddevDependenciesafter thefilesarray, following the sort-package-json convention. The contents remain unchanged, and the JSON structure is valid.packages/agenda/package.json (1)
5-15: Clean field reorganization per sort-package-json standard.The top-level fields (description, main, typings, files, scripts) have been moved to their canonical positions following the sort-package-json ordering convention. All values are preserved exactly, and the JSON structure remains valid. This is a purely cosmetic change with no functional or behavioral impact.
packages/mock-providers/.eslintrc.json (1)
3-3: Verify the ignorePatterns scope narrowing is intentional.The pattern has been narrowed from
**/dist(recursive, any depth) todist(non-recursive, root-only). Ensure this package has no nested dist directories that should be ignored by ESLint.packages/log-format/.eslintrc.json (1)
3-3: Pattern narrowing aligns with repo-wide ESLint ignore standardization.The change from
**/dist(recursive) todist(top-level only) narrows the ignore scope, which is intentional per the PR's repo-wide restructuring of ignore patterns. In a monorepo where each package has its own.eslintrc.json, the top-leveldistpattern is appropriate—nested packages manage their own ignores via their own config files.ee/packages/omnichannel-services/package.json (3)
5-9: Field ordering follows npm conventions.The package manifest correctly places
main,typings, andfilesfields early in the object, consistent with npm/sort-package-json ordering conventions. The field sequence aligns with standard package.json organization.
10-17: Scripts block is well-organized.The
scriptsblock includes standard build, lint, and test commands. Placement afterfilesand beforedependenciesfollows npm conventions.
43-51: DevDependencies ordering is appropriate.The
devDependenciesblock is correctly positioned afterdependencies. The included entries (eslint-config,jest-presets,tsconfigfrom workspace, and standard testing tooling) are appropriate for a package in this monorepo and use correct workspace protocols.packages/mock-providers/package.json (1)
5-15: Manifest consolidation looks solid.The metadata fields have been properly centralized at the top level following sort-package-json conventions: entry points (
main,typings) and build/publishing metadata (files) are positioned before scripts and dependencies. The build and tooling scripts are standard and appropriate for a TypeScript library package.ee/apps/ddp-streamer/package.json (1)
1-68: Manifest reformatting looks good.The changes properly normalize the package.json structure via sort-package-json conventions:
- Metadata fields (keywords, author, main, files) are now properly positioned after version and description
mainandfilesentries are correct for a compiled service package- New
lintscript provides consistent linting alignment across the monorepo- No syntax errors or conflicting entries
packages/livechat/.eslintrc.json (1)
1-102: Formatting restructuring looks good.The changes consistently reformat rule blocks, consolidate settings, and add the
ignorePatternsarray to standardize ESLint configuration structure across the monorepo. All rule semantics remain unchanged. The newignorePatterns: ["dist", "build", "!.storybook"]appropriately excludes build outputs while explicitly preserving.storybookfrom being ignored, aligning with the broader PR's ignore-pattern consolidation effort.ee/apps/omnichannel-transcript/package.json (1)
1-66: Formatting standardization looks good.The package.json reordering follows npm conventions and the added metadata fields (
keywords,author,main,files) are all standard npm package.json entries. Themainfield correctly points to the compiled TypeScript output, thefilesarray appropriately restricts published content to/dist(excluding source files), and thelintscript integrates consistently with the eslint dependency. This is a clean chore standardization with no runtime or behavioral impact.ee/packages/federation-matrix/package.json (1)
5-9: Public API surface and tooling exposure looks good.The reformatting appropriately surfaces the package's public interface and standardizes development tooling:
- Lines 5–9:
main,typings, andfilescorrectly expose the compiled output paths and npm-published artifacts.- Lines 11–12, 19:
build,dev, andtypecheckscripts add standard workflow support for a TypeScript package.- Lines 57–59:
voltaconfiguration ensures workspace consistency with the root package.json.All changes follow npm package.json conventions and align with the monorepo patterns.
Also applies to: 11-12, 19-19, 57-59
packages/model-typings/.eslintrc.json (1)
3-3: Verify the narrowed ESLint ignore scope is intentional.The ignorePatterns changed from
**/disttodist, narrowing the ignore scope to only the top-level dist directory. Ensure this doesn't inadvertently cause linting of dist folders in nested subdirectories that should remain ignored.ee/apps/account-service/package.json (2)
10-10: Verify themainfield path resolves correctly.The
mainfield includes the full monorepo-relative path (ee/apps/account-service/), which may cause incorrect resolution. Sincepackage.jsonis atee/apps/account-service/package.json, the path should typically be relative to that location (e.g.,./dist/src/service.js).Confirm whether the current path
./dist/ee/apps/account-service/src/service.jsis intentional (i.e., the build outputs to this nested structure) or if it should be shortened to exclude the intermediate directory.
6-13: Metadata fields look appropriate.The additions of
keywords,author,main, andfilesfields follow conventional package.json structure and align with the sort-package-json tool conventions. The values are sensible: keywords identifies the package, author credits the organization,filescorrectly specifies the dist folder for publishing, andlintscript is appropriately concise.packages/core-typings/.eslintrc.json (1)
11-11: No action required. The narrowed ignore pattern from["**/dist"]to["dist"]is safe for this package—no nested dist directories exist inpackages/core-typings, and the change aligns with the PR's standardization effort.packages/fuselage-ui-kit/.eslintrc.json (1)
46-46: Standardization change aligns with PR objectives.The ignorePatterns update reflects the monorepo-wide standardization described in ARCH-1901: moving from recursive
**/distglobs to top-leveldist, while explicitly including Storybook build artifacts and un-ignoring the.storybookconfiguration directory. The syntax is correct, and the pattern choices are sensible for a UI kit package.Please verify that the shift from recursive (
**/dist) to top-level (dist) glob matching does not unintentionally expose nesteddistdirectories in subdirectories that should remain linted-out in practice for this package.packages/models/package.json (1)
1-42: Clean manifest formatting and proper field ordering.The package.json follows sort-package-json conventions with correct field ordering (metadata → public exports → files → scripts → dependencies → devDependencies → volta). All entries are well-formed and appropriate for a TypeScript library package.
The changes include:
- Public exports properly positioned (
main,typings)- Output distribution declared in
files(only/dist)- 8 build/lint/test scripts with sensible defaults (build removes dist; lint includes all TS/JS extensions; type checking and testing via jest)
- DevDependencies correctly isolated with all necessary tooling (jest-presets, tsconfig, jest, typescript, eslint, type definitions)
- Volta configuration preserved
This is a clean, formatting-only change with no behavioral impact.
ee/packages/presence/.eslintrc.json (1)
11-11: No action needed. The narrowed ignore pattern is appropriate for this package structure.No nested
dist/directories exist in the presence package. The package contains only a top-levelsrc/,tests/, and configuration files. The change from**/disttodistis safe and correctly targets only the top-level build output directory.ee/packages/ui-theming/package.json (1)
5-6: LGTM on the field consolidation.Moving
main,typings, andscriptsto the top level improves consistency and readability across the monorepo's package manifests.Also applies to: 10-15
ee/packages/network-broker/package.json (1)
5-6: LGTM on the field consolidation.Centralizing
main,typings,scripts, anddependenciesat the top level improves package manifest consistency and readability across the monorepo.Also applies to: 10-23
packages/api-client/package.json (2)
4-5: Public surface consolidation looks good.The addition of
mainandtypingsfields at the top level aligns with standard package.json conventions and the broader PR objective to standardize manifest organization.
12-13: Lint scripts added appropriately.The new lint and lint:fix scripts are consistent with the repo's ESLint standards.
packages/core-typings/package.json (3)
5-10: Verify: Unusual combination ofprivate: truewith public exports.This package declares
"private": truebut also exposesmain,typings, andfilesfields. While this may be intentional (e.g., for monorepo tooling or documentation generation), it's semantically contradictory to npm semantics. Please confirm this is the intended pattern for this workspace package.
11-20: Scripts consolidation at top-level is well-structured.The build, dev, and lint scripts are appropriately placed and align with the PR's standardization objectives. The internal task scripts (
:build:prepare,:build:clean,:build:build) follow good conventions for composability.
21-26: Production dependencies declared at top-level appropriately.The dependencies block (distinct from devDependencies) is now properly positioned and includes expected workspace packages and external deps (icons, ui-kit, typia, message-parser). This aligns with npm best practices and the PR's manifest standardization.
packages/ddp-client/package.json (3)
4-8: Public surface at top-level is well-organized.The consolidation of
main,typings, andfilesfields at the root aligns with npm package.json standards and the PR's manifest standardization goals.
9-16: Scripts added appropriately.Build, dev, lint, and test scripts are correctly positioned and follow repo conventions. The inclusion of eslint commands aligns with the broader PR objectives around ESLint standardization.
17-22: Dependencies block consolidation is well-structured.Production dependencies (workspace and external) are now properly declared at the top-level. The use of workspace version specifiers (
workspace:^,workspace:~) is consistent with monorepo best practices.ee/packages/omni-core-ee/.eslintrc.json (1)
3-3: No action required. The ignorePatterns value["dist"]is appropriate for this package structure, which contains only a top-level dist directory for build output. This pattern is consistent with other similar packages in the monorepo and poses no risk of unintended linting of nested directories.ee/apps/ddp-streamer/.eslintrc.json (1)
11-11: Verify ESLint ignorePatterns narrowing doesn't cause linting failures.The change from
"**/dist"to"dist"narrows the ignore scope from recursive (all nesting levels) to only the top-level directory. This may cause ESLint to lint build artifacts in nested subdirectories if they exist.Please confirm this narrowing is intentional and verify that:
- The app's build output is only written to top-level
dist/, not to nested directories likepackages/*/dist/or similar.- No ESLint errors occur when running linting after this change (consider running
npm run lintlocally to verify).If nested build artifacts should be ignored, revert this back to
"**/dist".packages/instance-status/.eslintrc.json (1)
11-11: Verify ESLint ignorePatterns narrowing is intentional and safe.This package, along with several others in this PR, is narrowing ignorePatterns from
"**/dist"to"dist". While this appears to be a systematic change, please verify:
- No nested
dist/directories exist that should be ignored.- ESLint linting passes locally after this change.
- This narrowing aligns with the package's actual build output structure.
ee/apps/authorization-service/package.json (2)
10-10: Verify themainentry point path is correct.The
mainfield points to./dist/ee/apps/authorization-service/src/service.js, which includes the full app path within the dist directory. Typically, TypeScript monorepos flatten the source structure during compilation, resulting in simpler paths like./dist/service.jsor./dist/index.js.Please verify:
- The file at
./dist/ee/apps/authorization-service/src/service.jsactually exists after compilation.- This is the correct published entry point for the authorization service.
- The TypeScript build is configured to preserve this nested directory structure in dist.
16-16: Good addition of lint script.The
lintscript is a standard addition and aligns with the ESLint configuration changes in the same package.packages/livechat/package.json (4)
5-5: ✓ Metadata standardization looks good.The addition of
homepage,license, andfilesfields follows manifest best practices and supports proper package metadata when publishing.Also applies to: 11-11, 12-14
16-25: ✓ Script additions and modifications are appropriate.The expanded scripts (build-storybook, clean, start, stylelint) and the unified lint task enhance build tooling clarity and developer workflow.
31-54: ✓ Dependencies section is well-structured.Package versions follow appropriate semantic versioning patterns, and workspace references for internal Rocket.Chat packages are correctly configured.
27-30: ✓ Browserslist configuration is appropriate.The target of
last 2 versionsandFirefox ESRprovides good coverage for modern browsers while supporting enterprise deployments.packages/apps-engine/package.json (4)
37-44: ✅ Files array properly configured.The
filesarray correctly includes all compiled output directories (client/,definition/,deno-runtime/,lib/,scripts/,server/) that are published with the package. This is consistent with the TypeScript build configuration.
45-65: ✅ Scripts section well-organized.The scripts follow a clear naming convention (
.:prefix for internal build utilities, common names for public tasks likebuild,lint,test). Structure and task organization are appropriate for the package's build and testing workflow.
121-123: ✅ Correct public access configuration.The
publishConfigentry with"access": "public"is appropriate for this scoped package (@rocket.chat/apps-engine) to ensure it publishes publicly to npm.
1-127: The package is correctly configured without a root entry point. All imports use subpaths (e.g.,@rocket.chat/apps-engine/definition/AppStatus,@rocket.chat/apps-engine/server/AppManager), which aligns with the "files" array structure. The absence ofmain,typings, orexportsfields is intentional and correct for this design pattern. The sort-package-json reformatting does not affect package functionality or introduce any regressions.Likely an incorrect or invalid review comment.
packages/message-types/package.json (1)
29-32: ✓ Volta block relocation aligns with formatting standards.The volta block has been moved to the end of the manifest, which follows standard npm package.json key ordering conventions. The content and functionality remain unchanged.
ee/packages/license/package.json (2)
5-9: Entry point declarations are correctly configured.Lines 5-9 declare
main,typings, andfilespointing to./dist/. The build configuration is properly set up:tsconfig.jsonhasoutDir: "./dist"and atscbuild script exists. The source fileee/packages/license/src/index.tswill be compiled by TypeScript to generate both./dist/index.jsand./dist/index.d.tsautomatically. No issues identified.
35-37: Volta configuration path is correct.The relative path
../../../package.jsonin the volta extends field correctly resolves fromee/packages/license/package.jsonto the monorepo rootpackage.json. Path resolution verified and target file exists.packages/core-services/package.json (1)
5-28: All workspace dependency references verified and field structure is valid.All 8
workspace:dependencies in the monorepo are resolvable:@rocket.chat/core-typings,@rocket.chat/http-router,@rocket.chat/media-signaling,@rocket.chat/message-parser,@rocket.chat/models,@rocket.chat/rest-typings,@rocket.chat/tracing, and@rocket.chat/ui-kit. The 4 workspace devDependencies are also resolvable. External pinned versions (@rocket.chat/federation-sdk0.3.2 and@rocket.chat/icons~0.45.0) are correctly maintained separate from workspace references. The field reordering follows standard package.json conventions and does not impact build or publish workflows.apps/meteor/.eslintrc.json (1)
25-39: Verify ignorePatterns alignment with ESLint strategy and .eslintignore consolidation.The ignorePatterns migrates ignore rules into the ESLint config. The negation patterns (lines 31-36) explicitly allow linting of certain config and build directories, which is good for developer tooling visibility.
Confirm: (1) Does this replicate the patterns from the related .eslintignore update, and (2) Are there any conflicts with root-level ESLint ignore rules in the monorepo?
packages/model-typings/package.json (1)
10-23: LGTM: Clean structural reordering following package.json conventions.The scripts and devDependencies blocks have been repositioned to follow the files declaration, aligning with standard package.json field ordering. Content and semantics are unchanged.
apps/meteor/package.json (5)
5-24: LGTM: Standard package.json metadata fields added appropriately.The addition of bugs, repository, license, author, and type fields follows npm package.json conventions and provides better discoverability and metadata. All values are appropriate for the main Rocket.Chat meteor application.
63-66: LGTM: Browserslist configuration is reasonable.The browserslist targets modern browsers (last 2 versions) plus Firefox ESR for legacy support—appropriate for a web communication platform with broad browser compatibility requirements.
477-482: Meteor mainModule entry points verified and correctly configured.Both specified entry points exist in the codebase (client/main.ts and server/main.ts in apps/meteor directory), confirming the meteor configuration is properly set up with valid paths.
26-61: Environment variable syntax is properly formatted and intact.All
TS_NODE_COMPILER_OPTIONS,NODE_OPTIONS,TRANSPORTER, andTZassignments use correct escaping and show no signs of truncation or malformation. Commands remain complete and functional. However, verification of whether these scripts are newly added or previously defined cannot be confirmed due to repository history limitations.
312-469: Version specifiers in devDependencies are intact and properly formatted.The devDependencies shown maintain their version specifiers (tilde
~, caret^, andworkspace:prefixes). Verified packages include@babel/core ~7.28.5,@types/chai ~4.3.20,@types/jest ~30.0.0,@axe-core/playwright ^4.10.2,@types/express ^4.17.25,@rocket.chat/desktop-api workspace:~, and others. The sort-package-json processing preserved all version strings unchanged—no inadvertent version alterations detected.
0a295c0 to
d6fd5db
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (6)
packages/apps-engine/.eslintrc.json (1)
58-58: [Duplicate] Remove non-existent directory patterns from ignorePatterns.A previous review flagged that
"docs"and".deno"in the ignorePatterns array do not correspond to existing directories in this package. The actual source structure containssrc/client,src/definition,src/server,src/lib, anddeno-runtimeat the root.Since this PR reformats ESLint configurations, it's an opportunity to fix this issue by removing the non-existent patterns rather than carrying them forward.
Apply this diff to clean up the ignorePatterns array:
- "ignorePatterns": ["client", "definition", "docs", "server", "lib", "deno-runtime", ".deno"] + "ignorePatterns": ["src/client", "src/definition", "src/server", "src/lib", "deno-runtime"]Alternatively, if
"docs"and".deno"are expected to be generated directories, confirm they exist or add them to.gitignoreinstead.ee/packages/network-broker/package.json (1)
7-9: Remove the leading slash from thefilesarray entry.This issue was flagged in a previous review. The entry
"/dist"uses a leading slash, which is not standard per the npm package.json specification. Thefilesarray should contain relative paths without leading slashes.Apply this diff to correct the path:
"files": [ - "/dist" + "dist" ],packages/livechat/package.json (1)
12-14: Mismatch betweenfilesfield and build output directory (unresolved from past review).The
filesfield declares["/build"], but thecleanscript (line 18) targetsrimraf distand webpack is configured to output to./dist. This inconsistency will cause the published npm package to have missing or empty build artifacts.This issue was previously flagged in the past review. While this PR's scope is formatting/sorting keys, the underlying mismatch needs to be resolved separately:
"files": [ - "/build" + "/dist" ],packages/core-services/package.json (1)
7-9: Unresolved: Remove leading slash from files path (duplicate of prior review).A previous review flagged this same issue: the "files" array entry uses a leading slash (
"/dist") which is non-standard for npm package manifests. This should be"dist"(without the leading slash) to ensure correct publication behavior.Apply this diff:
"files": [ - "/dist" + "dist" ],ee/apps/stream-hub-service/package.json (2)
11-13: [DUPLICATE] Remove leading slash from "files" field.The
"files"field uses"/dist", but npm's pattern syntax uses.gitignore-style conventions relative to the package root—the leading slash is incorrect. Change to"dist"without the leading slash. This issue was flagged in a previous review but remains unfixed."files": [ - "/dist" + "dist" ],
10-10: [DUPLICATE] Verify the "main" entry point path matches TypeScript build output.The
"main"field points to"./dist/ee/apps/stream-hub-service/src/service.js". This was flagged in a previous review as potentially mismatched with the TypeScript build output directory. Confirm thattsconfig.jsoncompilessrc/service.tsto this exact path; if the actual build output differs, update"main"to match the actual location or adjust thetsconfig.jsonoutDir/rootDirconfiguration.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (107)
apps/meteor/.eslintignore(0 hunks)apps/meteor/.eslintrc.json(1 hunks)apps/meteor/package.json(2 hunks)apps/meteor/packages/rocketchat-i18n/.eslintrc.json(1 hunks)apps/uikit-playground/.eslintignore(0 hunks)apps/uikit-playground/.eslintrc.cjs(0 hunks)apps/uikit-playground/.eslintrc.json(1 hunks)apps/uikit-playground/package.json(1 hunks)ee/apps/account-service/.eslintrc.json(1 hunks)ee/apps/account-service/package.json(1 hunks)ee/apps/authorization-service/.eslintrc.json(1 hunks)ee/apps/authorization-service/package.json(1 hunks)ee/apps/ddp-streamer/.eslintrc.json(1 hunks)ee/apps/ddp-streamer/package.json(1 hunks)ee/apps/omnichannel-transcript/.eslintrc.json(1 hunks)ee/apps/omnichannel-transcript/package.json(1 hunks)ee/apps/presence-service/.eslintrc.json(1 hunks)ee/apps/presence-service/package.json(1 hunks)ee/apps/queue-worker/.eslintrc.json(1 hunks)ee/apps/queue-worker/package.json(1 hunks)ee/apps/stream-hub-service/.eslintrc.json(1 hunks)ee/apps/stream-hub-service/package.json(1 hunks)ee/packages/federation-matrix/.eslintrc.json(1 hunks)ee/packages/federation-matrix/package.json(2 hunks)ee/packages/license/.eslintrc.json(1 hunks)ee/packages/license/package.json(2 hunks)ee/packages/media-calls/.eslintrc.json(1 hunks)ee/packages/media-calls/package.json(1 hunks)ee/packages/network-broker/.eslintrc.json(1 hunks)ee/packages/network-broker/package.json(1 hunks)ee/packages/omni-core-ee/.eslintrc.json(1 hunks)ee/packages/omni-core-ee/package.json(2 hunks)ee/packages/omnichannel-services/.eslintrc.json(1 hunks)ee/packages/omnichannel-services/package.json(2 hunks)ee/packages/pdf-worker/.eslintignore(0 hunks)ee/packages/pdf-worker/.eslintrc.json(1 hunks)ee/packages/presence/.eslintrc.json(1 hunks)ee/packages/presence/package.json(1 hunks)ee/packages/ui-theming/.eslintrc.json(1 hunks)ee/packages/ui-theming/package.json(1 hunks)packages/account-utils/.eslintrc.json(1 hunks)packages/account-utils/package.json(1 hunks)packages/agenda/.eslintrc.json(1 hunks)packages/agenda/package.json(1 hunks)packages/api-client/.eslintrc.json(1 hunks)packages/api-client/package.json(2 hunks)packages/apps-engine/.eslintignore(0 hunks)packages/apps-engine/.eslintrc.json(1 hunks)packages/apps-engine/package.json(3 hunks)packages/apps/.eslintrc.json(1 hunks)packages/apps/package.json(1 hunks)packages/base64/.eslintrc.json(1 hunks)packages/base64/package.json(1 hunks)packages/cas-validate/.eslintrc.json(1 hunks)packages/cas-validate/package.json(1 hunks)packages/core-services/.eslintrc.json(1 hunks)packages/core-services/package.json(1 hunks)packages/core-typings/.eslintrc.json(1 hunks)packages/core-typings/package.json(1 hunks)packages/cron/.eslintrc.json(1 hunks)packages/cron/package.json(1 hunks)packages/ddp-client/package.json(1 hunks)packages/desktop-api/.eslintrc.json(1 hunks)packages/desktop-api/package.json(1 hunks)packages/eslint-config/.eslintrc.json(1 hunks)packages/eslint-config/package.json(1 hunks)packages/favicon/.eslintrc.json(1 hunks)packages/favicon/package.json(1 hunks)packages/freeswitch/.eslintrc.json(1 hunks)packages/freeswitch/package.json(1 hunks)packages/fuselage-ui-kit/.eslintignore(0 hunks)packages/fuselage-ui-kit/.eslintrc.json(2 hunks)packages/fuselage-ui-kit/.prettierignore(0 hunks)packages/fuselage-ui-kit/package.json(1 hunks)packages/gazzodown/.eslintignore(0 hunks)packages/gazzodown/.eslintrc.json(1 hunks)packages/http-router/package.json(2 hunks)packages/i18n/.eslintrc.json(1 hunks)packages/i18n/package.json(1 hunks)packages/instance-status/.eslintrc.json(1 hunks)packages/instance-status/package.json(1 hunks)packages/jest-presets/package.json(2 hunks)packages/jwt/.eslintrc.json(1 hunks)packages/jwt/package.json(1 hunks)packages/livechat/.eslintignore(0 hunks)packages/livechat/.eslintrc.json(2 hunks)packages/livechat/package.json(1 hunks)packages/log-format/.eslintrc.json(1 hunks)packages/log-format/package.json(1 hunks)packages/logger/.eslintrc.json(1 hunks)packages/logger/package.json(1 hunks)packages/media-signaling/.eslintrc.json(1 hunks)packages/media-signaling/package.json(1 hunks)packages/message-parser/.eslintignore(0 hunks)packages/message-parser/.eslintrc.js(0 hunks)packages/message-parser/.eslintrc.json(1 hunks)packages/message-parser/package.json(1 hunks)packages/message-types/.eslintrc.json(1 hunks)packages/message-types/package.json(1 hunks)packages/mock-providers/.eslintrc.json(1 hunks)packages/mock-providers/package.json(1 hunks)packages/model-typings/.eslintrc.json(1 hunks)packages/model-typings/package.json(1 hunks)packages/models/.eslintrc.json(1 hunks)packages/models/package.json(2 hunks)packages/mongo-adapter/.eslintrc.json(1 hunks)packages/node-poplib/package.json(1 hunks)
⛔ Files not processed due to max files limit (17)
- packages/omni-core/.eslintrc.json
- packages/omni-core/package.json
- packages/password-policies/.eslintrc.json
- packages/password-policies/package.json
- packages/peggy-loader/.eslintrc.json
- packages/random/.eslintrc.json
- packages/random/package.json
- packages/release-action/.eslintrc.json
- packages/release-action/package.json
- packages/release-changelog/.eslintrc.json
- packages/release-changelog/package.json
- packages/server-cloud-communication/.eslintrc.json
- packages/server-cloud-communication/package.json
- packages/sha256/.eslintrc.json
- packages/sha256/package.json
- packages/storybook-config/package.json
- packages/tsconfig/package.json
💤 Files with no reviewable changes (11)
- apps/meteor/.eslintignore
- packages/apps-engine/.eslintignore
- packages/message-parser/.eslintrc.js
- packages/message-parser/.eslintignore
- packages/fuselage-ui-kit/.eslintignore
- packages/gazzodown/.eslintignore
- apps/uikit-playground/.eslintignore
- packages/livechat/.eslintignore
- ee/packages/pdf-worker/.eslintignore
- packages/fuselage-ui-kit/.prettierignore
- apps/uikit-playground/.eslintrc.cjs
✅ Files skipped from review due to trivial changes (2)
- packages/desktop-api/package.json
- apps/uikit-playground/package.json
🚧 Files skipped from review as they are similar to previous changes (60)
- packages/jest-presets/package.json
- ee/packages/federation-matrix/.eslintrc.json
- ee/apps/ddp-streamer/.eslintrc.json
- packages/model-typings/.eslintrc.json
- packages/log-format/.eslintrc.json
- packages/desktop-api/.eslintrc.json
- packages/api-client/package.json
- ee/apps/stream-hub-service/.eslintrc.json
- packages/account-utils/package.json
- ee/apps/presence-service/.eslintrc.json
- ee/apps/authorization-service/.eslintrc.json
- packages/ddp-client/package.json
- packages/media-signaling/.eslintrc.json
- ee/packages/ui-theming/package.json
- packages/cron/package.json
- packages/agenda/.eslintrc.json
- packages/message-types/.eslintrc.json
- packages/api-client/.eslintrc.json
- ee/apps/authorization-service/package.json
- ee/apps/account-service/.eslintrc.json
- packages/instance-status/package.json
- packages/message-parser/package.json
- packages/fuselage-ui-kit/.eslintrc.json
- ee/apps/omnichannel-transcript/.eslintrc.json
- ee/packages/omnichannel-services/package.json
- packages/logger/.eslintrc.json
- packages/freeswitch/package.json
- apps/meteor/.eslintrc.json
- packages/cas-validate/package.json
- packages/eslint-config/package.json
- packages/core-services/.eslintrc.json
- packages/gazzodown/.eslintrc.json
- packages/eslint-config/.eslintrc.json
- packages/logger/package.json
- packages/agenda/package.json
- packages/http-router/package.json
- packages/instance-status/.eslintrc.json
- packages/model-typings/package.json
- ee/apps/omnichannel-transcript/package.json
- packages/message-parser/.eslintrc.json
- packages/fuselage-ui-kit/package.json
- packages/jwt/.eslintrc.json
- packages/core-typings/.eslintrc.json
- packages/livechat/.eslintrc.json
- packages/mock-providers/.eslintrc.json
- packages/i18n/package.json
- ee/packages/presence/.eslintrc.json
- packages/favicon/package.json
- ee/apps/queue-worker/package.json
- ee/apps/account-service/package.json
- apps/uikit-playground/.eslintrc.json
- packages/media-signaling/package.json
- packages/cas-validate/.eslintrc.json
- packages/freeswitch/.eslintrc.json
- packages/message-types/package.json
- packages/i18n/.eslintrc.json
- packages/base64/.eslintrc.json
- packages/log-format/package.json
- ee/packages/ui-theming/.eslintrc.json
- packages/core-typings/package.json
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
📚 Learning: 2025-11-19T12:32:29.696Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37547
File: packages/i18n/src/locales/en.i18n.json:634-634
Timestamp: 2025-11-19T12:32:29.696Z
Learning: Repo: RocketChat/Rocket.Chat
Context: i18n workflow
Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.
Applied to files:
ee/packages/pdf-worker/.eslintrc.jsonpackages/models/.eslintrc.jsonpackages/livechat/package.jsonapps/meteor/packages/rocketchat-i18n/.eslintrc.jsonee/apps/stream-hub-service/package.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to **/*.{ts,tsx,js} : Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Applied to files:
ee/packages/pdf-worker/.eslintrc.jsonpackages/favicon/.eslintrc.jsonpackages/apps-engine/.eslintrc.json
📚 Learning: 2025-10-06T20:32:23.658Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37152
File: packages/apps-engine/tests/test-data/utilities.ts:557-573
Timestamp: 2025-10-06T20:32:23.658Z
Learning: In packages/apps-engine/tests/test-data/utilities.ts, the field name `isSubscripbedViaBundle` in the `IMarketplaceSubscriptionInfo` type should not be flagged as a typo, as it may match the upstream API's field name.
Applied to files:
packages/node-poplib/package.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.
Applied to files:
apps/meteor/packages/rocketchat-i18n/.eslintrc.jsonee/packages/federation-matrix/package.json
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : All test files must be created in `apps/meteor/tests/e2e/` directory
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-10T19:06:20.146Z
Learnt from: MartinSchoeler
Repo: RocketChat/Rocket.Chat PR: 37408
File: apps/meteor/client/views/admin/ABAC/useRoomAttributeOptions.tsx:53-69
Timestamp: 2025-11-10T19:06:20.146Z
Learning: In the Rocket.Chat repository, do not provide suggestions or recommendations about code sections marked with TODO comments. The maintainers have already identified these as future work and external reviewers lack the full context about implementation plans and timing.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-11-05T21:04:35.787Z
Learnt from: sampaiodiego
Repo: RocketChat/Rocket.Chat PR: 37357
File: ee/packages/federation-matrix/src/setup.ts:103-120
Timestamp: 2025-11-05T21:04:35.787Z
Learning: In Rocket.Chat's federation-matrix setup (ee/packages/federation-matrix/src/setup.ts and apps/meteor/ee/server/startup/federation.ts), configureFederationMatrixSettings does not need to be called before setupFederationMatrix. The SDK's init() establishes infrastructure (database, event handlers, APIs) first, and the configuration can be applied later via settings watchers before actual federation events are processed. The config only matters when events actually occur, at which point all infrastructure is already configured.
Applied to files:
ee/packages/federation-matrix/package.json
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.
Applied to files:
ee/packages/federation-matrix/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). (3)
- GitHub Check: 📦 Build Packages
- GitHub Check: CodeQL-Build
- GitHub Check: CodeQL-Build
🔇 Additional comments (35)
ee/packages/license/.eslintrc.json (1)
3-3: Verify the intent of recursive pattern removal.The change from
"**/dist"to"dist"shifts from recursively ignoring alldistdirectories to ignoring only the top-leveldistfolder. This is a behavioral change for ESLint ignore patterns.Please confirm:
- This change is intentional and aligns with the package structure (i.e., no nested
distdirectories that require linting exclusion)- Any nested build artifacts are handled by other means (e.g., per-package ignore patterns or monorepo root config)
packages/node-poplib/package.json (1)
5-5: Resolves the previously flagged critical issue; field ordering is correct.This change properly removes the broken
"typings"field that was previously flagged as critical (pointing to a non-existent./dist/index.d.ts), and repositions the"main"field to the top level following standard package.json conventions. The public surface fields now correctly precede devDependencies and configuration fields.packages/apps/package.json (1)
10-25: Manifest field reordering conforms to sort-package-json conventions.The reorganization of the
scripts(lines 10–15) anddevDependencies(lines 21–25) blocks follows the expected output of the sort-package-json tool and maintains all original key-value pairs. No functional impact; this is a conformance-only change consistent with the PR's chore objective.packages/mock-providers/package.json (1)
5-15: Well-structured package manifest consolidation.The reorganization consolidates duplicate key declarations and follows standard key ordering conventions (metadata → exports → scripts → dependencies → peer/dev dependencies → tool config). The export fields (
main,typings,files) and scripts section are properly positioned.ee/packages/presence/package.json (1)
5-23: Package.json reorganization looks good.The reformatting correctly reorganizes the manifest with standard fields in a logical order:
main,typings,files,scripts, thendependencies. The changes are purely structural with no functional impact.One minor note: Line 22 pins
mongodbto6.16.0while internal dependencies use ranges (workspace:^). If this is intentional for stability, it's fine; otherwise, consider aligning the versioning strategy.ee/packages/omni-core-ee/package.json (1)
1-38: Formatting change looks good.The package.json has been properly reformatted using sort-package-json conventions. The key reorganization (scripts moved after
files, devDependencies relocated to near the bottom beforevolta) follows standard npm manifest ordering, and content is preserved—no dependencies, scripts, or configuration have been altered or removed.packages/account-utils/.eslintrc.json (1)
3-3: No nested dist directories detected—the narrowed ignore scope is safe.The package has a simple, flat structure (only
srcdirectory) with no nested subdirectories. The change from"**/dist"to"dist"safely narrows the ESLint ignore pattern without risk of inadvertently linting nested dist folders.ee/packages/media-calls/package.json (1)
10-17: Field reordering aligns with standard package.json conventions.The scripts and devDependencies blocks have been relocated to follow the sort-package-json field ordering convention (metadata → entry points → files → scripts → dependencies → devDependencies). All content is preserved, and the JSON structure is valid.
Also applies to: 26-33
packages/apps/.eslintrc.json (1)
3-3: ESLint ignore pattern narrowed from recursive to non-recursive scope.The change from
"**/dist"to"dist"intentionally narrows the ignore scope. This aligns with the PR objective to standardize ignore patterns across the monorepo, ensuring each package ignores only its own top-leveldistdirectory rather than anydistdirectory at any depth.This pattern is valid per ESLint documentation and the monorepo structure.
Verify that ESLint linting still passes across the affected packages and that no unintended
distdirectories are being checked.packages/models/.eslintrc.json (1)
3-3: ESLint ignore pattern change is valid and consistent.As discussed in the prior review, the pattern
"dist"is valid ESLint syntax and correctly targets only the top-leveldistdirectory relative to this config file. The change from"**/dist"(recursive) to"dist"(non-recursive) aligns with standardizing ignore patterns across the monorepo.Confirm that this pattern change, applied consistently across all affected packages, does not introduce unintended linting regressions or miss any
distdirectories that should be ignored.packages/cron/.eslintrc.json (1)
3-3: The narrowed ignore pattern is appropriate for this package's structure.
packages/cron/contains only a top-level directory and a singlesrc/subdirectory with no nesteddistfolders. The change from**/disttodistis safe and correctly targets the actual build output location.ee/packages/network-broker/.eslintrc.json (1)
3-3: No issues identified. The pattern change from"**/dist"to"dist"is safe for this package. The repository contains only a top-levelsrcdirectory with no nesteddistdirectories that would require recursive ignoring. The simplified pattern correctly matches the package's build output structure.ee/packages/omnichannel-services/.eslintrc.json (1)
3-3: Approved: ESLint ignore pattern standardization.This narrowing of
ignorePatternsfrom**/disttodistaligns with the systematic monorepo-wide ESLint configuration standardization effort documented in the PR objectives. The configuration remains correct for this package's structure.ee/packages/media-calls/.eslintrc.json (1)
3-3: Approved: Consistent ESLint ignore pattern update.This change mirrors the standardization applied across the monorepo and presents no issues for this package.
ee/packages/omni-core-ee/.eslintrc.json (1)
3-3: Approved: Consistent ESLint ignore pattern standardization.This change is consistent with the systematic updates applied across the monorepo and is appropriate for this package.
ee/packages/pdf-worker/.eslintrc.json (1)
4-4: Approved: ESLint pattern migration and standardization.Both changes are correct:
- The
distnarrowing aligns with the systematic monorepo standardization applied across packages.- The
!.storybooknegation pattern correctly preserves linting of the.storybookdirectory during the migration from.eslintignoreto inline.eslintrc.jsonconfiguration, as verified in prior review.packages/models/package.json (3)
5-9: ✓ Public surface fields correctly configured.The addition of
main,typings, andfilesfields is a solid improvement:
mainandtypingsenable proper entry point resolution for consumers.filesrestricts distribution to compiled outputs only, reducing package size and excluding unnecessary source/config files.This aligns with TypeScript package best practices.
10-19: ✓ Standard build and tooling scripts added.The
scriptssection includes all expected development and build commands (build, dev, lint, test, typecheck). The organization is clean and follows monorepo conventions.One minor note:
testunitandunit(lines 16, 18) both invokejestidentically. If this is intentional (e.g., for backwards compatibility or different documentation purposes), no action is needed.
30-38: ✓ DevDependencies properly sorted and organized.The devDependencies are well-organized with appropriate tooling:
- TypeScript, ESLint, and Jest with official presets and configs via
@rocket.chat/*workspace packages.- Type definitions (
@types/jest,@types/node-rsa) correctly included.- Version pinning is reasonable for a workspace package.
Field ordering (after main/typings/files/scripts) aligns with
sort-package-jsonconventions.ee/apps/queue-worker/.eslintrc.json (1)
3-3: The narrowed ignore pattern is appropriate for this package.The change from
"**/dist"to"dist"safely narrows the ignore scope for this package. No nesteddistdirectories exist underee/apps/queue-worker/, and the standard build output structure places artifacts at the package root level only.packages/base64/package.json (1)
3-3: Clean version field repositioning.The version is now correctly positioned at the top level with other metadata, following standard npm package.json conventions.
apps/meteor/package.json (3)
5-24: Metadata standardization looks good.The addition of top-level metadata fields (bugs, repository, license, author) follows npm package.json best practices and improves discoverability and documentation.
25-62: Script organization preserves functionality.The reorganized scripts section adds useful new entries for testing, debugging, and linting workflows (e.g.,
.testunit:*,coverage,docker:start,migration:add). The changes maintain existing script semantics while improving structure.
63-66: Browserslist configuration is reasonable.The target of "last 2 versions" and "Firefox ESR" aligns with standard browser support practices for web applications.
packages/mongo-adapter/.eslintrc.json (1)
3-3: The ignorePatterns change from**/disttodistis a behavioral modification, but safe for this package's structure.This narrows the ESLint ignore scope from any nested
distdirectories to only the top-level one. However, mongo-adapter has no nesteddistdirectories—only asrc/subdirectory—so this narrowing has no practical impact and is actually more appropriate for the package's simple structure. The change is justified and requires no remediation.ee/apps/presence-service/package.json (1)
10-10: Verify the "main" entry point path matches TypeScript build output.The
"main"field points to"./dist/ee/apps/presence-service/src/service.js", which differs from the structure used in other service packages (e.g.,@rocket.chat/ddp-streameruses"./dist/service.js"). Confirm that the TypeScript build configuration (tsconfig.json) outputs the compiled service.js to this exact location; otherwise, package consumers will fail to resolve the entry point at runtime.packages/favicon/.eslintrc.json (1)
3-3: Pattern change to"dist"aligns with monorepo standardization and is appropriate for this package.Verification confirms this change is consistent with the ongoing standardization across the monorepo. 40 of 51 packages in
packages/already use the narrower"dist"pattern, and no nested dist directories exist inpackages/faviconthat would require the broader**/distglob. The pattern is correct and requires no further adjustment.packages/apps-engine/package.json (3)
81-92: Approve dependency organization.Dependencies are now properly surfaced at the top-level manifest with pinned/compatible versions. The organization is consistent with the PR objectives for standardizing package manifest structure across the monorepo.
37-44: Verify thefilesarray includes all necessary distribution outputs.The
filesarray now includes"lib/**"alongsideclient/**,definition/**, andserver/**. Ensure that:
- The TypeScript build actually outputs files to
lib/(checktsconfig.jsoncompilation targets)- All compiled outputs from
src/are included in the published package- The inclusion of
scripts/anddeno-runtime/in the published package is intentional
37-44: Entry points configuration is broken — package cannot be published.The
main,typings, andtypesfields are allnull(unconfigured). There is nosrc/index.tssource file, no compiledindex.*files in the root, and thelib/directory referenced in thefilesarray is empty. The prior critical issue flagged in commit ccdcc85 is not present in the current git history, indicating the fix was either not applied or lost during the reformat. The package requires proper entry points configured before it can be published.⛔ Skipped due to learnings
Learnt from: d-gubert Repo: RocketChat/Rocket.Chat PR: 37547 File: packages/i18n/src/locales/en.i18n.json:634-634 Timestamp: 2025-11-19T12:32:29.696Z Learning: Repo: RocketChat/Rocket.Chat Context: i18n workflow Learning: In this repository, new translation keys should be added to packages/i18n/src/locales/en.i18n.json only; other locale files are populated via the external translation pipeline and/or fall back to English. Do not request adding the same key to all locale files in future reviews.Learnt from: d-gubert Repo: RocketChat/Rocket.Chat PR: 37152 File: packages/apps-engine/tests/test-data/utilities.ts:557-573 Timestamp: 2025-10-06T20:32:23.658Z Learning: In packages/apps-engine/tests/test-data/utilities.ts, the field name `isSubscripbedViaBundle` in the `IMarketplaceSubscriptionInfo` type should not be flagged as a typo, as it may match the upstream API's field name.Learnt from: MartinSchoeler Repo: RocketChat/Rocket.Chat PR: 37408 File: apps/meteor/client/views/admin/ABAC/useRoomAttributeOptions.tsx:53-69 Timestamp: 2025-11-10T19:06:20.146Z Learning: In the Rocket.Chat repository, do not provide suggestions or recommendations about code sections marked with TODO comments. The maintainers have already identified these as future work and external reviewers lack the full context about implementation plans and timing.packages/jwt/package.json (3)
15-17: Clarify intent of duplicatetestunitscript.The
testunitscript (line 16) appears to duplicate thetestscript (line 15)—both runjest. Confirm whether this is intentional (e.g., for backward compatibility) or an artifact of the reformatting. If unintended, remove one of them.
1-36: Overall structure looks good.The package.json reformatting aligns with workspace best practices: public entry points (
main,typings,files), devDependencies centralized, workspace protocol references, andinstallConfigfor pnpm hoisting. The structure is consistent with standardization across the monorepo.
22-29: Package versions are valid and current. Jest30.2.0and TypeScript5.9.3both exist on npm and are the latest available versions, confirming appropriate choices for the project.ee/packages/license/package.json (2)
4-9: No action needed—private packages in monorepos correctly include entry points.Private packages in npm monorepos should declare
main,typings, andfilesfor internal workspace resolution. This is standard practice per npm documentation and enables proper module resolution within the monorepo. The configuration is correct.Likely an incorrect or invalid review comment.
24-34: No action needed. The devDependencies versions are current and correct:
jest ~30.2.0and@types/jest ~30.0.0are the latest stable releases (as of December 2025)typescript ~5.9.3matches the root package.json and is the latest stable releaseSince this is a chore PR for reformatting via sort-package-json, these versions are appropriately preserved.
| { | ||
| "globals": { | ||
| "Npm" : false | ||
| "Npm" : false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check for the space-before-colon pattern in ESLint config files
echo "=== Searching for space-before-colon pattern in .eslintrc.json files ==="
find . -name ".eslintrc.json" -type f | head -20 | while read file; do
if grep -E '"\w+"\s+:' "$file" > /dev/null 2>&1; then
echo "File: $file"
cat "$file"
echo "---"
fi
done
echo ""
echo "=== Counting ESLint config files with space-before-colon pattern ==="
find . -name ".eslintrc.json" -type f | while read file; do
if grep -E '"\w+"\s+:' "$file" > /dev/null 2>&1; then
echo "$file"
fi
done | wc -l
echo ""
echo "=== List all .eslintrc.json files found ==="
find . -name ".eslintrc.json" -type fRepository: RocketChat/Rocket.Chat
Length of output: 3272
Revert formatting change to match codebase ESLint config standard.
The spacing pattern "Npm" : false is inconsistent with the rest of the codebase. Of 79 .eslintrc.json files in the repository, this is the only one using space-before-colon formatting. All other ESLint configs use standard JSON formatting without the space before the colon ("key": value). This change should be reverted to maintain consistency.
🤖 Prompt for AI Agents
In apps/meteor/packages/rocketchat-i18n/.eslintrc.json around line 3, the
key/value pair uses nonstandard spacing ("Npm" : false) that differs from the
repo's ESLint JSON style; revert the formatting to standard JSON by removing the
space before the colon so the entry reads "Npm": false to match other
.eslintrc.json files and maintain consistency.
| "files": [ | ||
| "/dist" | ||
| ], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove leading slash from "files" field.
The "files" field uses "/dist", but npm's pattern syntax uses .gitignore-style conventions relative to the package root—the leading slash is incorrect. Change to "dist" without the leading slash to match npm documentation.
"files": [
- "/dist"
+ "dist"
],📝 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.
| "files": [ | |
| "/dist" | |
| ], | |
| "files": [ | |
| "dist" | |
| ], |
🤖 Prompt for AI Agents
In ee/apps/ddp-streamer/package.json around lines 11 to 13, the "files" entry
incorrectly uses a leading slash "/dist"; remove the leading slash so the entry
is "dist" (relative path) to match npm's files pattern syntax and ensure the
dist folder is packaged correctly.
| "files": [ | ||
| "/dist" | ||
| ], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove leading slash from "files" field.
The "files" field uses "/dist", but npm's pattern syntax uses .gitignore-style conventions relative to the package root—the leading slash is incorrect. Change to "dist" without the leading slash to match npm documentation.
"files": [
- "/dist"
+ "dist"
],📝 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.
| "files": [ | |
| "/dist" | |
| ], | |
| "files": [ | |
| "dist" | |
| ], |
🤖 Prompt for AI Agents
In ee/apps/presence-service/package.json around lines 11 to 13, the "files"
array contains an entry "/dist" which incorrectly includes a leading slash;
update the entry to "dist" (remove the leading slash) so the pattern is relative
to the package root and matches npm's files/glob semantics.
| "files": [ | ||
| "/dist" | ||
| ], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove leading slash from files array.
The convention in npm packages is to omit the leading slash in the files array. This should be "dist" instead of "/dist".
"files": [
- "/dist"
+ "dist"
],🤖 Prompt for AI Agents
In packages/jwt/package.json around lines 7 to 9, the "files" array entry uses a
leading slash ("/dist") which is non-standard for npm; change the entry to
"dist" (remove the leading slash) so the package includes the dist folder
correctly when published.
Proposed changes (including videos or screenshots)
It sorts the keys of
package.jsonfiles in the monorepo viasort-package-json. Additionally, it reviews ignore patterns in ESLint configuration files.Issue(s)
ARCH-1901
Steps to test or reproduce
Further comments
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.