Skip to content

Conversation

@tassoevan
Copy link
Contributor

@tassoevan tassoevan commented Nov 28, 2025

Proposed changes (including videos or screenshots)

It sorts the keys of package.json files in the monorepo via sort-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

  • Chores
    • Consolidated and surfaced package metadata and entry points across many manifests; reordered and removed duplicate sections for cleaner package manifests.
  • Style
    • Standardized ESLint configurations and ignore patterns (narrowed recursive globs, removed many ignore entries, added targeted ignorePatterns) so linting scope is more consistent.
  • Tests
    • Added and unified lint/test/typecheck/build scripts across packages to harmonize developer workflows.

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

@tassoevan tassoevan added this to the 7.14.0 milestone Nov 28, 2025
@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Nov 28, 2025

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link

changeset-bot bot commented Nov 28, 2025

⚠️ No Changeset found

Latest commit: d6fd5db

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 28, 2025

Walkthrough

Standardizes 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

Cohort / File(s) Summary
apps/meteor core configuration
apps/meteor/.eslintignore, apps/meteor/.eslintrc.json, apps/meteor/package.json
Removed many .eslintignore exclusions, added ignorePatterns to .eslintrc.json, and expanded/reorganized package.json metadata and scripts.
uikit-playground ESLint + manifest
apps/uikit-playground/.eslintignore, apps/uikit-playground/.eslintrc.cjs, apps/uikit-playground/.eslintrc.json, apps/uikit-playground/package.json
Deleted CJS ESLint config, added JSON config with ignorePatterns, trimmed .eslintignore, and reordered package.json keys.
EE apps manifests
ee/apps/*/package.json (e.g., ee/apps/account-service, ee/apps/authorization-service, ee/apps/ddp-streamer, ee/apps/omnichannel-transcript, ee/apps/presence-service, ee/apps/queue-worker, ee/apps/stream-hub-service)
Moved/added top-level metadata (keywords, author, main, files), added lint scripts, removed duplicate blocks, and consolidated manifest layout.
EE packages & libs manifests
ee/packages/*/* (examples: ee/packages/federation-matrix, ee/packages/license, ee/packages/media-calls, ee/packages/network-broker, ee/packages/omni-core-ee, ee/packages/ui-theming)
Added/relocated main/typings/files, scripts (build/dev/lint/typecheck), adjusted devDependencies/volta and consolidated duplicated entries.
Project-wide ESLint ignore normalization
many .eslintrc.json & .eslintignore under ee/*, packages/*, apps/*
Replaced recursive **/dist with dist in numerous .eslintrc.json files, added/adjusted ignorePatterns, and removed or trimmed .eslintignore/.prettierignore entries and some !.storybook negations.
ESLint config format migrations
e.g. packages/message-parser/.eslintrc.jspackages/message-parser/.eslintrc.json, assorted others
Converted/removed legacy CommonJS ESLint configs and added JSON configs with ignorePatterns.
Package.json standardization & ordering
many packages/*/package.json, packages/apps/*/package.json, packages/*/*/package.json (examples: packages/core-services, packages/apps-engine, packages/models, packages/livechat, packages/fuselage-ui-kit, packages/api-client)
Reordered and standardized manifests: moved/added main/typings/files, consolidated scripts, relocated devDependencies, and surfaced metadata (homepage, bugs, license, browserslist, publishConfig, volta) where applicable.
Removed/changed ignore exceptions
several .eslintignore / .prettierignore (examples: packages/gazzodown, packages/pdf-worker, packages/fuselage-ui-kit, packages/message-parser)
Deleted or altered explicit negations (e.g., !.storybook, !/.storybook) and other ignore entries, affecting lint/format scope for storybook/dist/node_modules paths.
Minor formatting and whitespace edits
assorted .eslintrc.json and package.json files (examples: apps/meteor/packages/rocketchat-i18n/.eslintrc.json, packages/eslint-config/.eslintrc.json)
Whitespace and indentation-only edits with no semantic changes.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

  • Areas to pay extra attention:
    • ESLint ignore semantics across many packages (confirm intended **/distdist narrowing and removed/added !.storybook exceptions).
    • apps/meteor package.json — many new/modified scripts and metadata entries.
    • Ensure package.json reordering did not introduce duplicate keys or remove intended entries.

Possibly related PRs

Suggested labels

stat: ready to merge, stat: QA assured

