Skip to content

Comments

feat: v2 toggle transcription settings#23836

Merged
supalarry merged 1 commit intomainfrom
lauris/cal-6410-feat-add-disable-transcriptions-and-automatic-transcription
Sep 15, 2025
Merged

feat: v2 toggle transcription settings#23836
supalarry merged 1 commit intomainfrom
lauris/cal-6410-feat-add-disable-transcriptions-and-automatic-transcription

Conversation

@supalarry
Copy link
Contributor

Linear CAL-6410

@supalarry supalarry requested a review from a team September 15, 2025 08:42
@supalarry supalarry requested a review from a team as a code owner September 15, 2025 08:42
@linear
Copy link

linear bot commented Sep 15, 2025

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 15, 2025

Walkthrough

  • Adds three optional boolean properties to CalVideoSettings in CreateEventType input: enableAutomaticTranscription, disableTranscriptionForGuests, disableTranscriptionForOrganizer.
  • Updates exported platform types: UpdateEventTypeInput_2024_06_14.calVideoSettings and EventTypeOutput_2024_06_14.calVideoSettings to include the same three fields.
  • Modifies e2e tests for updating event types to send and assert these new calVideoSettings fields.
  • Adds an assertion ensuring updatedEventType.hidden is false in the “should update the hidden property to false” test.
  • No endpoint logic changes; updates are in types and tests.

Possibly related PRs

  • feat: v2 api hidden event types #22715 — Also modifies the event-types e2e test file and implements support for the hidden property across inputs/outputs/services, aligning with this PR’s hidden assertion and event-type testing.

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Title Check ✅ Passed The title "feat: v2 toggle transcription settings" concisely and accurately identifies the primary change — adding transcription toggles to API v2. It directly reflects the additions to CalVideoSettings and the related type/test updates included in the PR. The phrasing is short, specific, and free of noise, matching the project's title guidelines.
Linked Issues Check ✅ Passed The linked issue CAL-6410 requests adding three transcription-related properties to CalVideoSettings. The changes add enableAutomaticTranscription, disableTranscriptionForGuests, and disableTranscriptionForOrganizer to the CreateEventType input, update the exported UpdateEventTypeInput and EventTypeOutput types, and update tests to assert these fields, which satisfies the coding objectives from the issue. I see no coding requirements from the linked issue that remain unimplemented in the provided summary.
Out of Scope Changes Check ✅ Passed The provided summary shows changes limited to adding the three boolean fields to CalVideoSettings, updating corresponding exported type declarations, and adjusting tests; there are no edits to endpoint logic or unrelated modules. The raw summary explicitly notes no endpoint/error-handling changes and confines modifications to types and tests. Based on this information, I detect no out-of-scope changes.
Description Check ✅ Passed The PR description contains only a link to Linear issue CAL-6410, and that linked issue describes adding the three transcription properties to CalVideoSettings which matches the changes in the changeset. Although terse, the description is related to the code changes and not off-topic. Under the lenient description check this is sufficient to pass.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch lauris/cal-6410-feat-add-disable-transcriptions-and-automatic-transcription

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


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.

@graphite-app graphite-app bot requested a review from a team September 15, 2025 08:43
@keithwillcode keithwillcode added core area: core, team members only platform Anything related to our platform plan labels Sep 15, 2025
@dosubot dosubot bot added event-types area: event types, event-types ✨ feature New feature or request labels Sep 15, 2025
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: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts (1)

2380-2383: Fix stray “+” causing a syntax error.

The leading “+” before expect will fail the test.

-        +expect(updatedEventType.hidden).toBe(false);
+        expect(updatedEventType.hidden).toBe(false);
🧹 Nitpick comments (4)
packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts (3)

159-161: Clarify trigger semantics for auto‑transcription.

Current wording is ambiguous versus UI text. If intent is “start once first participant joins,” update description accordingly (or align to “when organizer joins” if that’s the rule).

Proposed doc tweak:

-    description: "If true, enables the automatic transcription for the event whenever someone joins the call",
+    description: "If true, starts transcription automatically when the first participant joins the call",

166-168: Tighten guest description language.

Minor copy edit for clarity.

-    description: "If true, the guests will not be able to receive transcription of the meeting",
+    description: "If true, guests will not receive in‑call transcription",

173-175: Tighten organizer description language.

Minor copy edit for clarity.

