Skip to content

fix: engagement dashboard fill#41207

Merged
ggazzo merged 5 commits into
developfrom
fix-engagement-dashboard-fill
Jul 13, 2026
Merged

fix: engagement dashboard fill#41207
ggazzo merged 5 commits into
developfrom
fix-engagement-dashboard-fill

Conversation

@sampaiodiego

@sampaiodiego sampaiodiego commented Jul 7, 2026

Copy link
Copy Markdown
Member

Proposed changes (including videos or screenshots)

Issue(s)

SUP-1074

Steps to test or reproduce

Further comments

Review in cubic

Summary by CodeRabbit

  • Bug Fixes
    • Improved engagement dashboard startup by avoiding unnecessary analytics data loading during initial backfill checks.
    • Made backfill detection more efficient by using single-record lookups for both message and user analytics.
  • Release
    • Published a patch release including engagement dashboard loading and backfill behavior improvements.

@dionisio-bot

dionisio-bot Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

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

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d2b2ffdd-c40e-445f-8c3d-75b3bc0aa6bf

📥 Commits

Reviewing files that changed from the base of the PR and between 99263f0 and b2af1ad.

📒 Files selected for processing (5)
  • .changeset/empty-boxes-cross.md
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • apps/meteor/ee/server/lib/engagementDashboard/users.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • packages/models/src/models/Analytics.ts
🚧 Files skipped from review as they are similar to previous changes (5)
  • .changeset/empty-boxes-cross.md
  • apps/meteor/ee/server/lib/engagementDashboard/users.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • packages/models/src/models/Analytics.ts
📜 Recent review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: CodeQL-Build
  • GitHub Check: Hacktron Security Check
  • GitHub Check: CodeQL-Build
⚠️ CI failures not shown inline (3)

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**

Walkthrough

The analytics model replaces cursor-based existence checks with single-record lookups. Engagement dashboard message and user backfill paths use these lookups, and a patch Changesets entry documents the startup memory fix.

Changes

Engagement dashboard analytics

Layer / File(s) Summary
Analytics lookup contract and implementation
packages/model-typings/src/models/IAnalyticsModel.ts, packages/models/src/models/Analytics.ts
Replaces the cursor-based analytics lookup with findOneByTypeBeforeDate, returning a nullable matching record.
Dashboard lookup integration and release metadata
apps/meteor/ee/server/lib/engagementDashboard/messages.ts, apps/meteor/ee/server/lib/engagementDashboard/users.ts, .changeset/empty-boxes-cross.md
Uses single-record existence checks when deciding whether to backfill message and user analytics, and records a patch release.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: type: bug

🚥 Pre-merge checks | ✅ 5
✅ 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 clearly matches the main change: fixing the engagement dashboard fill behavior.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Warning

Review ran into problems

🔥 Problems

Errors were encountered while retrieving linked issues.

Errors (1)
  • SUP-1074: Request failed with status code 401

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.

debdutdeb
debdutdeb previously approved these changes Jul 7, 2026
@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.99%. Comparing base (d9fca72) to head (b2af1ad).
⚠️ Report is 7 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #41207      +/-   ##
===========================================
+ Coverage    68.98%   68.99%   +0.01%     
===========================================
  Files         3757     3757              
  Lines       147735   147735              
  Branches     26381    26361      -20     
===========================================
+ Hits        101919   101937      +18     
+ Misses       41317    41298      -19     
- Partials      4499     4500       +1     
Flag Coverage Δ
unit 70.43% <ø> (+<0.01%) ⬆️

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.

@sampaiodiego sampaiodiego force-pushed the fix-engagement-dashboard-fill branch from 69f3ae7 to d3d4611 Compare July 10, 2026 18:50
@changeset-bot

changeset-bot Bot commented Jul 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b2af1ad

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@rocket.chat/meteor Patch
@rocket.chat/core-typings Patch
@rocket.chat/rest-typings Patch

Not sure what this means? Click here to learn what changesets are.

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

