01must proveProposed | Permanent bounces and complaints suppress the workspace address, withholding subsequent mail without provider submission. no proof recorded yet | lifecycle | service | test |
02must proveProposed | Canonical addresses identify suppression entries; repeated suppression preserves the current reason and creates no duplicate entry. no proof recorded yet | invariant | service, database | test |
03must proveProposed | Suppression-create permission allows an address and optional note; whitespace-only notes are omitted, and malformed or blank addresses produce field-specific refusals. no proof recorded yet | validation | api, service | test |
04must proveProposed | Release requires an explanation and records actor and reason while retaining history; missing or already-released entries are not found; a released address may be suppressed again. no proof recorded yet | lifecycle | api, service | test |
05Proposed | Suppression lists are newest first and normally show active entries; Including released entries is optional; pages default to fifty and cap at two hundred. | policy | service | test |
06must proveProposed | Reserved demonstration domains, including example.com relatives and .test, .example, .invalid and .localhost suffixes, are withheld in every environment; other request recipients continue independently. no proof recorded yet | policy | service | test |
07must proveProposed | Nonproduction sends allow only test mailboxes and configured permitted addresses or domains; other primary and copy recipients are withheld. no proof recorded yet | policy | service | documented |
08must proveProposed | Verified workspace sender addresses take precedence over Rhythm's shared sender; Selection is cached per process for one minute; template and request settings determine display names. no proof recorded yet | policy | service | test |
09must proveProposed | Each workspace has one sender setting using domain, address or combined verification; Domain strategies require a domain; address-only omits it; Addresses match the verified domain exactly rather than a subdomain, and verified state includes its verification time. no proof recorded yet | validation | service, database | test |
10must proveProposed | Provisioning creates or adopts the identities needed for the selected strategy, retains applicable DNS instructions and existing verification state, and does nothing when no identity is requested. no proof recorded yet | lifecycle | service | test |
11must proveProposed | Provider refresh reports verified when any identity can send, pending while DNS is missing, and failed when none can send and a provider identity failed; the first verification time remains permanent. no proof recorded yet | calculation | service | test |
12must proveProposed | Workspace deletion removes provider identities before the setting and reports deletion failure rather than claiming success while an identity remains; request and body cleanup is confined to the workspace prefix. no proof recorded yet | lifecycle | service | test |
13Proposed | Platform invitation and password messages always use Rhythm's Platform sender rather than association identity. | policy | service | documented |
14must proveProposed | Verification refresh reads provider state and writes the resulting setting and latest check time, preserving the first verified instant. no proof recorded yet | lifecycle | service | observed |
15must proveProposed | Purge removes both newly created and adopted provider identities and verifies absence before recording removal. no proof recorded yet | lifecycle | service | observed |