Let owners discard unpublished test drafts #53

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

An owner needs to remove an abandoned draft without deleting reusable material or published history. Provide a website action and an authorized API operation.

Acceptance criteria

  • Only the current owner can delete an unpublished test draft under current account permissions.
  • Deletion invalidates pending invitations for the draft. Previously issued acceptance actions cannot grant access afterward.
  • Accepted co-organizers receive a notification that the owner deleted the draft.
  • Referenced blocks, rounds, and packages remain available under their own permissions.
  • A published test cannot use this deletion operation, even if a stale form still identifies it as a draft.
  • Cancellation remains the operation for a published upcoming test and retains its history.

Validation

Race publication against deletion with separate PostgreSQL connections. Assert that a published test cannot disappear. Delete a draft with pending invitations and shared blocks. Check invalidated invitation actions, co-organizer events, and preserved reusable material.

Dependencies

An owner needs to remove an abandoned draft without deleting reusable material or published history. Provide a website action and an authorized API operation. ## Acceptance criteria - Only the current owner can delete an unpublished test draft under current account permissions. - Deletion invalidates pending invitations for the draft. Previously issued acceptance actions cannot grant access afterward. - Accepted co-organizers receive a notification that the owner deleted the draft. - Referenced blocks, rounds, and packages remain available under their own permissions. - A published test cannot use this deletion operation, even if a stale form still identifies it as a draft. - Cancellation remains the operation for a published upcoming test and retains its history. ## Validation Race publication against deletion with separate PostgreSQL connections. Assert that a published test cannot disappear. Delete a draft with pending invitations and shared blocks. Check invalidated invitation actions, co-organizer events, and preserved reusable material. ## Dependencies - [#44: Create private test drafts and publish complete announcements](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/44). Provides the private-draft and publication boundary. - [#47: Manage test co-organizers through accepted invitations](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/47). Provides invitations and accepted co-organizers to notify. ## Related work - [#72: Cancel upcoming tests and stop running tests through explicit controls](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/72) - [#22: Keep a durable notification inbox with current action status](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/22)
Sign in to join this conversation.
No description provided.