Skip to content

Fix: Google Calendar sync fails on job reassignment#80

Open
MRiabov wants to merge 1 commit into
mainfrom
fix-reassignment-calendar-sync-11963572518877658023
Open

Fix: Google Calendar sync fails on job reassignment#80
MRiabov wants to merge 1 commit into
mainfrom
fix-reassignment-calendar-sync-11963572518877658023

Conversation

@MRiabov
Copy link
Copy Markdown
Owner

@MRiabov MRiabov commented Feb 9, 2026

This PR fixes a bug where reassigning a job did not trigger the JOB_UNASSIGNED event for the previous employee. This caused Google Calendar events to be orphaned on the old employee's calendar and prevented the new employee from receiving the event (due to gcal_event_id conflict).

The fix involves:

  1. Capturing the old_employee_id before updating the assignment.
  2. Emitting JOB_UNASSIGNED for the old employee if a reassignment occurred.
  3. Refreshing the job instance to sync with changes made by the event handler (clearing gcal_event_id).
  4. Ensuring JOB_UNASSIGNED runs before JOB_ASSIGNED.

PR created automatically by Jules for task 11963572518877658023 started by @MRiabov

- Modified `src/services/assignment_service.py` to emit `JOB_UNASSIGNED` when a job is reassigned to a different employee.
- Ensures `JOB_UNASSIGNED` is emitted before `JOB_ASSIGNED`, allowing the `CalendarSyncHandler` to clean up the Google Calendar event from the old employee before creating a new one.
- Added a regression test case `test_assign_job_reassignment_emits_events` in `tests/test_assignment_logic.py`.

Co-authored-by: MRiabov <108194191+MRiabov@users.noreply.github.com>
@google-labs-jules
Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

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.

1 participant