Skip to content

v0.18.0

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Nov 09:34
7d60087

0.18.0 (2026-10-28)

Features

  • Add throttle for transactional emails and workflows (f228961)
  • api: let headless senders point List-Unsubscribe at their own one-click link (50be3c9)
  • let headless senders point List-Unsubscribe at their own one-click link (d5c5f89)
  • Verify SES configuration sets on startup (2f3cb50)

Bug Fixes

  • api: encode non-ASCII headers and attachment filenames (ea3e7ae)
  • api: encode non-ASCII headers and attachment filenames (de90dae)
  • api: honour data-plunk-one-click for headless sends only (6f9cebf)
  • api: verify request origin on session-authenticated routes (00177cc)
  • api: verify request origin on session-authenticated routes (6eacbfc)
  • Cancel workflow executions and scheduled campaigns when a project is disabled (cf2d384)
  • contacts: honour the status filter in select-all bulk actions (0fe3b07)
  • contacts: honour the status filter in select-all bulk actions (d794c5a)
  • Correctly end job if last step of workflow is delay (18f18c1)
  • landing: Remove inbound attachment and threading claims (beac2e3)
  • mcp: page through campaigns and templates with page/pageSize (e720913)
  • mcp: page through campaigns and templates with page/pageSize (28e0aa4)
  • mcp: read the bare array GET /segments returns in plunk_list_segments (3de3369)
  • mcp: read the bare array GET /segments returns in plunk_list_segments (674c2f5)
  • Only accept SNS messages from topics in our own AWS account (4c84f64)
  • segments: filter by segment membership without loading members (5848c60)
  • segments: filter by segment membership without loading members (d44788f)
  • segments: scope referenced segments to the project (ce58df5)
  • templates: only accept filters that keep the unsubscribe URL intact (6f2508c)
  • templates: recognise spaced unsubscribe placeholders in the headless warning (3e7ee20)
  • templates: recognise spaced unsubscribe variables in the headless warning (dd2c6c0)
  • webhooks: ignore opens SES marks as automated (3c1af34)
  • webhooks: ignore opens SES marks as automated (032b868), closes #531
  • web: refetch project data once the active project is known (537d5a4)
  • web: refetch project data once the active project is known (b7e1265)
  • web: start from an empty cache after signing out (1097f0c)
  • workflows: keep cancelled executions from resuming (189b907)
  • workflows: keep cancelled executions from resuming (7792d6b)
  • workflows: mark only the step that failed (2c11c81)
  • workflows: mark only the step that failed (ee8db3f)
  • workflows: resume a waiting step once (d0f5471)
  • workflows: resume a waiting step once (9c333bb)
  • workflows: treat a zero wait timeout as no limit (0ab8bf9)
  • workflows: treat a zero wait timeout as no limit (006cc4c)

Performance Improvements

  • contacts: serve the contact field list from Redis (627f7e9)
  • contacts: serve the contact field list from Redis (af0007f)

Code Refactoring

  • web: correct comments around the active project choice (df2f38b)

Documentation

  • Add open tracking and workflow improvements to the changelog (1fe84b5)
  • document data-plunk-one-click for sender-hosted one-click unsubscribe (77e85b8)
  • tracking: explain how automatic opens are left out (9805c18), closes #531
  • workflows: say what cancelling an execution stops (cf264fa)
  • workflows: suggest the email event names workflows receive (bf6a6ef)
  • workflows: suggest the email event names workflows receive (2eac0dd)