Skip to content

fix: use meeting summary and ai companion settings #21777

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

chaitanyya
Copy link
Contributor

@chaitanyya chaitanyya commented Jun 11, 2025

What does this PR do?

We use the correct user configuration for ai_companion and meeting_summary. As complaint by

Video Demo

https://www.loom.com/share/3538202146b840469a2721f49563716b

Mandatory Tasks

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. N/A
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

  • If you have a zoom pro account, enable meeting summary and ai companion across your account
  • Create a new meeting wit Cal link
  • The correct configuration is added to the meeting when created
Screenshot 2025-06-11 at 5 04 56 PM

Summary by cubic

Fixed meeting creation to use the correct user settings for meeting summary and companion features in Zoom.

  • Bug Fixes
    • Reads and applies user preferences for meeting summary and companion auto-start when scheduling meetings.

@graphite-app graphite-app bot added the community Created by Linear-GitHub Sync label Jun 11, 2025
@graphite-app graphite-app bot requested a review from a team June 11, 2025 23:31
@CLAassistant
Copy link

CLAassistant commented Jun 11, 2025

CLA assistant check
All committers have signed the CLA.

Copy link

vercel bot commented Jun 11, 2025

@chaitanyya is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions bot added the 🐛 bug Something isn't working label Jun 11, 2025
@dosubot dosubot bot added the ai area: AI, cal.ai label Jun 11, 2025
Copy link

graphite-app bot commented Jun 11, 2025

Graphite Automations

"Add consumer team as reviewer" took an action on this PR • (06/11/25)

1 reviewer was added to this PR based on Keith Williams's automation.

"Add community label" took an action on this PR • (06/11/25)

1 label was added to this PR based on Keith Williams's automation.

"Add ready-for-e2e label" took an action on this PR • (07/11/25)

1 label was added to this PR based on Keith Williams's automation.

Copy link
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.

cubic reviewed 1 file and found no issues. Review PR in cubic.dev.

@chaitanyya
Copy link
Contributor Author

@Devanshusharma2005 also this one, i did try it out with a paid account and it worked fine, super simple happy to add more context if that makes things easier for you

Copy link
Contributor

@kart1ka kart1ka left a comment

Choose a reason for hiding this comment

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

Left a comment. Rest looks good.

@kart1ka kart1ka marked this pull request as draft June 21, 2025 08:53
@chaitanyya chaitanyya marked this pull request as ready for review June 22, 2025 06:08
@chaitanyya chaitanyya requested a review from kart1ka June 22, 2025 06:08
Copy link
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.

cubic reviewed 1 file and found no issues. Review PR in cubic.dev.

@kart1ka
Copy link
Contributor

kart1ka commented Jul 10, 2025

@chaitanyya could you pls resolve the merge conflicts?

@chaitanyya
Copy link
Contributor Author

@kart1ka it's done, would be great if we can clean it up soon

Copy link
Contributor

@kart1ka kart1ka left a comment

Choose a reason for hiding this comment

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

Added comments

@chaitanyya chaitanyya requested a review from kart1ka July 11, 2025 04:54
kart1ka
kart1ka previously approved these changes Jul 11, 2025
Copy link
Contributor

@kart1ka kart1ka left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

github-actions bot commented Jul 11, 2025

E2E results are ready!

@chaitanyya
Copy link
Contributor Author

This one has been sitting for a while, would be great if we can merge this

@anikdhabal anikdhabal added the Low priority Created by Linear-GitHub Sync label Jul 16, 2025
Comment on lines +212 to +215
auto_start_meeting_summary:
userSettings?.in_meeting?.meeting_summary_with_ai_companion?.auto_enable ?? false,
auto_start_ai_companion_questions:
userSettings?.in_meeting?.ai_companion_questions?.auto_enable ?? false,
Copy link
Contributor

Choose a reason for hiding this comment

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

In the official docs, I couldn’t find these props: auto_start_meeting_summary and auto_start_ai_companion_questions. Can you please attach the link?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@chaitanyya chaitanyya requested a review from anikdhabal August 8, 2025 14:27
Copy link
Contributor

coderabbitai bot commented Aug 8, 2025

Walkthrough

The changes update the Zoom user settings schema to add two new optional nested objects, meeting_summary_with_ai_companion and ai_companion_questions, each with an optional auto_enable boolean under the in_meeting section. The waiting_room property is made optional and nullable. The API filter string is modified to include the in_meeting field to ensure retrieval of these new settings. In the meeting creation logic, two new boolean flags are introduced and set based on the corresponding user settings, defaulting to false if not present.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Assessment against linked issues

Objective Addressed Explanation
Ensure "Automatically start meeting summary" is enabled if "Turn on meeting summary automatically when meetings start" is true (#21770, CAL-5916)
Ensure "Automatically start AI Companion" is enabled if the corresponding setting is true (#21770, CAL-5916)

Assessment against linked issues: Out-of-scope changes

No out-of-scope changes were found.

Note

🔌 MCP (Model Context Protocol) integration is now available in Early Access!

Pro users can now connect to remote MCP servers under the Integrations page to get reviews and chat conversations that understand additional development context.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

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

🧹 Nitpick comments (1)
packages/app-store/zoomvideo/lib/VideoApiAdapter.ts (1)

108-108: custom_query_fields: verify if top-level waiting_room is needed

We read waiting_room from in_meeting, and in_meeting is already included. If top-level waiting_room isn’t used, consider removing it to keep the response lean.

If verified unused, apply:

-"default_password_for_scheduled_meetings,auto_recording,waiting_room,waiting_room_settings,in_meeting";
+"default_password_for_scheduled_meetings,auto_recording,waiting_room_settings,in_meeting";
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 659d9cf and 4a9e5e9.

📒 Files selected for processing (1)
  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts (3 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.ts

📄 CodeRabbit Inference Engine (.cursor/rules/review.mdc)

**/*.ts: For Prisma queries, only select data you need; never use include, always use select
Ensure the credential.key field is never returned from tRPC endpoints or APIs

Files:

  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/review.mdc)

Flag excessive Day.js use in performance-critical code; prefer native Date or Day.js .utc() in hot paths like loops

Files:

  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
🧠 Learnings (5)
📚 Learning: 2025-08-08T09:29:11.665Z
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/interfaces/AIPhoneService.interface.ts:118-143
Timestamp: 2025-08-08T09:29:11.665Z
Learning: In calcom/cal.com PR #22919, packages/features/calAIPhone/interfaces/AIPhoneService.interface.ts (TypeScript), the AIPhoneServiceAgentListItem is required to include user.email in listAgents responses (per maintainer Udit-takkar). Future reviews should not flag this as unnecessary PII unless requirements change.

Applied to files:

  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
📚 Learning: 2025-08-08T09:27:23.870Z
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/providers/retellAI/services/AgentService.ts:195-216
Timestamp: 2025-08-08T09:27:23.870Z
Learning: In PR calcom/cal.com#22919, file packages/features/calAIPhone/providers/retellAI/services/AgentService.ts, the updateAgentConfiguration method intentionally does not persist the optional `name` parameter to the repository for now, per maintainer (Udit-takkar). Future reviews should not flag this unless requirements change.

Applied to files:

  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
📚 Learning: 2025-07-16T07:14:49.248Z
Learnt from: vijayraghav-io
PR: calcom/cal.com#16579
File: packages/prisma/schema.prisma:149-153
Timestamp: 2025-07-16T07:14:49.248Z
Learning: In Cal.com's schema design, the team prefers to keep Boolean fields nullable (Boolean?) with defaults rather than making them non-nullable (Boolean) to avoid expensive database migrations that would update existing rows.

Applied to files:

  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
📚 Learning: 2025-08-08T10:26:13.352Z
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts:212-220
Timestamp: 2025-08-08T10:26:13.352Z
Learning: In calcom/cal.com PR #22919, packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts should include the phone number in client-facing HttpError messages (e.g., in updatePhoneNumber/getPhoneNumber catch blocks). Do not suggest redacting the phone number from these errors unless requirements change (per maintainer: Udit-takkar).

Applied to files:

  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
📚 Learning: 2025-07-18T17:57:16.395Z
Learnt from: vijayraghav-io
PR: calcom/cal.com#21072
File: packages/app-store/office365calendar/api/webhook.ts:120-123
Timestamp: 2025-07-18T17:57:16.395Z
Learning: The office365calendar webhook handler in packages/app-store/office365calendar/api/webhook.ts is specifically designed for Office365 calendar integration, not as a generic webhook handler. Therefore, it's safe to assume that fetchAvailabilityAndSetCache method will be implemented in the Office365CalendarService, making explicit validation checks unnecessary.

Applied to files:

  • packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
⏰ 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). (1)
  • GitHub Check: Install dependencies / Yarn install & cache
🔇 Additional comments (1)
packages/app-store/zoomvideo/lib/VideoApiAdapter.ts (1)

79-90: Allow nulls for AI companion schema fields

To avoid Zod parse failures when Zoom omits or nulls these settings, update both the nested objects and their auto_enable flags to be nullish instead of just optional:

-      meeting_summary_with_ai_companion: z
-        .object({
-          auto_enable: z.boolean().optional(),
-        })
-        .optional(),
+      meeting_summary_with_ai_companion: z
+        .object({
+          auto_enable: z.boolean().nullish(),
+        })
+        .nullish(),

-      ai_companion_questions: z
-        .object({
-          auto_enable: z.boolean().optional(),
-        })
-        .optional(),
+      ai_companion_questions: z
+        .object({
+          auto_enable: z.boolean().nullish(),
+        })
+        .nullish(),

• In your meeting‐creation payload, use conditional spreads for
auto_start_meeting_summary and auto_start_ai_companion_questions
so you don’t accidentally force false when a user hasn’t set them.
• Nit: once nullish behavior is confirmed, consider trimming custom_query_fields.

Please verify against a real Zoom Create Meeting API response (paid account) to confirm these objects can be null or omitted before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ai area: AI, cal.ai 🐛 bug Something isn't working community Created by Linear-GitHub Sync Low priority Created by Linear-GitHub Sync ready-for-e2e
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Zoom meeting summary setting not enabled
4 participants