@sampaiodiego sampaiodiego marked this pull request as ready for review July 10, 2026 18:50
@sampaiodiego sampaiodiego requested a review from a team as a code owner July 10, 2026 18:50

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
packages/models/src/models/Analytics.ts (1)

219-221: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Consider adding limit: 1 since the sole consumer uses this as an existence check.

The only caller (fillFirstDaysOfMessagesIfNeeded) treats the result as a boolean (!messagesFromAnalytics), so MongoDB can short-circuit after finding one document. Since countByTypeBeforeDate doesn't accept options, you could either add an optional limit parameter or create a dedicated existsByTypeBeforeDate method returning Promise<boolean> using findOne with { limit: 1 }.

♻️ Option: add optional limit to the interface and implementation
 // IAnalyticsModel.ts
-countByTypeBeforeDate({ type, date }: { type: IAnalytics['type']; date: IAnalytics['date'] }): Promise<number>;
+countByTypeBeforeDate({ type, date, limit }: { type: IAnalytics['type']; date: IAnalytics['date']; limit?: number }): Promise<number>;
 // Analytics.ts
-countByTypeBeforeDate({ type, date }: { type: IAnalytics['type']; date: IAnalytics['date'] }): Promise<number> {
-	return this.countDocuments({ type, date: { $lte: date } });
+countByTypeBeforeDate({ type, date, limit }: { type: IAnalytics['type']; date: IAnalytics['date']; limit?: number }): Promise<number> {
+	return this.countDocuments({ type, date: { $lte: date } }, { limit });
 }
 // messages.ts consumer
 const messagesFromAnalytics = await Analytics.countByTypeBeforeDate({
 	type: 'messages',
 	date: convertDateToInt(date),
+	limit: 1,
 });
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/models/src/models/Analytics.ts` around lines 219 - 221, Optimize the
existence check used by fillFirstDaysOfMessagesIfNeeded: update
countByTypeBeforeDate (and its interface) to support an optional limit, then
pass limit: 1 from the caller, or add an existsByTypeBeforeDate method using
findOne with limit: 1 and update the caller to use it.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/models/src/models/Analytics.ts`:
- Around line 219-221: Optimize the existence check used by
fillFirstDaysOfMessagesIfNeeded: update countByTypeBeforeDate (and its
interface) to support an optional limit, then pass limit: 1 from the caller, or
add an existsByTypeBeforeDate method using findOne with limit: 1 and update the
caller to use it.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c358d3b0-073e-4dda-afc1-ce902a961857

📥 Commits

Reviewing files that changed from the base of the PR and between ee8e048 and d3d4611.

📒 Files selected for processing (4)
  • .changeset/empty-boxes-cross.md
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • packages/models/src/models/Analytics.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (6)
  • GitHub Check: CodeRabbit / Review
  • GitHub Check: cubic · AI code reviewer
  • GitHub Check: Hacktron Security Check
  • GitHub Check: ⚙️ Variables Setup
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
⚠️ CI failures not shown inline (1)

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ❌ **Has milestone or project** — This PR is missing the required milestone or project
- ✅ **Valid PR title**
- ✅ **Correct target version**
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation

Files:

  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
🧠 Learnings (4)
📚 Learning: 2026-03-16T21:50:37.589Z
Learnt from: amitb0ra
Repo: RocketChat/Rocket.Chat PR: 39676
File: .changeset/migrate-users-register-openapi.md:3-3
Timestamp: 2026-03-16T21:50:37.589Z
Learning: For changes related to OpenAPI migrations in Rocket.Chat/OpenAPI, when removing endpoint types and validators from rocket.chat/rest-typings (e.g., UserRegisterParamsPOST, /v1/users.register) document this as a minor changeset (not breaking) per RocketChat/Rocket.Chat-Open-API#150 Rule 7. Note that the endpoint type is re-exposed via a module augmentation .d.ts in the consuming package (e.g., packages/web-ui-registration/src/users-register.d.ts). In reviews, ensure the changeset clearly states: this is a non-breaking change, the major version should not be bumped, and the changeset reflects a minor version bump. Do not treat this as a breaking change during OpenAPI migrations.

Applied to files:

  • .changeset/empty-boxes-cross.md
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In the Rocket.Chat repository, do not reference Biome lint rules in code review feedback. Biome is not used even if biome.json exists; only reference Biome rules if there is explicit, project-wide usage documented. For TypeScript files, review lint implications without Biome guidance unless the project enables Biome rules.

Applied to files:

  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In this repository (RocketChat/Rocket.Chat), Biome lint rules are not used even if a biome.json exists. When reviewing TypeScript files (e.g., packages/ui-voip/src/providers/useMediaSession.ts), ensure lint suggestions do not reference Biome-specific rules. Rely on general ESLint/TypeScript lint rules and project conventions instead.

Applied to files:

  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
📚 Learning: 2026-05-06T12:21:44.083Z
Learnt from: juliajforesti
Repo: RocketChat/Rocket.Chat PR: 40256
File: apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx:121-149
Timestamp: 2026-05-06T12:21:44.083Z
Learning: Field wrappers in rocket.chat/fuselage-forms (Field, FieldLabel, FieldRow, FieldError, FieldHint) auto-create htmlFor/id associations, aria-describedby, and role="alert" for errors. Do not manually set htmlFor, id, aria-describedby, or role attributes when using these wrappers. This automatic wiring does not apply to plain rocket.chat/fuselage components, which require explicit ID wiring per the accessibility docs. In code reviews, prefer using fuselage-forms wrappers for form fields and verify there is no unnecessary manual ID/aria wiring in files that use these wrappers. If a component uses plain fuselage components, ensure proper id wiring as per docs.

Applied to files:

  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
🔇 Additional comments (4)
packages/model-typings/src/models/IAnalyticsModel.ts (1)

42-42: LGTM!

packages/models/src/models/Analytics.ts (1)

219-221: LGTM!

apps/meteor/ee/server/lib/engagementDashboard/messages.ts (1)

37-41: LGTM!

.changeset/empty-boxes-cross.md (1)

1-5: LGTM!

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 4 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".changeset/empty-boxes-cross.md">

<violation number="1" location=".changeset/empty-boxes-cross.md:5">
P1: The changeset describes a fix and requests a patch version bump, but no code changes implementing the fix are included. Merging this would generate a changelog entry and trigger a release with no actual changes, misleading consumers. Either revert the changeset or include the corresponding code changes.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .changeset/empty-boxes-cross.md
Comment thread apps/meteor/ee/server/lib/engagementDashboard/messages.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
packages/models/src/models/Analytics.ts (1)

215-216: 🚀 Performance & Scalability | 🔵 Trivial

Consider adding a compound index { type: 1, date: 1 } for this query.

The findOne query { type, date: { $lte: date } } can only use the existing { date: 1 } index for the range scan, then filters by type in memory. A compound index on { type: 1, date: 1 } would let MongoDB seek directly to the right type prefix and scan dates, making this existence check even faster — especially relevant since this runs during dashboard startup via prepareAnalytics.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/models/src/models/Analytics.ts` around lines 215 - 216, Add a
compound MongoDB index on { type: 1, date: 1 } in the Analytics model/schema
used by findOneByTypeBeforeDate, while preserving existing indexes unless they
are redundant. Verify the index is registered during model initialization so
prepareAnalytics queries can use it.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/models/src/models/Analytics.ts`:
- Around line 215-216: Add a compound MongoDB index on { type: 1, date: 1 } in
the Analytics model/schema used by findOneByTypeBeforeDate, while preserving
existing indexes unless they are redundant. Verify the index is registered
during model initialization so prepareAnalytics queries can use it.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a995cff5-0abf-47c2-94db-110d79edb381

📥 Commits

Reviewing files that changed from the base of the PR and between 72addd0 and 99263f0.

📒 Files selected for processing (4)
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • apps/meteor/ee/server/lib/engagementDashboard/users.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
  • packages/models/src/models/Analytics.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: CodeRabbit / Review
  • GitHub Check: cubic · AI code reviewer
  • GitHub Check: CodeQL-Build
⚠️ CI failures not shown inline (4)

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ❌ **Has milestone or project** — This PR is missing the required milestone or project
- ✅ **Valid PR title**
- ✅ **Correct target version**

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ❌ **Has milestone or project** — This PR is missing the required milestone or project
- ✅ **Valid PR title**
- ✅ **Correct target version**

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ❌ **Has milestone or project** — This PR is missing the required milestone or project
- ✅ **Valid PR title**
- ✅ **Correct target version**

GitHub Check: Dionisio QA: Some checks did not pass

Conclusion: failure

View job details

**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ❌ **Has milestone or project** — This PR is missing the required milestone or project
- ✅ **Valid PR title**
- ✅ **Correct target version**
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation

Files:

  • apps/meteor/ee/server/lib/engagementDashboard/users.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
🧠 Learnings (3)
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In the Rocket.Chat repository, do not reference Biome lint rules in code review feedback. Biome is not used even if biome.json exists; only reference Biome rules if there is explicit, project-wide usage documented. For TypeScript files, review lint implications without Biome guidance unless the project enables Biome rules.

Applied to files:

  • apps/meteor/ee/server/lib/engagementDashboard/users.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In this repository (RocketChat/Rocket.Chat), Biome lint rules are not used even if a biome.json exists. When reviewing TypeScript files (e.g., packages/ui-voip/src/providers/useMediaSession.ts), ensure lint suggestions do not reference Biome-specific rules. Rely on general ESLint/TypeScript lint rules and project conventions instead.

Applied to files:

  • apps/meteor/ee/server/lib/engagementDashboard/users.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
📚 Learning: 2026-05-06T12:21:44.083Z
Learnt from: juliajforesti
Repo: RocketChat/Rocket.Chat PR: 40256
File: apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx:121-149
Timestamp: 2026-05-06T12:21:44.083Z
Learning: Field wrappers in rocket.chat/fuselage-forms (Field, FieldLabel, FieldRow, FieldError, FieldHint) auto-create htmlFor/id associations, aria-describedby, and role="alert" for errors. Do not manually set htmlFor, id, aria-describedby, or role attributes when using these wrappers. This automatic wiring does not apply to plain rocket.chat/fuselage components, which require explicit ID wiring per the accessibility docs. In code reviews, prefer using fuselage-forms wrappers for form fields and verify there is no unnecessary manual ID/aria wiring in files that use these wrappers. If a component uses plain fuselage components, ensure proper id wiring as per docs.

Applied to files:

  • apps/meteor/ee/server/lib/engagementDashboard/users.ts
  • apps/meteor/ee/server/lib/engagementDashboard/messages.ts
  • packages/models/src/models/Analytics.ts
  • packages/model-typings/src/models/IAnalyticsModel.ts
🔇 Additional comments (5)
packages/model-typings/src/models/IAnalyticsModel.ts (1)

41-41: LGTM!

packages/models/src/models/Analytics.ts (2)

215-216: LGTM!


215-216: 🩺 Stability & Availability

No action needed

apps/meteor/ee/server/lib/engagementDashboard/messages.ts (1)

37-41: LGTM!

apps/meteor/ee/server/lib/engagementDashboard/users.ts (1)

20-24: LGTM!

@sampaiodiego sampaiodiego force-pushed the fix-engagement-dashboard-fill branch from 99263f0 to b2af1ad Compare July 13, 2026 14:55
@ggazzo ggazzo added the stat: QA assured Means it has been tested and approved by a company insider label Jul 13, 2026
@dionisio-bot dionisio-bot Bot added the stat: ready to merge PR tested and approved waiting for merge label Jul 13, 2026
@ggazzo ggazzo merged commit 460858e into develop Jul 13, 2026
80 of 85 checks passed
@ggazzo ggazzo deleted the fix-engagement-dashboard-fill branch July 13, 2026 21:12
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 type: bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants