Skip to content

Destructive Actions

Destructive actions change your mailbox or future-mail behavior. Herald routes these through confirmations, progress reporting, read-only checks, and a serialized worker so you can see what is happening.

Delete, archive, unsubscribe, and hide-future-mail are available from Timeline and Cleanup depending on context. Bulk delete/archive is strongest in Cleanup; single-message actions are available from previews and selected rows.

AreaWhat it shows
Confirmation status barAction description plus y confirm and n/Esc cancel.
Delete/archive progressCurrent sender or message and completed/total request count.
Preview action lineu unsubscribe when available and h hide future mail.
Selection columnsCleanup summary/detail selection markers that define bulk targets.
Read-only statusDiagnostic mode that blocks mutations.
Dry-run flag[DRY RUN] when runtime mode avoids live mutation for supported cleanup paths.
KeyContextPreconditionsResult
DTimeline/CleanupTarget exists, not read-only, not already deleting.Opens delete confirmation or queues current preview email.
eTimeline/CleanupTarget exists, not read-only, not already deleting.Opens archive confirmation or queues current preview email.
y / YConfirmationDelete/archive/unsubscribe confirmation active.Confirms the pending action.
n / NConfirmationConfirmation active.Cancels the pending action.
escConfirmationConfirmation active.Cancels the pending action.
uTimeline/Cleanup previewBody includes List-Unsubscribe and not read-only.Opens unsubscribe confirmation.
h / HTimeline/CleanupCurrent sender exists.Creates hide-future-mail behavior for the sender.
spaceCleanupSummary or details focused.Selects bulk delete/archive targets.
  1. Open Cleanup with 3.
  2. Use space to select sender/domain rows or individual messages.
  3. Press D.
  4. Read the confirmation text.
  5. Press y only if the target is correct.
  1. Select rows or messages in Cleanup.
  2. Press e.
  3. Confirm with y.
  4. Watch progress in the status bar.
  1. Open a Timeline or Cleanup preview.
  2. Confirm the action line includes unsubscribe.
  3. Press u.
  4. Read the confirmation.
  5. Press y to run the unsubscribe method.
  1. Focus a sender row or open a preview.
  2. Press h.
  3. Herald saves backend behavior to hide matching future mail.
StateWhat happens
Confirmation activeNormal status is replaced until y, n, or esc.
Worker queueDelete/archive requests are processed serially.
RetryConnection errors can be retried with backoff.
ReconnectingStatus reports reconnecting during deletion work.
ArchiveMessage is moved through backend archive behavior and cache state updates.
DeleteMessage is copied/moved toward Trash when possible, marked deleted, expunged, and removed from cache.
Unsubscribe unavailableu does nothing unless the body has List-Unsubscribe.
Read-only diagnosticMutations are blocked, especially in All Mail only.
Dry-runStatus marks dry-run mode for supported cleanup paths.

Delete/archive operations mutate the configured IMAP mailbox and SQLite cache. Delete attempts Trash-folder semantics before expunging. Archive moves mail according to backend behavior. Unsubscribe may open a URL, copy a URL or mailto target, or perform a one-click unsubscribe method depending on header data. Hide-future-mail writes a local/backend rule for matching future mail.

If D or e appears inactive, check for read-only folder mode, active deletion progress, or missing selection.

If deletion progress stalls, open logs with l after the UI is usable and check provider connectivity.

If unsubscribe opens a browser or copies a URL instead of silently completing, that behavior comes from the message’s unsubscribe header method.

If mail reappears after delete/archive, refresh with r and verify provider Trash/Archive semantics.