[Debt] Decompose Scheduling participant, slot, and invitation reconciliation #7

Closed
opened 2026-07-29 13:25:59 +02:00 by zemion · 2 comments
Owner

Problem

Scheduling reconciliation remains highly complex: participant reconciliation (F/67), slot reconciliation (F/48), invitation-token update logic (F/43), and related response assembly combine diff planning, Poll state, Calendar holds, token lifecycle, and persistence.

Acceptance criteria

  • Reconciliation first produces a pure, inspectable change plan and then applies it transactionally.
  • Token rotation/revocation rules are explicit and never expose usable historical tokens.
  • Poll responses and tentative Calendar holds are reconciled idempotently.
  • Required/quorum/weighted participant behavior remains covered.
  • Scheduling passes the configured Xenon threshold.
## Problem Scheduling reconciliation remains highly complex: participant reconciliation (F/67), slot reconciliation (F/48), invitation-token update logic (F/43), and related response assembly combine diff planning, Poll state, Calendar holds, token lifecycle, and persistence. ## Acceptance criteria - Reconciliation first produces a pure, inspectable change plan and then applies it transactionally. - Token rotation/revocation rules are explicit and never expose usable historical tokens. - Poll responses and tentative Calendar holds are reconciled idempotently. - Required/quorum/weighted participant behavior remains covered. - Scheduling passes the configured Xenon threshold. <!-- scheduling-reconciliation-complexity-20260729 -->
Author
Owner

Codex State: reviewed

Reviewed after published Scheduling b9f557e. This remains open: fresh Xenon still reports F/D participant, slot, and invitation reconciliation paths. Deterministic transition planning and side-effect execution are not yet separated enough to meet the threshold.

## Codex State: reviewed Reviewed after published Scheduling `b9f557e`. This remains open: fresh Xenon still reports F/D participant, slot, and invitation reconciliation paths. Deterministic transition planning and side-effect execution are not yet separated enough to meet the threshold.
Author
Owner

Implemented in 9b029c8. Scheduling participant, slot, and request updates now produce immutable, inspectable change plans before applying Poll/Calendar/local side effects under the existing locked transaction. Plans preserve required-participant and invitation-revocation intent without carrying raw invitation tokens; exact slot replay is a no-op; held-slot removal remains blocked; response retirement keeps its idempotency key. Validation: 80 backend tests, Ruff, Xenon (C/B/A), WebUI view-model tests (12), and UI structure checks all pass.

Implemented in 9b029c8. Scheduling participant, slot, and request updates now produce immutable, inspectable change plans before applying Poll/Calendar/local side effects under the existing locked transaction. Plans preserve required-participant and invitation-revocation intent without carrying raw invitation tokens; exact slot replay is a no-op; held-slot removal remains blocked; response retirement keeps its idempotency key. Validation: 80 backend tests, Ruff, Xenon (C/B/A), WebUI view-model tests (12), and UI structure checks all pass.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-scheduling#7