Suggested reviewers

  • ggazzo
  • rodrigok
  • d-gubert

Poem

🐰 I hopped through JSON, crisp and bright,
Snipped old ignores and set each pattern right,
Linters wake where shadows used to be,
Scripts marched tidy — neat as carrot light,
A little hop for tidy CI! 🥕

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: Reformat package manifest files' clearly and concisely describes the main change: reformatting of package manifest files across the monorepo.
Linked Issues check ✅ Passed The linked issue ARCH-1901 references the same reformatting of package manifest files, and the PR changes align with this objective through key sorting and ESLint ignore pattern reviews.
Out of Scope Changes check ✅ Passed All changes are in-scope: ESLint configuration updates, package.json field reordering, and ignore pattern standardization directly support the manifest reformatting objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/manifest-formatting

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions
Copy link
Contributor

github-actions bot commented Nov 28, 2025

📦 Docker Image Size Report

📈 Changes

Service Current Baseline Change Percent
sum of all images 1.2GiB 1.2GiB +12MiB
rocketchat 359MiB 347MiB +12MiB
omnichannel-transcript-service 132MiB 132MiB +312B
queue-worker-service 132MiB 132MiB -60B
ddp-streamer-service 126MiB 126MiB -1.6KiB
account-service 113MiB 113MiB -796B
stream-hub-service 111MiB 111MiB +9B
authorization-service 111MiB 111MiB -597B
presence-service 111MiB 111MiB -1.6KiB

📊 Historical Trend

---
config:
  theme: "dark"
  xyChart:
    width: 900
    height: 400
---
xychart
  title "Image Size Evolution by Service (Last 30 Days + This PR)"
  x-axis ["11/15 22:28", "11/16 01:28", "11/17 23:50", "11/18 22:53", "11/19 23:02", "11/21 16:49", "11/24 17:34", "11/27 22:32", "11/28 19:05", "12/01 23:01", "12/02 21:57", "12/03 21:00", "12/04 18:17", "12/05 02:28", "12/05 04:18 (PR)"]
  y-axis "Size (GB)" 0 --> 0.5
  line "account-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "authorization-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "ddp-streamer-service" [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12]
  line "omnichannel-transcript-service" [0.14, 0.14, 0.14, 0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13]
  line "presence-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "queue-worker-service" [0.14, 0.14, 0.14, 0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13]
  line "rocketchat" [0.36, 0.36, 0.35, 0.35, 0.35, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.35]
  line "stream-hub-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
Loading

Statistics (last 14 days):

  • 📊 Average: 1.5GiB
  • ⬇️ Minimum: 1.2GiB
  • ⬆️ Maximum: 1.6GiB
  • 🎯 Current PR: 1.2GiB
ℹ️ About this report

This report compares Docker image sizes from this build against the develop baseline.

  • Tag: pr-37639
  • Baseline: develop
  • Timestamp: 2025-12-05 04:18:13 UTC
  • Historical data points: 14

Updated: Fri, 05 Dec 2025 04:18:14 GMT

@codecov
Copy link

