Fluxmail
Upgrade guides

Upgrade to 0.7.0

Migrate search filters, typed search strings, provider capabilities, and page tokens.

Fluxmail 0.7.0 gives CLI, MCP, REST, and package clients the same portable search contract. Existing mailbox data and credentials do not need a database migration, but search clients and custom providers must update before upgrading.

Query changes

Replace unreadOnly with read and replace starredOnly with starred. The new fields accept both boolean values:

{
  "read": false,
  "starred": true,
  "hasAttachment": false
}

hasAttachment is also a true tri-state filter. An omitted value does not filter messages, true requires a non-inline attachment, and false excludes messages with a non-inline attachment.

The text field is now literal. Gmail and Outlook operators inside text no longer reach the provider as operators. Move Gmail search syntax or Outlook KQL to rawProviderQuery.

Dates now require YYYY-MM-DD. Fluxmail treats after as inclusive and before as exclusive UTC boundaries over the received or provider internal time. A query fails when after is not earlier than before.

CLI and MCP search strings

The positional value for fluxmail emails search and the MCP search_emails.query field now use typed portable syntax:

from:ann@example.com is:unread after:2026-07-01 quarterly report

See Email search for the grammar. Use rawProviderQuery through a structured list request when an integration needs Gmail or Outlook syntax.

The CLI search flags now accept explicit boolean values:

fluxmail emails list --read false --starred true --has-attachment false

Capability changes for package users

Capabilities has a required search field. It lists portable filters, folder-role availability, and native query support. serverSearch remains deprecated throughout 0.7.x so clients have time to migrate.

Custom providers must implement both values of every boolean filter they advertise. Omit a filter from search.filters when the provider cannot implement both values correctly.

Fluxmail returns unsupported_capability without running the search when an account reports that a filter or native query is unavailable. Capabilities marked unknown are checked when the request runs.

Custom folders do not participate in portable capability intersection. Discover them on the selected account with listFolders().

Page tokens

All page tokens issued before 0.7.0 are invalid immediately. Start each paginated search again without a token.

New tokens are signed by the Fluxmail server and expire after one hour. A continuation request must use the same account, normalized query, and page size. Replacing the instance encryption key invalidates outstanding tokens.

Desktop integration

Desktop clients should use the parser, formatter, diagnostics, and capability helpers exported by @fluxmail/core. Remove autocomplete entries for unsupported boolean expressions and relative dates. Keep provider-native queries limited to one account.

An incomplete page may be empty even when more candidates exist. Follow a small number of empty incomplete pages automatically, then let the person choose whether to continue.

Last updated