Releases: churichard/fluxmail
Release list
v0.8.0
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 gmailandfluxmail accounts add outlookbefore printing a connection link whenFLUXMAIL_PUBLIC_URLselects the hosted flow without a suitable OAuth application, and offer--local(#82) - [CLI / REST] Name
FLUXMAIL_PUBLIC_URLin 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
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-onlywith--read false, replace--starred-onlywith--starred true, pass a boolean to--has-attachment, treat--textas literal text, use typed syntax foremails search, and discard existing page tokens; update CLI commands before upgrading (#76) - [MCP] Breaking: MCP clients must replace the
unreadOnlyandstarredOnlysearch arguments withreadandstarred, treatlist_emails.textas literal text, use typed syntax forsearch_emails.query, and discard existing page tokens; update MCP clients before upgrading (#76) - [REST] Breaking: REST clients must replace the
unreadOnlyandstarredOnlymessage query parameters withreadandstarred, treattextas literal text, and discard existing page tokens; update REST requests before upgrading (#76) - Breaking: Custom provider authors must handle
EmailQuery.readandEmailQuery.starredinstead ofunreadOnlyandstarredOnly, treattextas literal text, add the requiredCapabilities.searchfield, 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, MCPsearch_emails, and the RESTqueryparameter, 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
Fixed
- Stop local IMAP CLI commands from hanging after completion (#72)
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Changed
- Breaking: replace
config.envand automatic working-directory dotenv loading with typedconfig.tomldeployment 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, andlistwithconfig init,config show,config migrate, and focusedoauthcommands; update scripts and integrations before upgrading (#69) - Breaking: advance shared stores to format 2 and remove the public
config.envand 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
listLabelsmethod to the publicEmailProviderinterface; custom provider implementations must add the method before upgrading to@fluxmail/core0.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 logscommand (#68) - Add daily update notices to interactive CLI commands with command-line and environment opt-outs (#65)
- Add
_FILEenvironment 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
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
AccountfieldsownerId,sharingMode,sharedMemberIds, andmemberIdwithownerMemberId,sharedWithAll, andgrantedMemberIds; 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
Changed
- Point package and registry metadata at
churichard/fluxmail, with container images atghcr.io/churichard/fluxmail(#53)
Full Changelog: v0.4.0...v0.4.1
v0.4.0
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
folderor usefolder: "all"; query either folder directly to include those messages (#49) - Breaking: add required
sharingModeandsharedMemberIdsfields toAccount, replace its deprecatedmemberIdfield withownerId, and add requiredsupplementalCapabilitiestoPermissionPolicy(#34) - Breaking: require an authenticated key with
admin.accountsforPOST /auth/connections, even whenFLUXMAIL_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, andadmin.licensecapabilities (#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/v1with 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
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, andfullpermission profiles for stdio connections and HTTP API keys, plus custom capability lists with repeated--allowoptions. Existing connections and keys keep thefullprofile. - 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
Released 2026-07-13.
Added
- Connect Gmail from Docker or a remote server through a single-use hosted authorization link. Set
FLUXMAIL_PUBLIC_URLto 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, orDO_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
- Published npm packages and Docker images now include the Fluxmail Proprietary License Agreement. Review the terms before installing or upgrading (#17).
Full changelog: v0.2.0...v0.2.1
v0.2.0
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
.envto Fluxmail, including the public URL, authentication mode, and encryption key (#9).
Full changelog: v0.1.0...v0.2.0