6070 Commits
Author SHA1 Message Date
GitHub Actions 8c9b7a701d chore: release v5.4.9
Post release / release (push) Canceled after 0s
2025-06-27 22:17:36 +00:00
c47b992125 perf: optimize slot conflict checking from O(n²) to O(n log n) (#22101)
* perf: optimize slot conflict checking from O(n²) to O(n log n)

- Replace nested mapping with pre-sorted busy slots for faster lookups
- Use early termination when busy slots are sorted by start time
- Maintain exact same interface and behavior as original checkForConflicts
- All existing tests pass, preserving edge case handling
- Reduces complexity from O(available slots × busy slots) to O(n log n)

Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>

* refactor: move O(n log n) optimization to checkForConflicts function

- Replace inline optimization with optimized checkForConflicts function
- Maintain same performance while improving code architecture
- Avoid duplication of conflict checking logic
- Keep all existing interfaces and behavior unchanged

Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>

* test: add comprehensive unit tests for checkForConflicts function

- Add 20 additional test cases covering edge cases and boundary conditions
- Test multiple busy periods scenarios and complex overlaps
- Comprehensive currentSeats handling scenarios
- Timezone and cross-day boundary testing
- Performance testing with large datasets
- Fix invalid date generation in test data that was causing NaN conflicts
- Achieve near 100% coverage of all conflict scenarios documented in function comments
- Verify behavioral equivalence between original O(n²) and optimized O(n log n) implementations

Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>

* Simple, safe performance tweak

* Explicitly define the input of busy to be either Date or Dayjs, not string

* EventBusyDate must ALWAYS be a type that supports valueOf

* Revert "EventBusyDate must ALWAYS be a type that supports valueOf"

This reverts commit 35b572266219d64c22db3c3e24b0cb6ca7a901a6.

* Revert "Explicitly define the input of busy to be either Date or Dayjs, not string"

This reverts commit 902f29708e4b7990a4e5e2865cab2f18ab3e44f0.

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2025-06-27 22:10:17 +00:00
github-actions[bot] 5690b8e1d5 chore: version packages (#22104)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-27 15:19:56 +00:00
Lauris Skraucis 61274bc7ef fix: changesets release (#22103) 2025-06-27 14:37:23 +00:00
github-actions[bot] e66be23996 chore: version packages (#22098)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-27 12:35:20 +00:00
Lauris Skraucis 3c43ce4165 chore: test changesets (#22095)
* chore: test changesets

* bump atoms package.json

* Revert "bump atoms package.json"

This reverts commit 6105f8cf2486085e5da317a6969044693f4a3aa0.

* chore: set packages to private

* ignore private packages

* ignore private
2025-06-27 13:49:28 +02:00
Somay Chauhan 5060824795 fix: EventAvailabilityTab atom breaking (#22059) 2025-06-27 09:40:38 +00:00
c4941f25a2 fix: no available users found (recurring events) (#22033)
* only check first slot

* skip test for second slot availability check

* fixing tests in handleNewRecurringBooking.test.ts

* skip test

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2025-06-27 09:31:56 +00:00
e7c219905f fix: add shape docs to avatar (#20552)
Co-authored-by: Sean Brydon <sean@Seans-Mac-mini.local>
Co-authored-by: Benny Joo <sldisek783@gmail.com>
2025-06-27 09:09:13 +00:00
Udit TakkarandHariom Balhara 499cbd08ca feat: Phone based bookings for everyone (#21320) (#22024)
* Revert "Revert "feat: Phone based bookings for everyone (#21320)" (#22018)"

This reverts commit 80e2118e68.

* chore: don't use repository

* chore: create getTeamWithOrganizationSettings function

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2025-06-27 10:09:04 +01:00
Eunjae Lee 0a3b3a69e3 fix: add InsightsRoutingService and refactor InsightsBookingRepository (#22057)
* chore: convert InsightsBookingRepository to service

* remove repository

* rename

* clean up

* add InsightsRoutingService

* add tests
2025-06-27 11:08:46 +02:00
02ef4db0eb feat: Add rerouting to AssignmentReasonRecorder (#19252)
* Add `rerouting` to `AssignmentReasonRecorder`

* Pass session email as `rescheduledBy`

* Write reassign reason

* Edit message

* Use `routingFormRoute` when rerouting

* Pass isRerouting & reroutedByEmail to `routingFormRoute` method

* Type fix

* Fix test

* Fix test

* Fix test

* Type fix

* Refactor to use UserRepository

* Show rerouted by email

* Replace isReroutingCase

* Fix rescheduledBy for new tab reschduling

---------

Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Hariom <hariombalhara@gmail.com>
2025-06-27 10:06:39 +01:00
sean-brydon f8d48a341d show icon button when one item in array (#22054) 2025-06-27 07:52:18 +00:00
GitHub Actions 251393101a chore: release v5.4.8
Post release / release (push) Canceled after 0s
2025-06-26 23:56:56 +00:00
Joe Au-Yeung b50430114f Disable setting profile picture (#22074) 2025-06-26 23:48:38 +00:00
Joe Au-Yeung b0999abc68 fix: Generate new idempotency key when round robin reassigning (#22065)
* Create idempotencyKeyService

* Use `idempotencyKeyService` in middleware

* Use `idempotencyKeyService` in RR reassignments
2025-06-26 17:43:31 +00:00
Eunjae Lee 64092abdca fix: make uuid of App_RoutingForms_FormResponse nullable (#22056) 2025-06-26 10:42:45 +00:00
Anik Dhabal Babu c10f15e75b fix: google calendar event creation failure due to invalid timezone (#22048)
* fix: google calendar event creation failure

* update

* fix type error

* Update TimezoneSelect.tsx
2025-06-26 09:36:44 +00:00
devin-ai-integration[bot]andeunjae@cal.com aea0661303 feat: disable changing field type of routing forms if responses exist (#21911)
* feat: add field type change warning dialog to routing forms

- Add FieldTypeChangeWarningDialog component to prevent field type changes
- Show informative dialog explaining data integrity concerns when users try to change field types
- Provide alternative suggestion to create new field instead of changing existing one
- Add i18n translations for dialog messages
- Integrate dialog into routing form edit page field type selector
- Bypass Teams plan restriction for testing routing forms functionality
- Fix ESLint error by properly handling scrollIntoView in embed mode with disable comment

Prevents data integrity issues by blocking field type changes (e.g. multiselect → text)
that could make existing form responses incompatible and cause data loss.

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* fix: make field type dialog more selective to allow legitimate changes during form creation

- Only show warning dialog when there's actual data integrity risk
- Allow field type changes for new fields or fields without meaningful labels
- Fixes E2E test timeout by not blocking legitimate field type changes
- Maintains data protection for existing fields with real data

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* fix: complete field type dialog implementation with translations and component

- Add FieldTypeChangeWarningDialog component with proper i18n support
- Add all required translation strings for dialog messages
- Ensure dialog only shows for actual data integrity risks
- Allow legitimate field type changes during form creation

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* simplify field type dialog: one button, button replaces SelectField, remove forms page changes

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* use Button component

* feat: restore SelectField with conditional dialog for field type changes

- Restore original SelectField dropdown to allow users to see available field types
- Add conditional logic to show dialog only when different type is selected AND form has responses
- Prevent field type changes by not calling onChange when dialog is shown
- Pass hasFormResponses prop from FormEdit to Field component
- Maintain data integrity while providing clear user guidance

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* controlled value

* convert dialog to tooltip

* Update common.json

* remove unused texts

* allow type changing for new field

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: eunjae@cal.com <hey@eunjae.dev>
2025-06-26 07:58:05 +00:00
Eunjae LeeandBenny Joo 3fd9ef366f fix: add InsightsBookingRepository (#22003)
* fix: add InsightsBookingRepository WIP

* write integration tests

* remove log

---------

Co-authored-by: Benny Joo <sldisek783@gmail.com>
2025-06-26 07:57:08 +00:00
GitHub Actions cf79a3f580 chore: release v5.4.7
Post release / release (push) Canceled after 0s
2025-06-25 23:25:56 +00:00
Joe Au-Yeung c5da78593a Fix import (#22020) 2025-06-25 23:15:04 +01:00
Benny Joo 801b0be414 perf: optimize fetch for primary google calendar (#22041)
* perf: optimize getting primary google calendar

* add test

* use calendars

* safer
2025-06-25 23:10:25 +01:00
RomitandBenny Joo 29aad2c535 fix: error because Seated slot reservations do not pass bookingUid (#22022)
* fixed query

* Update reserveSlot.handler.ts

---------

Co-authored-by: Benny Joo <sldisek783@gmail.com>
2025-06-25 21:56:32 +00:00
Carina WollendorferandCarinaWolli 82d3b9d29d only update reminders for EMAIL_HOST action (#22027)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2025-06-25 20:54:19 +00:00
Benny Joo d50e1a0e15 feat: Leverage ErrorCode cases for correct error codes in server responses (#22023)
* Leverage ErrorCode cases for correct error codes in server responses

* better test

* fix
2025-06-25 13:18:01 -07:00
Anik Dhabal Babu 79a0071d65 fix: e2e tests failure (#22043)
* fix: delete dilog button not visible

* fix: test failure
2025-06-25 15:59:03 -03:00
MorganandAlex van Andel 2f1f989266 feat: allow setting DAILY VIDEO region via env (#21939)
* feat: allow setting DAILY VIDEO region via env

* add comments

* Cleaner approach to Daily video region type assertion

---------

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2025-06-25 18:01:40 +03:00
Eunjae Lee 2303eb7908 fix: add uuid to App_RoutingForms_FormResponse (#21910)
* fix: add uuid to App_RoutingForms_FormResponse

* update RoutingFormResponseDenormalized

* fix type error
2025-06-25 10:49:20 -04:00
6ed197d35c fix: Org creation for self-hosters (#21994)
* Restart form if admin is not org admin

* Show pricing is admin and hosted

* Only show billing specific fields when enabled

* Create user onboarding only if valid valid license when self hosting

* Reset store when org creation is completed

* Create schema for trpc input when creating an org

* Add `organization.createSelfHosted` trpc endpoint

* `createOrganizationFromOnboarding` do not require stripe data

* Create organization without billing if self-hosted admin

* Update organizationOnboarding record as completed

* Handle updating subscription for self hosters

* Refactor `isBillingEnabled` to store

* Type fix

* Fix admin org creation for hosted

* Hide UI from admin

* Add tests

* fix: Fix LicenseKeySingleton mocking in organization tests

- Add proper vi.mock() module-level mocking for LicenseKeySingleton
- Replace incorrect casting syntax with vi.mocked() approach
- Add LicenseKeySingleton mock to hosted tests in intentToCreateOrg.handler.test.ts
- Fix IS_SELF_HOSTED mocking for hosted vs self-hosted test scenarios
- All organization creation tests now pass locally

Co-Authored-By: joe@cal.com <joe@cal.com>

* Fix tests

* Fix tests

* Test fixes

* Type fix

* Type fix

* Type fix

* Update packages/features/ee/organizations/lib/server/createOrganizationFromOnboarding.test.ts

Fix typo

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* fix: Add IS_SELF_HOSTED mocking for E2E organization creation tests

Co-Authored-By: joe@cal.com <joe@cal.com>

* Fix E2E test

* Address feedback

* Type fix

* Fix e2e tests

* Remove unused code

* Small fixes

* fix unit tests

* review fixes

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: joe@cal.com <joe@cal.com>
Co-authored-by: Benny Joo <sldisek783@gmail.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Hariom <hariombalhara@gmail.com>
2025-06-25 16:58:18 +03:00
Hariom Balharaandcubic-dev-ai[bot] fa0a18b31d fix: Allow backgroundSlotsFetch option to disable slots fetching during prerender (#21999)
* fix: Allow noBackgroundSlotsFetch option to disable slots fetching
during prerender

* Update packages/embeds/embed-core/src/embed-iframe.ts

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-06-25 10:38:35 +00:00
Benny Joo 80e2118e68 Revert "feat: Phone based bookings for everyone (#21320)" (#22018)
This reverts commit 866a0e2596.
2025-06-25 02:32:09 +00:00
GitHub Actions ed5086df6b chore: release v5.4.6
Post release / release (push) Canceled after 0s
2025-06-24 23:10:17 +00:00
Alex van Andel 218ec9140c Revert "perf: Refactor getPublicEvent to fetch org data using DB index key (#21850)"
This reverts commit a37f1d9798.
2025-06-24 16:37:36 +01:00
Hariom Balhara 6dad0e7679 fix-avoid-cross-domain-xhr (#22008) 2025-06-24 15:08:43 +00:00
Dhairyashil ShindeandKartik Saini cb96a56960 feat: Preserve past SMS workflow reminders by disabling deletion (#21906)
* Preserve past SMS workflow reminders by disabling deletion

* Restored code to delete SMS reminder worflows that fallback to EMAIL

---------

Co-authored-by: Kartik Saini <41051387+kart1ka@users.noreply.github.com>
2025-06-24 12:01:08 +02:00
e22d9a551c fix: Theme class names for embed elements (#21275)
* refactor(embed-core): update theme class names for consistency

Standardize theme class names to use 'cal-element-embed-dark' and 'cal-element-embed-light' to improve maintainability and clarity.

* refactor(embed-core): replace theme class strings with constants

* fix theme not changing

---------

Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
Co-authored-by: Hariom <hariombalhara@gmail.com>
2025-06-24 07:26:48 +00:00
Carina WollendorferandCarinaWolli c215dc5864 fix: credit balance issues (#21904)
* fix creating user balance

* fix org check if teamId is given

* adjust hasAvailableCredits function

* improve comments

* fix creditBalance.create

* adjust test

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2025-06-24 09:18:14 +02:00
Benny Joo a37f1d9798 perf: Refactor getPublicEvent to fetch org data using DB index key (#21850)
* wip

* fix

* fix naming

* fix typecheck
2025-06-23 23:01:06 +01:00
Benny Joo 07c8bbc562 fix: crash due to lack of input validation in WizardForm (#21990)
* fix: crash due to lack of input validation in WizardForm

* server side validation

* refactor

* refactor
2025-06-23 17:03:51 -03:00
Omar López b381cfe207 fix: Downgrades typescript to 5.7.2 (#21956) 2025-06-23 18:31:47 +00:00
Anik Dhabal Babu a560b9c8f4 fix: Add error log for zoom (#21991)
* fix: delete dilog button not visible

* fix: add log
2025-06-23 18:29:12 +00:00
Somay ChauhanandRajiv Sahal 18b5612c0d feat: add apps filter and bulk update toggle to conferencing apps atom (#21973)
* feat: add apps filter and bulk update toggle to conferencing apps atom

* docs: clarify description of disableBulkUpdateEventTypes flag in conferencing apps docs

* docs: update valid conferencing app slugs in atoms documentation

---------

Co-authored-by: Rajiv Sahal <sahalrajiv-extc@atharvacoe.ac.in>
2025-06-23 22:59:44 +05:30
Anik Dhabal Babu fad488623f Revert "fix: multi-line formatted correctly for sms (#21779)" (#21979)
This reverts commit 5e2f06cdea.
2025-06-23 16:00:43 +00:00
Romit.andAnik Dhabal Babu c490f084dc fix: background of event advanced questions section in dark theme (#21985)
* fixed bg of event advanced questions

* Update EventAdvancedTab.tsx

* Update EventAdvancedTab.tsx

---------

Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-06-23 15:33:32 +00:00
Joe Au-Yeung b1caacd643 Disable tRPC endpoint on slots fetch failure (#21986) 2025-06-23 15:17:33 +00:00
Udit Takkar 76c8876923 fix: don't fetch calendar for top banner (#21908) 2025-06-23 09:00:44 -03:00
Hariom Balhara a911c9cb8d Make props optiona (#21977) 2025-06-23 11:52:10 +00:00
devin-ai-integration[bot]andeunjae@cal.com 07d5594085 feat: add integration test for RoutingFormResponseField triggers (#21586)
* feat: add integration test for RoutingFormResponseField triggers

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

* refactor: remove changing field types test case

Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: eunjae@cal.com <hey@eunjae.dev>
2025-06-23 10:11:20 +00:00
Benny JooandAnik Dhabal Babu a745d8a60a fix: error in /auth/session (#21972)
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
2025-06-23 08:32:14 +00:00