-    description: "If true, the organizer will not be able to receive transcription of the meeting",
+    description: "If true, the organizer will not receive in‑call transcription",
apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts (1)

2069-2072: Add create‑path coverage for new transcription fields.

Extend the existing “should create event type with cal video settings” test to set and assert the three new flags.

       calVideoSettings: {
         disableRecordingForGuests: true,
         disableRecordingForOrganizer: true,
         enableAutomaticRecordingForOrganizer: true,
+        enableAutomaticTranscription: true,
+        disableTranscriptionForGuests: false,
+        disableTranscriptionForOrganizer: false,
       },
@@
-      expect(createdEventType.calVideoSettings?.enableAutomaticRecordingForOrganizer).toEqual(true);
+      expect(createdEventType.calVideoSettings?.enableAutomaticRecordingForOrganizer).toEqual(true);
+      expect(createdEventType.calVideoSettings?.enableAutomaticTranscription).toEqual(true);
+      expect(createdEventType.calVideoSettings?.disableTranscriptionForGuests).toEqual(false);
+      expect(createdEventType.calVideoSettings?.disableTranscriptionForOrganizer).toEqual(false);

Also applies to: 2092-2094

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear 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 7e876e3 and 6d1de14.

📒 Files selected for processing (2)
  • apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts (2 hunks)
  • packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.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/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts
  • apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.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/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts
  • apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts
**/*.{ts,tsx,js,jsx}

⚙️ CodeRabbit configuration file

Flag default exports and encourage named exports. Named exports provide better tree-shaking, easier refactoring, and clearer imports. Exempt main components like pages, layouts, and components that serve as the primary export of a module.

Files:

  • packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts
  • apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts
🧠 Learnings (3)
📓 Common learnings
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.
📚 Learning: 2025-08-27T13:32:46.887Z
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.

Applied to files:

  • apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts
📚 Learning: 2025-08-21T13:44:06.805Z
Learnt from: supalarry
PR: calcom/cal.com#23217
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts:93-94
Timestamp: 2025-08-21T13:44:06.805Z
Learning: In apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts, repository functions that use explicit Prisma select clauses (like getEventTypeWithSeats) are used for specific purposes and don't need to include all EventType fields like bookingRequiresAuthentication. These methods don't feed into the general OutputEventTypesService_2024_06_14 flow.

Applied to files:

  • apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts
🔇 Additional comments (3)
apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts (2)

1144-1147: Sanity of test inputs looks fine.

Update payload includes the three new transcription flags and exercises the update path properly.

Consider adding a Create test that sets these flags to catch regressions in the create path, too (see suggestion below).


1280-1288: LGTM on assertions for new flags.

The optional chaining protects against undefined and mirrors the request body.

packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts (1)

127-176: ```shell
#!/bin/bash
set -euo pipefail

echo "PWD: $(pwd)"
echo
echo "1) Search repo (ignore .gitignore) for calVideoSettings / DB keys / UI key names"
rg -n -uu -S 'calVideoSettings|cal_video_settings|cal_video|enableAutomaticTranscription|disableTranscriptionForGuests|disableTranscriptionForOrganizer|redirectUrlOnExit' -C3 || true
echo
echo "2) Search for event-type create/update service / repository / prisma usage"
rg -n -uu -S 'EventTypeService|EventTypeRepository|createEventType|create.*EventType|prisma.*event' -C3 || true
echo
echo "3) Search for prisma schema / migrations mentioning cal_video"
rg -n -uu -S 'cal_video' packages || true
echo
echo "4) Narrow search under packages/platform for any mapping/transformer files mentioning calVideoSettings"
rg -n -uu -S 'calVideoSettings|cal_video_settings|CalVideoSettings' packages/platform -C3 || true


</blockquote></details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@supalarry supalarry enabled auto-merge (squash) September 15, 2025 08:59
@supalarry supalarry merged commit 18bac4a into main Sep 15, 2025
122 of 132 checks passed
@supalarry supalarry deleted the lauris/cal-6410-feat-add-disable-transcriptions-and-automatic-transcription branch September 15, 2025 09:13
@github-actions
Copy link
Contributor

E2E results are ready!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core area: core, team members only event-types area: event types, event-types ✨ feature New feature or request platform Anything related to our platform plan ready-for-e2e size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants