Cancel upcoming tests and stop running tests through explicit controls #72

Open
opened 2026-11-01 20:12:40 +00:00 by viacheslavshuka · 0 comments

Cancellation before start and interruption during testing need distinct outcomes. Preserve participation that already occurred and avoid default attendance for interrupted tests.

Acceptance criteria

  • An authorized organizer can cancel an upcoming test. Moderators can cancel problematic upcoming tests with a reason.
  • Cancellation stops registration, releases offers, notifies affected users, and preserves the cancelled test, ownership attribution, and history.
  • Cancellation does not automatically reactivate commitments later. A replacement is a new test.
  • If a future test loses its last eligible organizer through moderation, cancel it and notify participants. If another eligible accepted organizer remains, the test continues.
  • If moderation stops a running test or removes its last eligible organizer, end it early and notify participants.
  • An interrupted test does not receive ordinary automatic full-attendance completion. A moderator records or corrects actual attendance through the existing controls.
  • Preserve actual partial participation and its normal credit. Do not classify a partly held test automatically as never held.
  • There is no reversible moderator-suspension state. Marking a completed test as never held remains a separate correction.
  • User-visible status, API transitions, audit records, and emitted notification events distinguish cancellation from early ending.

Validation

Race cancellation with offer acceptance and automatic completion. Remove the last eligible organizer before start and during a running test. Assert cancellation in the first case and interruption without default attendance in the second.

Dependencies

Cancellation before start and interruption during testing need distinct outcomes. Preserve participation that already occurred and avoid default attendance for interrupted tests. ## Acceptance criteria - An authorized organizer can cancel an upcoming test. Moderators can cancel problematic upcoming tests with a reason. - Cancellation stops registration, releases offers, notifies affected users, and preserves the cancelled test, ownership attribution, and history. - Cancellation does not automatically reactivate commitments later. A replacement is a new test. - If a future test loses its last eligible organizer through moderation, cancel it and notify participants. If another eligible accepted organizer remains, the test continues. - If moderation stops a running test or removes its last eligible organizer, end it early and notify participants. - An interrupted test does not receive ordinary automatic full-attendance completion. A moderator records or corrects actual attendance through the existing controls. - Preserve actual partial participation and its normal credit. Do not classify a partly held test automatically as never held. - There is no reversible moderator-suspension state. Marking a completed test as never held remains a separate correction. - User-visible status, API transitions, audit records, and emitted notification events distinguish cancellation from early ending. ## Validation Race cancellation with offer acceptance and automatic completion. Remove the last eligible organizer before start and during a running test. Assert cancellation in the first case and interruption without default attendance in the second. ## Dependencies - [#69: Restrict participation and organizing capabilities with reversible expiry](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/69). Provides restrictions and loss of eligible organizers. - [#62: Close registration at start and complete ended tests automatically](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/62). Provides lifecycle transitions and completion guards. - [#65: Correct attendance and group familiarity without erasing history](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/65). Provides actual attendance for interrupted tests. ## Related work - [#50: Transfer test and material ownership only after recipient acceptance](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/50) - [#51: Schedule another test from a previous test](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/51) - [#53: Let owners discard unpublished test drafts](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/53) - [#22: Keep a durable notification inbox with current action status](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/22) - [#29: Deliver Telegram notifications with bounded retries and current permissions](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/29)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
viacheslavshuka/quorum#72
No description provided.