Skip to content

Releases: churichard/fluxmail

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 18:46
fba1e81

Changed

  • Relicense Fluxmail under the Elastic License 2.0, which permits use, modification, and redistribution but does not permit circumventing license key functionality or offering Fluxmail as a hosted service (#80)
  • Record the mailbox provider, OAuth flow, OAuth application kind, and installation mailbox counts in anonymous telemetry, and report the browser callback that finishes a hosted connection as completeHostedConnection; turn telemetry off to opt out (#83)

Fixed

  • [CLI] Fail fluxmail accounts add gmail and fluxmail accounts add outlook before printing a connection link when FLUXMAIL_PUBLIC_URL selects the hosted flow without a suitable OAuth application, and offer --local (#82)
  • [CLI / REST] Name FLUXMAIL_PUBLIC_URL in hosted Gmail and Outlook connection errors so the setting that selected the flow is clear (#82)

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 16:25
21e4c2c

Only the breaking entries for the interfaces you use apply. An MCP-only integration, for example, does not need the CLI or REST migrations.

Changed

  • [CLI] Breaking: CLI users must replace --unread-only with --read false, replace --starred-only with --starred true, pass a boolean to --has-attachment, treat --text as literal text, use typed syntax for emails search, and discard existing page tokens; update CLI commands before upgrading (#76)
  • [MCP] Breaking: MCP clients must replace the unreadOnly and starredOnly search arguments with read and starred, treat list_emails.text as literal text, use typed syntax for search_emails.query, and discard existing page tokens; update MCP clients before upgrading (#76)
  • [REST] Breaking: REST clients must replace the unreadOnly and starredOnly message query parameters with read and starred, treat text as literal text, and discard existing page tokens; update REST requests before upgrading (#76)
  • Breaking: Custom provider authors must handle EmailQuery.read and EmailQuery.starred instead of unreadOnly and starredOnly, treat text as literal text, add the required Capabilities.search field, and support both values for every advertised boolean filter; update custom providers before upgrading (#76)
  • [MCP / CLI / REST] Reject unsupported search filters and provider-native queries before CLI, MCP, or REST requests reach a built-in or custom provider (#77)

Added

  • [MCP / CLI / REST] Add typed portable search syntax to CLI emails search, MCP search_emails, and the REST query parameter, with parser diagnostics in MCP and REST results (#76)
  • [MCP / CLI / REST] Apply portable search normalization and capability checks consistently across CLI, MCP, REST, and email providers (#76)
  • [MCP / CLI / REST] Add signed, query-bound page tokens that expire after one hour, plus provider-aware filtered pagination with incomplete-page metadata and canonical attachment checks (#76)

Full Changelog: v0.6.1...v0.7.0

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 23 Jul 16:34
0f8bba6

Fixed

  • Stop local IMAP CLI commands from hanging after completion (#72)

Full Changelog: v0.6.0...v0.6.1

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 18:39
8993563

Changed

  • Breaking: replace config.env and automatic working-directory dotenv loading with typed config.toml deployment settings and encrypted OAuth and license records in SQLite; back up the data directory and migrate existing configuration before starting Fluxmail 0.6.0 (#69)
  • Breaking: replace fluxmail config set, unset, and list with config init, config show, config migrate, and focused oauth commands; update scripts and integrations before upgrading (#69)
  • Breaking: advance shared stores to format 2 and remove the public config.env and dotenv mutation helpers; do not open an upgraded store with an older release, and migrate package consumers to the typed configuration APIs (#69)
  • Breaking: add the required listLabels method to the public EmailProvider interface; custom provider implementations must add the method before upgrading to @fluxmail/core 0.6.0 (#66)
  • Reduce the paid license grace period after lease expiration from 21 days to 7 days (#67)

Added

  • Add CLI workflows for listing, searching, drafting, sending, forwarding, organizing, and scheduling email, plus attachment downloads (#66)
  • Add Gmail user labels and Outlook categories across providers, MCP, REST, and the CLI (#66)
  • Add authenticated REST operations for viewing, configuring, and resetting Google and Microsoft OAuth applications (#69)
  • Add bounded, redacted local error logs with configurable destinations, rotation, and the fluxmail logs command (#68)
  • Add daily update notices to interactive CLI commands with command-line and environment opt-outs (#65)
  • Add _FILE environment variables for the encryption key, OAuth client secrets, and license key (#69)

Fixed

  • Preserve existing Microsoft OAuth scopes during refresh and retry invalid passwords in interactive CLI login (#66)
  • Keep configuration updates in sync across running processes and preserve the OAuth application used by existing and in-flight account connections (#69)
  • Ignore missing Gmail labels during removal instead of failing the whole modification (#66)

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 01:52
7e6969b

Changed

  • Breaking: require member authentication for every instance, remove FLUXMAIL_AUTH=none, revoke legacy API keys during migration, and require a backup to return to an older version; back up the data directory and claim the instance before reconnecting clients (#58)
  • Breaking: replace the Account fields ownerId, sharingMode, sharedMemberIds, and memberId with ownerMemberId, sharedWithAll, and grantedMemberIds; update API clients to use the new fields (#58)
  • Breaking: make the CLI use named local or remote instances for administration, and require a logged-in local session before starting stdio MCP (#58)
  • Record CLI, MCP, and REST operations with one anonymous telemetry schema that excludes arguments, request data, identifiers, and error messages (#55)

Added

  • Add password login, member sessions, enrollment and reset flows, member status controls, scoped API keys, mailbox access grants, and append-only security audits (#58)
  • Add instance setup, login, logout, instance switching, session management, and member administration commands to the CLI (#58)
  • Add member and session authentication, self-service mailbox and API key management, and administrative member and audit operations to the REST API (#58)
  • Use Fluxmail's built-in Desktop Google OAuth app for local Gmail connections while keeping custom clients available for local and hosted setups (#56)

Fixed

  • Keep the Google OAuth client that issued each stored Gmail refresh token so existing accounts continue to refresh after an app configuration change (#60)
  • Serialize shared database migrations, stored configuration writes, and encryption key creation to protect concurrent Fluxmail processes (#59)

Full Changelog: v0.4.1...v0.5.0

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 17 Jul 01:12
ee8ec5a

Changed

  • Point package and registry metadata at churichard/fluxmail, with container images at ghcr.io/churichard/fluxmail (#53)

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@churichard churichard released this 16 Jul 01:57
6d6d2c8

Changed

  • Breaking: require every new mailbox, API key, and stdio connection to name a member; existing memberless API keys become management-only credentials and can no longer read mail (#34)
  • Breaking: identify a mailbox by its email address across providers; on first startup, keep the Gmail connection when duplicates exist, or otherwise keep the oldest connection, and remove the other duplicates (#34)
  • Breaking: exclude Spam and Trash from queries that omit folder or use folder: "all"; query either folder directly to include those messages (#49)
  • Breaking: add required sharingMode and sharedMemberIds fields to Account, replace its deprecated memberId field with ownerId, and add required supplementalCapabilities to PermissionPolicy (#34)
  • Breaking: require an authenticated key with admin.accounts for POST /auth/connections, even when FLUXMAIL_AUTH=none, and require HTTPS for remote administrative requests (#44)
  • Require mailbox owners to reassign or delete their mailboxes before removing the member (#34)
  • Separate mail permissions from the admin.accounts, admin.api_keys, and admin.license capabilities (#44)

Added

  • Add Microsoft 365 and Outlook.com support through Microsoft Graph, including local PKCE and hosted OAuth flows (#40)
  • Add a JSON REST API at /api/v1 with an OpenAPI 3.1 schema, raw attachment downloads, and stored idempotency results for sends and forwards (#41)
  • Add authenticated administrative REST endpoints for mailbox connections, API keys, and license activation, with explicit capabilities and audit records (#44)
  • Add member roles, private and shared mailbox access, selected-member sharing, and mailbox allowlists for API keys and stdio connections (#34)

Fixed

  • Check Outlook attachment metadata before downloading content when a size limit is active, avoiding unnecessary buffering for oversized files (#42)
  • Preserve the separate Trash and Archive permissions in Outlook move operations, including moves that use Microsoft folder aliases (#43)
  • Prevent hosted Microsoft OAuth responses from forwarding connection credentials through the HTTP referrer (#43)
  • Stop a pending IMAP connection immediately when its provider closes during setup (#49)

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@churichard churichard released this 14 Jul 05:46
b9a7ff5

Breaking change: download_attachment no longer accepts savePath or returns contentBase64. It now returns the file as an embedded MCP resource. Clients that call this tool directly must read the resource content instead. The default attachment limit is 10 MB and can be changed with FLUXMAIL_MAX_ATTACHMENT_MB, up to 25 MB.

Added

  • Added read-only, read-write, and full permission profiles for stdio connections and HTTP API keys, plus custom capability lists with repeated --allow options. Existing connections and keys keep the full profile.
  • Added commands to list MCP capabilities and change the permissions on an existing API key.

Changed

  • MCP clients only see tools and actions allowed by their connection's permission policy.
  • Telemetry events are batched and flushed when Fluxmail shuts down, including when a stdio client closes its input stream.

Security

  • Attachment downloads no longer accept server-side output paths. Fluxmail returns attachment bytes through MCP and enforces a configurable size limit.
  • Mailbox organization actions cannot use move destinations or Gmail system labels to bypass the dedicated archive, trash, and delete permissions.

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@churichard churichard released this 14 Jul 05:04
9be4858

Released 2026-07-13.

Added

  • Connect Gmail from Docker or a remote server through a single-use hosted authorization link. Set FLUXMAIL_PUBLIC_URL to the server's public HTTPS address; each link expires after 10 minutes (#16).
  • Anonymous CLI and MCP usage telemetry is enabled by default. Disable it with fluxmail telemetry disable, FLUXMAIL_TELEMETRY=0, or DO_NOT_TRACK=1. Telemetry excludes email data, account identifiers, credentials, file paths, and error messages (#18).
  • Fluxmail is available through the official MCP Registry as io.github.churichard/fluxmail (#19).

Changed

Full changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@churichard churichard released this 14 Jul 04:59
f305015

Released 2026-07-12.

Breaking change: Rename FLUXMAIL_BASE_URL to FLUXMAIL_PUBLIC_URL in existing Docker or remote deployment configuration before upgrading (#9).

Added

  • Connect IMAP/SMTP mailboxes and use the same tools available for Gmail to read, search, draft, send, and organize email. Fluxmail encrypts mailbox passwords at rest and supports configurable special folders (#13).

Changed

  • Docker installations now use the published GHCR image instead of building Fluxmail from source (#9).

Fixed

  • Docker Compose now passes all settings from .env to Fluxmail, including the public URL, authentication mode, and encryption key (#9).

Full changelog: v0.1.0...v0.2.0