codecov bot commented Nov 28, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.79%. Comparing base (355d26d) to head (0a295c0).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             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     
Flag Coverage Δ
e2e 57.25% <ø> (+<0.01%) ⬆️
e2e-api 42.20% <ø> (-0.05%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@tassoevan tassoevan marked this pull request as ready for review November 28, 2025 14:14
@tassoevan tassoevan requested review from a team as code owners November 28, 2025 14:14
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

♻️ 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 **/dist to dist. 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 **/dist to dist following 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 ignorePatterns from "**/dist" to "dist" narrows the ignore scope from recursive to non-recursive. Nested dist directories 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 ignorePatterns from "**/dist" to "dist" narrows ignore scope to top-level only. Please confirm nested dist directories 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 ignorePatterns from "**/dist" to "dist" narrows ignore scope. Confirm this is intentional and nested dist directories (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 ignorePatterns from "**/dist" to "dist" narrows ignore scope. Confirm this is intentional for all packages and that nested dist directories are handled appropriately.

packages/cron/.eslintrc.json (1)

3-3: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.

Changing ignorePatterns from "**/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 ignorePatterns from "**/dist" to "dist" narrows ignore scope. Confirm this is intentional and nested dist directories are handled appropriately.

ee/apps/account-service/.eslintrc.json (1)

11-11: Verify the glob pattern narrowing doesn't unintentionally lint generated artifacts.

Changing ignorePatterns from "**/dist" to "dist" narrows ignore scope systematically across the monorepo. Please confirm:

  1. This narrowing is intentional repo-wide
  2. Subdirectories that need dist-ignoring have their own configs
  3. 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 to rm -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 using rimraf (already likely available or easily added) or del-cli for cross-platform compatibility.

If other packages in the monorepo use rimraf or 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.json files.

packages/jwt/package.json (1)

15-17: Clarify the purpose of the duplicate testunit script.

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 testunit script 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 0064a4f and 968b787.

📒 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.json
  • packages/message-parser/.eslintrc.json
  • ee/apps/queue-worker/package.json
  • packages/livechat/package.json
  • ee/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.json
  • 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/.eslintrc.json
  • 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 **/*.{ts,tsx,js} : Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests

Applied to files:

  • packages/favicon/.eslintrc.json
  • apps/uikit-playground/.eslintrc.json
  • packages/i18n/package.json
  • packages/apps-engine/.eslintrc.json
  • packages/eslint-config/package.json
  • ee/packages/pdf-worker/.eslintrc.json
  • packages/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

@tassoevan tassoevan force-pushed the chore/manifest-formatting branch 2 times, most recently from f5c9c8b to 887a3d0 Compare December 1, 2025 13:40
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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 **/dist to dist is 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 from files array entry.

The files array 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 3adebbb and 887a3d0.

📒 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.json
  • ee/apps/presence-service/package.json
  • packages/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.json
  • packages/apps-engine/.eslintrc.json
  • packages/fuselage-ui-kit/package.json
  • packages/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) and scripts to 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 **/dist to dist appropriately 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 main and typings export metadata is appropriate for this TypeScript package and follows npm conventions. This properly exposes the compiled distribution entry points.


10-19: LGTM!

The scripts section 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 devDependencies block 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 the main field entry point is correct for this monorepo structure.

The main field points to ./dist/ee/apps/authorization-service/src/service.js, which suggests the build outputs to a shared monorepo-root dist/ 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 the files array does not inadvertently exclude necessary files.

The files array restricts published content to /dist only. 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 lint script 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, and files fields are properly ordered and point to the correct build artifacts. The files field 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 ignorePatterns array 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:

  1. If a .eslintignore file previously existed in this directory, it has been removed or is no longer needed.
  2. 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, and files fields 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 test and testunit (lines 15-16) are identical and both invoke jest. 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 **/dist to dist is safe for this package.

The directory structure contains only a top-level src folder with no nested dist directories. The change correctly targets the root-level dist output 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 tooling
  • files restriction to /dist ensures only compiled artifacts are packaged
  • Scripts follow the dot-prefixed internal task pattern common in monorepo setups (.:build:* orchestrated by public build task)
  • Dependencies and devDependencies are properly segregated and sorted
  • Workspace protocol (workspace:^, workspace:~) correctly used for internal Rocket.Chat dependencies

All declared tooling and build steps reference dependencies present in devDependencies, and the volta section 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-level dist directory (via tsc in 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 **/dist to dist is appropriate for this package. The build process compiles TypeScript to only a top-level dist directory, 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 **/dist to dist is appropriate for this package. No nested dist directories exist in packages/cas-validate (only root and src/ 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. If packages/omni-core contains 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-broker has no nested dist/ directories. The package structure is flat (only src/ subdirectory), and the build script uses tsc with a single root-level tsconfig.json, which outputs to a top-level dist/ 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 nested dist directories exist within packages/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": true but 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 devDependencies block 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 ignorePatterns from recursive **/dist to top-level dist, combined with the explicit !.storybook negation, properly preserves the original ignore behavior while migrating from .eslintignore to .eslintrc.json. The negation pattern ensures the .storybook directory 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: true for 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 references tsconfig.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.json and tsconfig.cjs.json exist 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 composite build orchestrator 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 ignorePatterns update is sound. ESLint 8.45.0 fully supports negation patterns (available since 6.3), and the actual directory structure confirms the patterns are appropriate: .storybook exists and correctly requires re-inclusion via !.storybook after the storybook-static ignore, while storybook-static and dist are legitimate build outputs to exclude preemptively. The pattern change from **/dist to dist is a reasonable normalization.

packages/apps-engine/package.json (3)

66-80: Clarify test coverage scope configuration.

The nyc configuration includes only src/*.ts and src/server/**/*.ts but excludes src/client/** and src/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 main and typings entry 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. The files array correctly includes all output directories (client/**, definition/**, lib/**, server/**, deno-runtime/**, and scripts/**), 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 files array 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 the prepack hook (which runs yarn 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.

@tassoevan tassoevan force-pushed the chore/manifest-formatting branch from 887a3d0 to f42fcc5 Compare December 2, 2025 15:27
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🧹 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 887a3d0 and f42fcc5.

📒 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.json
  • apps/uikit-playground/.eslintrc.json
  • ee/packages/pdf-worker/.eslintrc.json
  • packages/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.json
  • ee/packages/pdf-worker/.eslintrc.json
  • ee/packages/federation-matrix/package.json
  • packages/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) to dist (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 **/dist or 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 **/dist to top-level dist, which is intentional per the PR's standardization effort. Please confirm that packages/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 **/dist to the non-recursive pattern dist, which significantly reduces the scope of what ESLint will ignore. The new pattern will only match a dist/ directory at the top level of packages/cron/, whereas the old pattern would match dist/ 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 ignorePatterns from **/dist to dist, 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) to dist (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:

  1. Built output in packages/mock-providers/dist is still correctly ignored by ESLint
  2. If nested packages exist, their dist directories aren't unexpectedly linted
ee/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 ignore dist directories 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:

  1. This behavioral narrowing is intentional and aligns with the linting strategy.
  2. 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, and files fields 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.js and ./dist/index.d.ts as referenced in main and typings fields.

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 for packages/jwt. Directory inspection confirms the package contains only top-level __tests__ and src directories 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-json tool 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 dist directories (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 .eslintignore to .eslintrc.json appropriately scopes the ignore patterns for this package: ignoring only top-level dist while explicitly un-ignoring .storybook to 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 **/dist to dist is appropriate for this package. The mongo-adapter package has a simple flat structure (only root and src/ directory) with TypeScript building to a single root-level dist directory. 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 dist directories. The build outputs to a single top-level dist/, and ESLint only lints the src/ 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 .eslintignore into ignorePatterns. Per the PR summary, .eslintignore patterns 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 .eslintignore rules, and that the resulting lint scope is appropriate for this workspace.

packages/livechat/package.json (1)

12-14: Verify the clean script targets the correct build output directory.

The clean script (line 18) removes dist, but the files field (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 dist or build (or both)
  • The clean script should remove build instead of (or in addition to) dist
  • The files field accurately reflects what gets published

Also applies to: 18-18

packages/fuselage-ui-kit/.eslintrc.json (1)

46-46: Ignore patterns are correct and intentional.

The ignorePatterns update aligns with the package's ESLint configuration:

  1. Pattern dist vs. **/dist: Both are functionally equivalent in ESLint glob matching—each matches a dist directory at any nesting level. The simplification maintains the same behavior.

  2. !.storybook negation: This explicitly un-ignores .storybook because ESLint ignores dot-prefixed directories by default. Since the config extends plugin:storybook/recommended, the .storybook directory must be linted for the plugin rules to apply. The un-ignore is necessary and correct.

  3. storybook-static addition: Standard Storybook build output directory.

The .storybook directory 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.json review.

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.json review.

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.json review.

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.json review.

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.json review.

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.json review.

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.json review.

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 as src/dist or lib/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, and scripts to 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: The ignorePatterns narrowing is appropriate for this package structure.

Verification confirms the package has no nested subdirectories with dist folders. The package contains only a flat structure with src/ 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 main and typings fields 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 the files array (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-sprintf script 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 scripts and devDependencies blocks 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, and files entries exposing the dist artifacts. Lines 15–17 make the test and typecheck scripts 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 files field ("/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, and author fields 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. The mainModule configuration is in its correct, documented location within the meteor object. 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, and files fields 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 lint and lint:fix scripts 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.

@tassoevan tassoevan force-pushed the chore/manifest-formatting branch from f42fcc5 to 92731ff Compare December 3, 2025 14:55
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (7)
ee/packages/ui-theming/package.json (1)

7-9: Fix the files array entry format (duplicate of previous review).

The entry "/src" in the files array uses a leading slash, which violates the npm package.json specification. The files array 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 files array 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.

📥 Commits

Reviewing files that changed from the base of the PR and between f42fcc5 and 92731ff.

📒 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.json
  • 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/.eslintrc.json
  • ee/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.json
  • ee/packages/federation-matrix/package.json
  • packages/http-router/package.json
  • packages/livechat/package.json
  • ee/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.json
  • 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 (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-status build 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 main entry correctly points to the built service file.
  • The files array appropriately restricts the package to the dist directory.
  • The new lint script (line 16) is a helpful addition for local development.
  • The private flag (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 **/dist to dist (top-level only) and adds Storybook-related patterns (storybook-static and !.storybook), which is consistent with the PR objective to tighten ESLint ignore rules across the monorepo. The negation pattern !.storybook ensures the .storybook configuration 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": true but declares main, typings, and files fields. 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 nested dist directories (e.g., src/components/dist) would no longer be ignored by ESLint. Additionally, the negation pattern !.storybook is redundant—it does not affect the dist pattern and .storybook is not matched by it.

Confirm that:

  1. The narrowed pattern (non-recursive dist only) aligns with the actual directory structure and ESLint requirements for this package.
  2. The !.storybook negation is intentional or can be removed for clarity.

If the intent is to preserve non-recursive behavior while ensuring .storybook is 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 ignorePatterns has 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:

  1. No nested dist or other generated directories at depth > 1 exist in this package that should remain ignored.
  2. 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:

  1. The homepage value is generic to the organization, not package-specific. Confirm this is intentional for the livechat package.
  2. The files array includes /build, but the clean script (line 18) removes dist. This may indicate an inconsistency—clarify whether the build output should be in build/ or dist/.

Also applies to: 11-14


17-18: Verify new build scripts reference existing tooling.

The additions of build-storybook (line 17), clean (line 18), and stylelint (line 24) scripts appear functional, and the updated lint script 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 browserslist section follows npm conventions and aligns with the monorepo's standardization effort.


31-54: Verify dependencies were not previously specified elsewhere.

The explicit dependencies section 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, and files fields 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 .js and .d.ts files 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.json ensures 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, main points to the compiled service entry point, and the lint script provides ESLint integration.

Verification: Please confirm that the main field path (./dist/ee/apps/omnichannel-transcript/src/service.js) matches the actual compiled entry point after tsc builds 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 nested dist directories, so the narrowed ignore pattern from **/dist to dist has no negative impact. The pattern correctly ignores only the top-level dist directory, 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, and scripts to the top-level root after basic metadata—aligns with npm best practices and sort-package-json conventions. 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 nested dist directories, 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 nested dist directories, 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 that packages/desktop-api/ has no nested dist/ 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 ignorePatterns setting 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-level dist pattern 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/base64 contains only a top-level dist directory (created by the build script), with no nested dist directories 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 scripts and devDependencies blocks 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, and scripts fields represents a behavioral change to the package's public surface:

  • main and typings now explicitly define entry points for Node.js and TypeScript consumers (previously implicitly defaulted or undefined).
  • files now controls which files are included in the npm package distribution.

This contradicts the PR summary stating "No runtime or behavioral changes." Please confirm:

  1. Were these fields intentionally absent in the prior state?
  2. Does this change impact the npm package distribution or consumer behavior?
  3. 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-kit or @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, and files fields 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 typecheck script (line 17) is a useful addition, enabling type checking via tsc --noEmit separately from test execution. The test script 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. Nested dist directories 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, and files exports the package's public surface. Confirm:

  1. The build process actually produces dist/index.js and dist/index.d.ts
  2. The tsconfig.build.json is configured to emit both CommonJS and type definitions
  3. 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, and typecheck scripts 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 **/dist to dist is safe—packages/apps/ contains only a flat source structure (src/ with subdirectories like bridges/ and converters/) with no nested applications or packages. There are no nested dist directories 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 **/dist to dist is appropriate for this package. The codebase contains only a top-level src/ directory with no nested dist directories, so the more specific pattern correctly ignores only the generated build output at packages/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, and author are standard package.json fields that improve discoverability and project metadata. No concerns here.


63-66: browserslist field is reasonable.

The new browserslist configuration 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 .mocharc config files (.mocharc.js, .mocharc.api.js, .mocharc.definition.js, and .mocharc.base.json) exist in the project. The docker-compose tool 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. The ts-node dependency (^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 outDir in 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.js in package.json. The TypeScript compiler will compile ./src/service.ts to service.js in 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.json configuration file exists in ee/apps/queue-worker/, and the src directory 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 with outDir: "." and subpath imports is the intended architecture and is properly configured.

Likely an incorrect or invalid review comment.

@tassoevan tassoevan force-pushed the chore/manifest-formatting branch from 92731ff to 0a295c0 Compare December 3, 2025 16:23
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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 TypeScript tsconfig.json output. 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 to dist/.


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 the files array 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. The files array 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 from files field—previous review feedback not incorporated.

The files field still uses /dist with a leading slash. This was flagged in a previous review. Per npm specification, the files field 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 from files field—previous review feedback not incorporated.

The files field still uses /dist with a leading slash. This was flagged in a previous review. Per npm specification, the files field 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 from files field—previous review feedback not incorporated.

The files field still uses /dist with a leading slash. This was flagged in a previous review. Per npm specification, the files field 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 the ee/apps/ddp-streamer/.eslintrc.json file 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 92731ff and 0a295c0.

📒 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.json
  • ee/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.json
  • ee/apps/omnichannel-transcript/package.json
  • ee/apps/stream-hub-service/package.json
  • packages/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 scripts and devDependencies after the files array, 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) to dist (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) to dist (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-level dist pattern 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, and files fields 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 scripts block includes standard build, lint, and test commands. Placement after files and before dependencies follows npm conventions.


43-51: DevDependencies ordering is appropriate.

The devDependencies block is correctly positioned after dependencies. The included entries (eslint-config, jest-presets, tsconfig from 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
  • main and files entries are correct for a compiled service package
  • New lint script 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 ignorePatterns array to standardize ESLint configuration structure across the monorepo. All rule semantics remain unchanged. The new ignorePatterns: ["dist", "build", "!.storybook"] appropriately excludes build outputs while explicitly preserving .storybook from 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. The main field correctly points to the compiled TypeScript output, the files array appropriately restricts published content to /dist (excluding source files), and the lint script 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, and files correctly expose the compiled output paths and npm-published artifacts.
  • Lines 11–12, 19: build, dev, and typecheck scripts add standard workflow support for a TypeScript package.
  • Lines 57–59: volta configuration 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 **/dist to dist, 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 the main field path resolves correctly.

The main field includes the full monorepo-relative path (ee/apps/account-service/), which may cause incorrect resolution. Since package.json is at ee/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.js is 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, and files fields 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, files correctly specifies the dist folder for publishing, and lint script 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 in packages/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 **/dist globs to top-level dist, while explicitly including Storybook build artifacts and un-ignoring the .storybook configuration 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 nested dist directories 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-level src/, tests/, and configuration files. The change from **/dist to dist is 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, and scripts to 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, and dependencies at 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 main and typings fields 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 of private: true with public exports.

This package declares "private": true but also exposes main, typings, and files fields. 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, and files fields 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 like packages/*/dist/ or similar.
  • No ESLint errors occur when running linting after this change (consider running npm run lint locally 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 the main entry point path is correct.

The main field 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.js or ./dist/index.js.

Please verify:

  • The file at ./dist/ee/apps/authorization-service/src/service.js actually 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 lint script 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, and files fields 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 versions and Firefox ESR provides good coverage for modern browsers while supporting enterprise deployments.

packages/apps-engine/package.json (4)

37-44: ✅ Files array properly configured.

The files array 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 like build, lint, test). Structure and task organization are appropriate for the package's build and testing workflow.


121-123: ✅ Correct public access configuration.

The publishConfig entry 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 of main, typings, or exports fields 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, and files pointing to ./dist/. The build configuration is properly set up: tsconfig.json has outDir: "./dist" and a tsc build script exists. The source file ee/packages/license/src/index.ts will be compiled by TypeScript to generate both ./dist/index.js and ./dist/index.d.ts automatically. No issues identified.


35-37: Volta configuration path is correct.

The relative path ../../../package.json in the volta extends field correctly resolves from ee/packages/license/package.json to the monorepo root package.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-sdk 0.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, and TZ assignments 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 ^, and workspace: 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.

@tassoevan tassoevan force-pushed the chore/manifest-formatting branch from 0a295c0 to d6fd5db Compare December 5, 2025 03:58
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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 contains src/client, src/definition, src/server, src/lib, and deno-runtime at 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 .gitignore instead.

ee/packages/network-broker/package.json (1)

7-9: Remove the leading slash from the files array 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. The files array 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 between files field and build output directory (unresolved from past review).

The files field declares ["/build"], but the clean script (line 18) targets rimraf dist and 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 that tsconfig.json compiles src/service.ts to this exact path; if the actual build output differs, update "main" to match the actual location or adjust the tsconfig.json outDir/rootDir configuration.

📜 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 0a295c0 and d6fd5db.

⛔ Files ignored due to path filters (1)
  • yarn.lock is 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.json
  • packages/models/.eslintrc.json
  • packages/livechat/package.json
  • apps/meteor/packages/rocketchat-i18n/.eslintrc.json
  • ee/apps/stream-hub-service/package.json
  • 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 **/*.{ts,tsx,js} : Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests

Applied to files:

  • ee/packages/pdf-worker/.eslintrc.json
  • packages/favicon/.eslintrc.json
  • packages/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.json
  • 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:

  • apps/meteor/packages/rocketchat-i18n/.eslintrc.json
  • 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-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 all dist directories to ignoring only the top-level dist folder. This is a behavioral change for ESLint ignore patterns.

Please confirm:

  1. This change is intentional and aligns with the package structure (i.e., no nested dist directories that require linting exclusion)
  2. 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) and devDependencies (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, then dependencies. The changes are purely structural with no functional impact.

One minor note: Line 22 pins mongodb to 6.16.0 while 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 before volta) 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 src directory) 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-level dist directory rather than any dist directory 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 dist directories 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-level dist directory 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 dist directories 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 single src/ subdirectory with no nested dist folders. The change from **/dist to dist is 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-level src directory with no nested dist directories 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 ignorePatterns from **/dist to dist aligns 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 dist narrowing aligns with the systematic monorepo standardization applied across packages.
  • The !.storybook negation pattern correctly preserves linting of the .storybook directory during the migration from .eslintignore to inline .eslintrc.json configuration, as verified in prior review.
packages/models/package.json (3)

5-9: ✓ Public surface fields correctly configured.

The addition of main, typings, and files fields is a solid improvement:

  • main and typings enable proper entry point resolution for consumers.
  • files restricts 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 scripts section includes all expected development and build commands (build, dev, lint, test, typecheck). The organization is clean and follows monorepo conventions.

One minor note: testunit and unit (lines 16, 18) both invoke jest identically. 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-json conventions.

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 nested dist directories exist under ee/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 **/dist to dist is a behavioral modification, but safe for this package's structure.

This narrows the ESLint ignore scope from any nested dist directories to only the top-level one. However, mongo-adapter has no nested dist directories—only a src/ 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-streamer uses "./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 in packages/favicon that would require the broader **/dist glob. 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 the files array includes all necessary distribution outputs.

The files array now includes "lib/**" alongside client/**, definition/**, and server/**. Ensure that:

  1. The TypeScript build actually outputs files to lib/ (check tsconfig.json compilation targets)
  2. All compiled outputs from src/ are included in the published package
  3. The inclusion of scripts/ and deno-runtime/ in the published package is intentional

37-44: Entry points configuration is broken — package cannot be published.

The main, typings, and types fields are all null (unconfigured). There is no src/index.ts source file, no compiled index.* files in the root, and the lib/ directory referenced in the files array 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 duplicate testunit script.

The testunit script (line 16) appears to duplicate the test script (line 15)—both run jest. 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, and installConfig for pnpm hoisting. The structure is consistent with standardization across the monorepo.


22-29: Package versions are valid and current. Jest 30.2.0 and TypeScript 5.9.3 both 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, and files for 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.0 and @types/jest ~30.0.0 are the latest stable releases (as of December 2025)
  • typescript ~5.9.3 matches the root package.json and is the latest stable release

Since this is a chore PR for reformatting via sort-package-json, these versions are appropriately preserved.

{
"globals": {
"Npm" : false
"Npm" : false
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 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 f

Repository: 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.

Comment on lines +11 to +13
"files": [
"/dist"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

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.

Suggested change
"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.

Comment on lines +11 to +13
"files": [
"/dist"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

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.

Suggested change
"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.

Comment on lines +7 to +9
"files": [
"/dist"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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.

@ggazzo ggazzo added the stat: QA assured Means it has been tested and approved by a company insider label Dec 5, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Dec 5, 2025
@ggazzo ggazzo merged commit 75bd3e4 into develop Dec 5, 2025
47 of 50 checks passed
@ggazzo ggazzo deleted the chore/manifest-formatting branch December 5, 2025 12:18
@dougfabris dougfabris modified the milestones: 7.14.0, 8.0.0 Jan 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants