Releases: useplunk/plunk
Releases · useplunk/plunk
v0.12.0
0.12.0 (2026-06-21)
Features
- add composite index on campaignId and status for efficient campaign completion checks (4b752a5), closes #400
- add disabledReason field to projects for better tracking of disable reasons (94ceadb)
- api: allow API key authentication for domain endpoints (d2496bc)
- bulk delete for workflows and campaigns (a05034e)
- Contacts: add subscription status filter and enhance query capabilities (8564016)
- contacts: make email cell a link to the contact detail page (6759bff)
- contacts: make email cell a link to the contact detail page (6d98d51)
- EmailService: add worker concurrency settings and improve email queue prioritization (80beb2b)
- extend table view to workflows and campaigns list pages (e932b2d)
- i18n: add Japanese (ja) translations (e399d0c)
- i18n: add Japanese (ja) translations (f34c0e1)
- implement deterministic avatar gradient generation for user accounts (e0e79cc)
- introduce DataTableFilter and FacetedFilterMenu for unified filtering experience (44e4e45)
- make detectCustomHtmlPatterns aware of TipTap's actual capabilities (9797aed)
- make detectCustomHtmlPatterns aware of TipTap's actual capabilities (ba3813e)
- normalize email addresses for contacts to handle case-variants and whitespace (05c8041), closes #403
- refactor DashboardLayout to use DropdownMenu for project and user menus (9cbd5c0)
- render template variables in WEBHOOK step url, headers and body (bfecf04)
- render template variables in WEBHOOK step url, headers and body (c484da8)
- SecurityService: enhance phishing detection by verifying sender domains and institutional TLDs (6ab4d77)
- SecurityService: enhance phishing detection by verifying sender domains and institutional TLDs (edfc399)
- table view with sorting, faceted filters, and bulk delete for templates, workflows, and campaigns (4ccb3d2)
- tanstack table view with sorting, faceted filter, and bulk delete for templates (55a0c4f)
- tests: enhance test database setup and cleanup for improved isolation and performance (32dd7bb)
Bug Fixes
- coerce boolean and numeric values in custom CSV columns (4a145f3)
- dashboard: table empty-state recovery, bulk button sizing, workflow status+steps, header casing (157ff34)
- filters: land templates/workflows/campaigns search inputs at 32px to match filter buttons (283f402)
- make email templates, campaigns and workflow search inputs same height as the rest of the app (8b3657d)
- safeguard JSON data handling in contacts migration to ensure proper object types (55a5e4d)
Code Refactoring
- database: increase Prisma connection pool limits for improved test performance (71e2277)
- SecurityService: update absolute count ceilings for new projects to improve spam detection (4de40f4)
Documentation
- add env-var sync rule to CLAUDE.md (a348d37)
- add new recipe pages for waitlist and sync unsubscribes (01ec34a)
- correct PHISHING_CONFIDENCE_THRESHOLD default in CLAUDE.md (5c16679)
- env: add wiki-documented vars to apps/api/.env.example (81315ea)
- env: sync .env.self-host.example with missing variables (1c1c95d)
- env: sync env example files, fix CLAUDE.md drift, add process rule (6ebbb50)
- wiki: document MAIL_FROM_SUBDOMAIN and NGINX_PORT env vars (971b98a)
v0.11.0
0.11.0 (2026-05-13)
Features
- Ability to change subscription status in workflows (fadc19d)
- add 'notTriggeredWithin' operator to segment filters for enhanced event tracking (0f00ca1)
- add external link to edit email templates in SendEmailStepDialog and WorkflowBuilder (4ba43dd)
- add Markdown cut link to footer and page for improved accessibility (ccd516e)
- add project switching functionality to command palette (5724ab9)
- add sanitize-html for improved email content sanitization (735acff)
- add search functionality to campaigns list with debounce effect (d114950)
- add segment membership operators and enhance segment filter functionality (a3cc622)
- add SwitchOffer component to promote switching from competitors for enhanced user engagement (6195b39)
- add workflow duplication functionality with API endpoint and UI button (c6340a1)
- enhance campaign scheduling and audience settings UI for better clarity and usability (7658a59)
- implement bulk contact action selector for improved flexibility in bulk operations (de6335e)
- implement caching for recent activity count to optimize performance and reduce database load (f22da4a)
- implement early fraud warning handling in webhooks (48425d1)
- make MAIL FROM subdomain configurable via MAIL_FROM_SUBDOMAIN env (463301b)
- make MAIL FROM subdomain configurable via MAIL_FROM_SUBDOMAIN env var (e0bf0f6)
- refactor template editing layout for improved usability and clarity (aaf5ac6)
Bug Fixes
- enhance campaign finalization process to handle pending emails and ensure accurate status updates (2529c9b)
- enhance email content parsing and logging for better debugging (4587e9d)
- enhance project name validation to exclude invisible and decorative characters (29883ff)
- enhance Quick Start card layout for improved responsiveness and usability (649bbf6)
- handle undefined path in footer component for improved stability (715961c)
- implement mergeContactData method for efficient contact data updates (a27d564)
- improve iframe height adjustment logic in EmailEditor component (9e4aa94)
- pass DISABLE_SIGNUPS and EMAIL_RATE_LIMIT_PER_SECOND through compose; trim .env.self-host.example (8a26d60)
- pass missing env variables from .env.self-host.example to plunk service (f178c59)
- replace font loading method with utility function for improved performance (ba23a1c)
- update activity item colors and backgrounds for improved visual distinction (e43f70d)
- update middleware matcher to exclude webmanifest files (cbb3bff)
- update not found handling in GET route to return 404 response (7615b62)
- update segment filter logic to retain value and unit, enhance activity name mapping (d1f357c)
- update segment filter logic to retain value and unit, enhance activity name mapping (a126563)
- update TemplateSearchPicker to maintain selected template name on change (2ea1802)
Code Refactoring
- convert forwardRef components to function components for consistency (361ec0b)
- implement step dialog components for workflow editing (ed9027b)
- remove unused .png files (2d05c3f)
Documentation
v0.10.0
0.10.0 (2026-05-01)
Features
- add className prop to EmptyState component for custom styling (c278a0f)
- add configurable attachment limits for email service (2eb4079), closes #358
- add middleware support for .md file rewrites (0b3aa28)
- add updateActiveProject function for in-place project updates (6f31fa2)
- enhance contact addition with bulk email lookup and subscription options (bb72911)
- enhance contact data handling by filtering empty strings and allowing null to delete fields (1094651)
- Enhance ease of use of workflow editor (c910d20)
- implement CommandPalette for enhanced navigation and recent pages tracking (1c89ed0)
- implement meter event processing with queue for Stripe billing (e048fc1)
- implement phishing detection using OpenRouter API with configurable sampling rate (2da8b06)
Bug Fixes
- Add in-memory cache for lower-confidence phishing checks (208c809)
- add new configuration options for phishing detection thresholds (c0e0ad8)
- add project name and sender email parameters to phishing content check (1637d54)
- add project name and sender email parameters to phishing content check (15294a4)
- Consistency across buttons and labels (c1bcd35)
- Consistency across cards (517753c)
- Content negotiation for xml and txt (c8190b9)
- Harmonize rings and hover states (f40cc86)
- improve layout and accessibility of workflow header and buttons (ab3edd7)
- log message for projects passing phishing checks (8628754)
- prevent unnecessary state updates in search input effect (98f1e80)
- reconcile totalRecipients in CampaignService to prevent stuck campaigns (4322de9), closes #348
- ses: emit List-Unsubscribe inside the header section, not the body (11c428d)
- standardize step type labels and update visual styles in workflow components (bdc9b30)
- Sync display name in TemplateSearchPicker when initialName changes (3649392)
- Sync display name in TemplateSearchPicker when initialName changes (cbde3cc)
- turn warning into success log (b7eb254)
- update phishing confidence threshold to 95% (bb78c86)
- update project disabled messages for clarity and consistency (d7eb85f)
- update project icon colors for improved visibility and consistency (5f741c6)
- update response format for phishing analysis and improve JSON parsing comment (91d0d2d)
v0.9.0
0.9.0 (2026-04-20)
Features
- Add accept/markdown to apps/landing (df76be1)
- Add emailId field to webhook events for better correlation with send requests (ae64c2d), closes #344
- Add headless template type (fb5aa87)
- Add onboarding flow (bd5a085)
- Add type to campaign (d24259e)
- Block domain changes for disabled projects with appropriate error handling (44c8657)
- Disable projects on failed payment (3343e89)
- Enhance email processing to include parsed HTML body content in inbound email records (e339508), closes #342
- Enhance login forms with last used authentication method (f2ebce0)
- Enhance security metrics handling with new thresholds and improved messaging (c0b2aba)
- implement AWS SNS signature verification in SecurityService (b79d416)
- integrate DOMPurify for sanitizing HTML content (bf12392)
- Update new project bounce thresholds for stricter email handling (5e62f51)
Bug Fixes
- Enhance email processing to support campaign types and improve unsubscribe logic (9e2400c)
- Hint custom event names in combobox when no matches are found (3214f6c)
- Implement content negotiation for markdown and html in middleware (37ed1e4)
- Implement SSRF protection in webhook handling with safeFetch method (2c5a715)
- Refactor date filtering logic for pagination in ActivityFeed and ActivityService (52cb2b6)
- Update language validation regex to support locale variants (7834b9e)
Documentation
- Add content negotiation to apps/wiki (545d733)
v0.8.0
0.8.0 (2026-03-31)
Features
- Add multi-branch workflow conditions (switch/case) (92949b7)
- i18n: add Chinese translations (zh-TW, zh-HK, zh-CN) (33df563)
- i18n: add Italian translation (7b6872c)
Bug Fixes
- Adapt SNS Webhook validation regex pattern to also support AWS eusc partition (7b6540a)
- add alt text to email badge image (3b39d84)
- broken links to next-wiki.useplunk.com (e3ea5fb)
- Connect branches smoothly to original node (2c3e897)
- Enhance email step configuration validation and recipient handling (b50b5af)
- Enhance email step configuration validation and recipient handling (a99cde8)
- normalize field references and handle undefined values in JSON (b9d692c)
- Prevent switching if nodes are attached to multi-branch (c32b54f)
- update old references to next.useplunk.com (44987d2)
- visual editor preview (4451e92)
Documentation
v0.7.1
v0.7.0
0.7.0 (2026-03-05)
Features
- api: support inline images in emails using Content-ID (9b15b93)
- Sort projects alphabetically in the dashboard and fix layout (64bd094)
- Static segments (4b51e38)
Bug Fixes
- Add support for STATIC segment type in CampaignService (7bd098b)
- correct cookie domain for .local TLD hostnames (59aa784)
- Correctly set domain status on manual verify (21af8fe)
- Do not unsubscribe existing contacts (2c4d95e)
- Support any locale on creation (ec1f4c9)
- Verify SNS URL before sending fetch request (b8f1ad9)
Documentation
- Static segments (e8a247f)
v0.6.0
0.6.0 (2026-02-19)
Features
- Ability to change workflow trigger (eec37ec)
- Add billing for inbound (3330d83)
- Add billing for inbound (de7ed84)
- Add dedicated received type (f947ee6)
- i18n: Add Spanish language (9c69c7a)
Bug Fixes
- Enhance email bounce notification with latest bounce details (e639c72)
Documentation
- Add receiving emails functionality and update DNS records documentation (b426986)
v0.5.0
0.5.0 (2026-02-17)
Features
- Ability to disable signups and disable email verification for self-hosters (9316564)
- add "olderThan" segment filter operator (b5fa21a)
- Add additional checks for website, NS records and personal emails (0a67a82)
- Add advanced DNS configuration (7964563)
- Add bounce and complaint filter to activity feed (c85df75)
- add documentation link and redirect to WIKI_URI (4c81d9e)
- Add inbound handling (d050b55)
- Add initial handling in webhook for inbound (e01dc40)
- Add initial handling in webhook for inbound (c286f49)
- add minimum thresholds for bounce and complaint rates (d55dda3)
- Add support for custom email recipients in workflow steps (78d3d22)
- i18n: Add Bulgarian translations (663bc2b)
- i18n: add Czech locale translations (14c471e)
- i18n: add Polish locale translations (7a6df77)
- i18n: add Polish locale translations (d2d779c), closes #246
- i18n: Add Portuguese translations (c2afb2d)
- Integrate NuqsAdapter for improved state management and query handling (0cf0a26)
- Remove domain from AWS if no longer in use by other projects (e6baace)
Bug Fixes
- added missing services:down script, added "win32" to supportedArchitectures for yarn package installation, added missing required WIKI_URI to .env.example of api (ddbe523)
- Center "Add Step" nodes below parent nodes and update positions on drag (e4e334c)
- Enhance email activity filtering by adding date range checks (ad0c17d)
- Ensure template type is loaded before rendering Select (8a38766)
- Implement merging for activity updates to preserve component state (0d4b694)
- Improve bounce handling logic to differentiate between permanent and transient bounces (7df43d8)
- Improve email verification logic by prioritizing MX record checks and clarifying domain existence validation (26800a8)
- Refactor Redis keys to prevent multiple messages on concurrent requests (4db1ccc)
- Remove 'Optional' label from MAIL FROM Domain and Inbound Email headings (f9b1354)
- Update contact subscription logic for upsert operations (a928666)
- Update URL replacement logic to handle runtime paths and add warnings for missing files (c07816c)
Code Refactoring
- remove unnecessary logging for segment processing (42ceb6e)
Documentation
v0.4.0
0.4.0 (2026-01-08)
Features
- Add cooldown to resend verification email (457c829)
- Add email verification on signup (fb02051)
- Add forwarding domains as verification check (e732c76)
- Add id as reserved field in templates, campaigns and workflows (7386441)
- Add platform emails for domain verification and expiration (19554e6)
Bug Fixes
- Add better validation for sender email (e75e07f)
- Catch unknown content-type headers (a5c5754)
- Check email volume for 7-day window (492beb0)
- Copy types build files (49824af)
- Enhance CORS handling to allow requests with rejection logging (718251c)
- Migrate over to new pagination format in dashboard (8790c45)
- Reentry into segment not working after exit (4dce71a)
- Refactor CORS handling to allow unrestricted access for public API endpoints (940c893)
- Update sentCount on campaign sent for correct overview stats (ee00eb3)
- Update template fetching to use Template type and simplify body access (b6c5471)
- Update templates data fetching to use PaginatedResponse type (fa22b82)
Documentation
- Add more details about personalisation (940a4d2)