Conversation
…robin reassignment
WalkthroughUpdates in packages/features/ee/round-robin/roundRobinManualReassignment.ts and roundRobinReassignment.ts add a conditional branch for organizer changes (hasOrganizerChanged). When true, the constructed event object (evt) has videoCallData and iCalUID cleared before proceeding. This change adjusts event construction for reassignment scenarios involving a new organizer to avoid identifier/location conflicts during subsequent create/update operations. No exported/public API signatures were modified. Possibly related PRs
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
packages/features/ee/round-robin/roundRobinManualReassignment.ts (1)
315-320: Code duplication addressed in roundRobinReassignment.ts review.This code block is identical to the one in
roundRobinReassignment.ts(lines 344-349). See the review comment in that file for the suggested refactor to extract this into a shared utility function.Minor note: The formatting here has extra spaces (
if( hasOrganizerChanged )) while the other file is missing the space afterif. Both should be standardized toif (hasOrganizerChanged)when refactoring.
📜 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.
📒 Files selected for processing (2)
packages/features/ee/round-robin/roundRobinManualReassignment.ts(2 hunks)packages/features/ee/round-robin/roundRobinReassignment.ts(2 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 useinclude, always useselect
Ensure thecredential.keyfield is never returned from tRPC endpoints or APIs
Files:
packages/features/ee/round-robin/roundRobinManualReassignment.tspackages/features/ee/round-robin/roundRobinReassignment.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/features/ee/round-robin/roundRobinManualReassignment.tspackages/features/ee/round-robin/roundRobinReassignment.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/features/ee/round-robin/roundRobinManualReassignment.tspackages/features/ee/round-robin/roundRobinReassignment.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: anglerfishlyy
PR: calcom/cal.com#0
File: :0-0
Timestamp: 2025-08-27T16:39:38.192Z
Learning: anglerfishlyy successfully implemented CAL-3076 email invitation feature for Cal.com team event-types in PR #23312. The feature allows inviting people via email directly from assignment flow, with automatic team invitation if email doesn't belong to existing team member. Implementation includes Host type modifications (userId?: number, email?: string, isPending?: boolean), CheckedTeamSelect component updates with CreatableSelect, TRPC schema validation with zod email validation, and integration with existing teamInvite system.
⏰ Context from checks skipped due to timeout of 180000ms. 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/features/ee/round-robin/roundRobinReassignment.ts (1)
344-349: No action required — downstream handles undefined iCalUID.EventManager.reschedule creates new calendar events when the organizer changes (it calls this.create(originalEvt)), EventManager.create/createAllCalendarEvents populate iCalUID from created results, and handleRescheduleEventManager reconciles evt.iCalUID from the calendar results and updates the booking in the DB (see EventManager.reschedule/create/createAllCalendarEvents in packages/features/bookings/lib/EventManager.ts and the iCalUID assignment + prisma update in packages/features/ee/round-robin/handleRescheduleEventManager.ts).
| conferenceCredentialId: conferenceCredentialId ?? undefined, | ||
| }; | ||
|
|
||
| if( hasOrganizerChanged ){ |
There was a problem hiding this comment.
we have this similar logic in handleNewBooking, which we somehow skipped in the roundRobinManualReassignment and roundRobinReassignment
…-updating-after-reassignment
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
…-updating-after-reassignment
…-updating-after-reassignment
E2E results are ready! |
What does this PR do?
Before
https://www.loom.com/share/7cbd8f110a2f41e79d74923115443e13?sid=fe47015e-66d9-4db4-b22c-6102bf51bd8c
After
https://www.loom.com/share/5ab28e81dbfa418cbc01b4bd72ec17f2?sid=2b80048b-4d98-4b82-bbca-2461d4e6855c