Skip to content

feat(voice poc): feature branch voice experiments #40764

Draft
ggazzo wants to merge 10 commits into
developfrom
feat/voice
Draft

feat(voice poc): feature branch voice experiments #40764
ggazzo wants to merge 10 commits into
developfrom
feat/voice

Conversation

@ggazzo
Copy link
Copy Markdown
Member

@ggazzo ggazzo commented Jun 2, 2026

Proposed changes (including videos or screenshots)

Issue(s)

Steps to test or reproduce

Further comments

@dionisio-bot
Copy link
Copy Markdown
Contributor

dionisio-bot Bot commented Jun 2, 2026

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is missing the 'stat: QA assured' label

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jun 2, 2026

🦋 Changeset detected

Latest commit: 2677752

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

This PR includes changesets to release 19 packages
Name Type
@rocket.chat/media-calls Minor
@rocket.chat/model-typings Minor
@rocket.chat/ui-voip Major
@rocket.chat/models Minor
@rocket.chat/i18n Minor
@rocket.chat/core-typings Minor
@rocket.chat/rest-typings Minor
@rocket.chat/meteor Minor
@rocket.chat/ui-client Major
@rocket.chat/mock-providers Patch
@rocket.chat/ui-contexts Major
@rocket.chat/web-ui-registration Major
@rocket.chat/uikit-playground Patch
@rocket.chat/fuselage-ui-kit Major
@rocket.chat/gazzodown Major
@rocket.chat/livechat Patch
@rocket.chat/ui-avatar Major
@rocket.chat/ui-video-conf Major
@rocket.chat/ui-composer Major

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

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 2, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 11d4b7a3-13b6-47c9-9903-626b71dfb545

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@ggazzo ggazzo added this to the POC-VOICE milestone Jun 2, 2026
@ggazzo ggazzo marked this pull request as ready for review June 2, 2026 15:26
@ggazzo ggazzo requested review from a team as code owners June 2, 2026 15:26
@ggazzo ggazzo marked this pull request as draft June 2, 2026 15:26
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 2, 2026

Codecov Report

❌ Patch coverage is 85.79882% with 168 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.05%. Comparing base (3c47215) to head (2677752).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #40764      +/-   ##
===========================================
+ Coverage    69.95%   70.05%   +0.09%     
===========================================
  Files         3336     3369      +33     
  Lines       123479   124629    +1150     
  Branches     21980    22190     +210     
===========================================
+ Hits         86384    87310     +926     
- Misses       33750    33960     +210     
- Partials      3345     3359      +14     
Flag Coverage Δ
e2e 59.25% <35.29%> (-0.19%) ⬇️
e2e-api 46.53% <11.80%> (+0.21%) ⬆️
unit 70.92% <96.06%> (+0.21%) ⬆️

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.

Copy link
Copy Markdown
Contributor

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

Choose a reason for hiding this comment

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

2 issues found

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="apps/meteor/server/services/call-history/service.ts">

<violation number="1" location="apps/meteor/server/services/call-history/service.ts:29">
P1: `importHistoryForUser` is awaited synchronously inside `search`, blocking the paginated query result until the external HTTP call completes. This turns every search request into a potentially multi-second operation, which is problematic for a listing endpoint that should be fast.</violation>

<violation number="2" location="apps/meteor/server/services/call-history/service.ts:33">
P1: The `type` filter on line 27 uses a weaker condition than the import gate on line 23. If the external history setting is enabled but `host` or `username` are empty, no import runs, yet `type` is still set to `'mitel'`. This causes the search to return zero mitel-type results even when local media-call entries exist, effectively hiding all call history.</violation>
</file>

Note: This PR contains a large number of files. cubic only reviews up to 100 files per PR, so some files may not have been reviewed. cubic prioritizes the most important files to review.
On a pro plan you can use ultrareview for larger PRs.

Re-trigger cubic


const externalHistoryConfig = this.getExternalCallHistorySettings();
if (externalHistoryConfig?.host && externalHistoryConfig.username) {
await importHistoryForUser(uid, externalHistoryConfig);
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.

P1: importHistoryForUser is awaited synchronously inside search, blocking the paginated query result until the external HTTP call completes. This turns every search request into a potentially multi-second operation, which is problematic for a listing endpoint that should be fast.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/meteor/server/services/call-history/service.ts, line 29:

<comment>`importHistoryForUser` is awaited synchronously inside `search`, blocking the paginated query result until the external HTTP call completes. This turns every search request into a potentially multi-second operation, which is problematic for a listing endpoint that should be fast.</comment>

<file context>
@@ -0,0 +1,64 @@
+
+		const externalHistoryConfig = this.getExternalCallHistorySettings();
+		if (externalHistoryConfig?.host && externalHistoryConfig.username) {
+			await importHistoryForUser(uid, externalHistoryConfig);
+		}
+
</file context>

}

// If external history is toggled on, only external entries may be listed
const type = externalHistoryConfig ? 'mitel' : 'media-call';
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.

P1: The type filter on line 27 uses a weaker condition than the import gate on line 23. If the external history setting is enabled but host or username are empty, no import runs, yet type is still set to 'mitel'. This causes the search to return zero mitel-type results even when local media-call entries exist, effectively hiding all call history.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/meteor/server/services/call-history/service.ts, line 33:

<comment>The `type` filter on line 27 uses a weaker condition than the import gate on line 23. If the external history setting is enabled but `host` or `username` are empty, no import runs, yet `type` is still set to `'mitel'`. This causes the search to return zero mitel-type results even when local media-call entries exist, effectively hiding all call history.</comment>

<file context>
@@ -0,0 +1,64 @@
+		}
+
+		// If external history is toggled on, only external entries may be listed
+		const type = externalHistoryConfig ? 'mitel' : 'media-call';
+
+		const { cursor, totalCount } = CallHistory.findAllByUserIdAndSearchFilters(
</file context>

@ggazzo ggazzo force-pushed the feat/voice branch 5 times, most recently from 7ff94a1 to 19af245 Compare June 3, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants