v2.21.0
Builds on the sandbox Release action from v2.20.0 with new dashboard capabilities and important fixes.
New
- Delete a message (#24). A Delete button on the message detail page removes a record from the stored history — for scrubbing PII or purging something that shouldn't have been kept. It deletes the message and its timeline; resends of it survive (their link is nulled), and other recipients of the same email are separate records, left untouched. The confirm dialog is explicit that this only removes Postmaster's record — it does not recall or unsend an email that already went out.
postmaster:verifyruns under sandbox mode (#21). Instead of refusing whenPOSTMASTER_DELIVERY=sandbox, verify now warns that delivery is sandboxed and sends a single test email that bypasses the sandbox — so you can confirm the whole webhook round trip before switching delivery tonormal. Your delivery setting is left unchanged.
Fixed
- Release no longer creates a duplicate message under a real provider transport (#23). The marker that identified a release could fail to survive the send with a real transport (it held with the
log/arraymailers, which hid the flaw), causing a brand-new message to be written instead of the sandboxed row being reconciled in place. Release now flags itself out-of-band for the duration of its synchronous send, so it can't be lost in transit — regardless of provider. - Resend is gated on the message, not the delivery mode (#22). A message that was released — and so is genuinely sent — is now resendable like any other sent message, even while sandbox mode is on. A sandboxed message still shows Release instead of Resend.
Full suite: 309 tests, 884 assertions. See #21, #22, #23, #24.