Skip to content

v1.5.1

Choose a tag to compare

@maathimself maathimself released this 10 Jun 13:26

v1.5.1 — Inbox Rules Fix

This release fully resolves issue #133, where "move to folder" inbox rules caused messages to disappear from the inbox without arriving in the target folder.

Bug Fixes

Inbox rules — move to folder action

  • Replaced the free-text IMAP path input in the rules editor with a folder dropdown populated directly from the account's IMAP folder list, eliminating the root cause of wrong folder paths being saved
  • The rules form now fetches folders for the selected account when it opens, so the dropdown is reliable regardless of whether the sidebar has been navigated first
  • Changing the account selector clears any saved move destination to prevent stale paths from a previously selected account carrying over
  • Opening an existing rule for editing now normalizes any legacy rules that somehow contain multiple destination actions (move + archive, etc.)
  • Backend create and update endpoints now enforce that only one destination action (move, archive, or delete) is kept per rule, silently dropping any extras
  • Move destination paths are trimmed of whitespace before saving so what is validated matches what is stored and later executed
  • For account-scoped rules, the backend now validates that the move destination folder exists in the synced folder list before saving, returning a clear 400 error instead of silently saving a rule that will fail at runtime
  • Execution-time deduplication added: legacy rules already in the database with multiple destination actions now correctly execute only the first one, without requiring a manual edit-and-save
  • A failing destination action (e.g. wrong folder path) no longer causes a subsequent archive or delete to run as a silent fallback — the message stays in the inbox and the error is logged
  • No-op destination actions (blank move destination, unconfigured archive folder, no trash strategy) no longer incorrectly remove messages from the new-message broadcast
  • normalizeActions now safely handles malformed API input such as null entries or non-string values without throwing a 500
  • Fixed keyboard j/k navigation marking the wrong message as read when a search is active
  • Translated the folder picker prompt correctly in German, Spanish, French, Italian, Russian, and Chinese (Simplified)

Tests

  • 12 unit tests for normalizeActions covering deduplication, trimming, and malformed input
  • 6 integration tests for applyInboxRules covering execution-time deduplication, no-op handling, and the silent-fallback regression case