Repository navigation
Releases: frostyard/frostmail
Releases · frostyard/frostmail
Release list
v0.4.1
What's Changed
- ci(flatpak): release the Flatpak by promoting an attested candidate by @frostyard-machines in #145
- ci(release): tag each release on its tested candidate's commit by @frostyard-machines in #147
- docs(plan-0013): record Phase 8's candidate install and Phase 9's clean-install gate by @frostyard-machines in #146
- docs(plan-0013): record Brian's gate decisions; Phase 9 is done on rc.2 by @frostyard-machines in #148
- docs(plan-0013): record the Phase 10 install check of v0.4.0 by @frostyard-machines in #150
- fix(app): keep an open request until the window is connected by @frostyard-machines in #151
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- feat(mailctl): mailctl import and the move note from a host install (plan 0013, Phase 7) by @frostyard-machines in #135
- fix(flatpak): a notification's click opens the window in a sandbox of its own by @frostyard-machines in #136
- fix(app): account setup shows maild's error when the keyring refuses by @frostyard-machines in #137
- fix(mailctl): import starts the Flatpak's maild again, so an open window reconnects by @frostyard-machines in #138
- docs(plan 0013): the desktop VM check of Phases 4 to 7 by @frostyard-machines in #139
- build(deps): bump clix to v0.5.0 by @frostyard-machines in #140
- fix(mailctl): take a connection that ends during rpc.shutdown as an ask by @frostyard-machines in #141
- docs(plan 0013): the OAuth check of Phase 4 passed on the desktop VM by @frostyard-machines in #142
- ci(flatpak): publish vX.Y.Z-rc.N candidates without moving latest by @frostyard-machines in #143
- test(secrets): set the readable file's mode explicitly by @frostyard-machines in #144
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- feat(secrets): the Flatpak's maild keeps its secrets in its own keyring namespace (plan 0013, Phase 4) by @frostyard-machines in #130
- build(deps): lodge kit v0.3.1 (Client.Call keeps a reply at close) by @frostyard-machines in #133
- feat(app): first run and the change of mode in the Flatpak (plan 0013, Phase 6) by @frostyard-machines in #131
- feat(app): Save As through the file chooser portal, and attaching by bytes, in the Flatpak (plan 0013, Phase 5) by @frostyard-machines in #132
- fix(packaging): declare user lodge in the sysusers.d entry by @frostyard-machines in #134
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- feat(flatpak): build the desktop app as a Flatpak in CI by @frostyard-machines in #122
- docs(adr): accept ADR-0045 (Brian, 2026-10-26) by @frostyard-machines in #123
- fix(secrets): make the default collection and end a prompt wait when the service leaves by @frostyard-machines in #124
- docs(adr): ADR-0046, the desktop Flatpak carries its own maild; plan 0013 for M6 by @frostyard-machines in #125
- feat(flatpak): bundle maild and mailctl, and run one local maild (plan 0013, Phases 2 and 3) by @frostyard-machines in #126
- docs(adr): accept ADR-0046; ADR-0013, 0041 and 0045 amended in part by @frostyard-machines in #127
- fix(flatpak): the launcher does not wait on a stalled portal by @frostyard-machines in #128
- feat(packaging): make maild's secrets key at first start (ADR-0047) by @frostyard-machines in #129
Full Changelog: v0.1.0...v0.2.0
v0.1.0
What's Changed
- ci: run make ci's gates on GitHub Actions by @bketelsen in #1
- docs: add screenshots of the app on made-up mail to the README by @bketelsen in #2
- fix(imapserver): deliver updates queued before IDLE starts by @bketelsen in #3
- Plan M4.5 (contacts, calendars, tasks) and run task cards with Codex by @bketelsen in #4
- M4.5 Phases 1 and 2: contracts, DAV sync and People by @bketelsen in #5
- M4.5 Phase 3: calendars, the Calendar module and reminders by @bketelsen in #6
- M4.5 Phase 4: tasks, the To-Do bar and invitations (into main) by @bketelsen in #8
- M4.5 Phase 5 groundwork: record, scrub and replay DAV and Tasks sessions by @bketelsen in #9
- build: name Go's toolchain in go.mod for mise by @bketelsen in #10
- fix(pimsync): sync Google's CardDAV, which refuses a first sync-collection by @bketelsen in #11
- feat(settings): choose contacts, calendars and tasks when adding an account by @bketelsen in #12
- fix(oauth): close the sign-in port before the browser gets its page by @bketelsen in #13
- test(pimsync): replay a new Gmail account's contacts, calendars and tasks by @bketelsen in #14
- fix(engine): show each of a contact's addresses once by @bketelsen in #15
- fix(mailsync): keep a new sync window when a pass of the old one ends late by @bketelsen in #16
- fix(reminders): catch up only on alarms due while maild was stopped by @bketelsen in #17
- fix(pimsync): verify confirms what is missing and checks task lists; name unnamed collections by @bketelsen in #18
- fix(pimsync): follow the Location a server gives a new object by @bketelsen in #19
- feat(identity): add and remove an account's addresses; an invitation is no conflict with itself by @bketelsen in #20
- fix(invitations): mail the reply the server will not send (ADR-0022) by @bketelsen in #21
- feat(calendar): the server's default calendar, and Use as Default Calendar by @bketelsen in #22
- fix(invitations): answer once; read iCloud's default calendar by @bketelsen in #23
- docs(icloud): Apple Reminders is out of reach; Settings says why by @bketelsen in #24
- feat(engine): copy messages, filter by attachments, keep read rows by @bketelsen in #25
- fix(view): keep only rows read in an unread view, not unflagged ones by @bketelsen in #26
- feat(app): filter bar, row actions and a fuller context menu in the message list by @bketelsen in #27
- M5 Phase 1: contracts, the condition compiler, settings and VIPs, Phase 2's cards by @bketelsen in #29
- docs: plan M5 Mail.app parity and its checklist by @bketelsen in #28
- M5 Phase 2: VIPs, flag colors in the sidebar, the General pane by @bketelsen in #30
- M5 Phase 3: smart mailboxes by @bketelsen in #31
- M5 Phase 4: rules by @bketelsen in #32
- M5 Phase 5: Send Later and Remind Me by @bketelsen in #33
- M5 Phase 6a: mailboxes by @bketelsen in #34
- M5 Phase 6b: list and reader by @bketelsen in #35
- M5 Phase 6c: unsubscribe, Redirect, Forward as Attachment by @bketelsen in #36
- M5 Phase 6d: mute, block, undo and shortcuts by @bketelsen in #37
- fix(app): name the source an empty filtered list narrows by @bketelsen in #38
- M5 Phase 7: categories spike; no mail categories (ADR-0029) by @bketelsen in #39
- docs: plan M5.5, editing events and contacts, before M6 by @bketelsen in #40
- M5.5 Phase 1: contracts for contact and event edits; Phase 2's cards by @bketelsen in #41
- M5.5 Phase 2: contact editing (cards T-0132 to T-0138, maild's people writes) by @bketelsen in #42
- M5.5 Phase 3: edit events in three scopes, with the event editor by @bketelsen in #43
- M5.5 Phase 4: dragging and undo by @bketelsen in #44
- fix(pim): keep what Google's sync calls deleted but still serves by @bketelsen in #46
- M5.5 Phase 5: invitations by @bketelsen in #45
- fix(app): open links clicked in the reader's message frame by @bketelsen in #47
- M5.5 Phase 6: replay a Gmail write session by @bketelsen in #48
- perf: open messages from what the reader shows, and prefetch INBOX and VIP mail by @bketelsen in #49
- docs: plan M7, Microsoft accounts and Windows by @bketelsen in #50
- M7 Phase 1: probe Outlook.com, and store Graph's events and contacts as derived sources by @bketelsen in #51
- M7 Phase 2: Outlook.com mail by @bketelsen in #52
- M7 Phase 3a: Microsoft contacts and calendars over Graph, read-only by @bketelsen in #53
- M7 Phase 3b: write Outlook contacts and calendars over Graph by @bketelsen in #54
- M7 Phase 4: maild and mailctl on Windows by @bketelsen in #55
- M7 Phase 5: the app on Windows by @bketelsen in #56
- fix(settings): show the account form's error in view; Phase 5's trial by @bketelsen in #57
- fix(rpcserver): answer internal when a handler panics by @bketelsen in #58
- fix(rpcserver): answer internal when a reply is too large by @bketelsen in #59
- docs: maild runs as a lodge app (ADR-0041, plan 0011) by @bketelsen in #60
- feat(maild): serve lodge's mail app socket through the kit (M8 phase 2) by @bketelsen in #61
- feat(app): the web build for lodge's /app/mail/ (M8 phase 3) by @bketelsen in #62
- feat(app): compose, settings, events and reminders as routes in lodge (M8 phase 4, part 1) by @bketelsen in #63
- feat(maild): read-only /mcp/mail for agents through lodge (M8 phase 5, part 1) by @bketelsen in #64
- docs: the desktop app on a maild behind lodge (M8 phase 6 design) by @bketelsen in #65
- feat(app): the desktop app as a lodge client (M8 phase 6) by @bketelsen in #66
- feat: attach files from a browser, and save attachments in lodge (M8 phase 4) by @bketelsen in #67
- refactor(rpc): serve maild's RPC on lodge's kit (kit/jsonrpc) by @bketelsen in #68
- build(deps): pin lodge's kit v0.1.0 and lodge-client client/v0.1.0 by @bketelsen in #69
- feat(app): a narrow window shows one pane at a time, for the phone by @bketelsen in #71
- feat(lodge): Save As downloads the whole message from the content route by @bketelsen in #72
- feat(lodge): a permanent route by Message-ID, which maild resolves by @bketelsen in #73
- feat(lodge): announce new mail to connected clients, and notify in a browser by @bketelsen in #74
- feat(app): the desktop app notifies new mail from a maild behind lodge by @bketelsen in #75
- feat(mcp): the ;write and ;send scopes, with tools to draft a reply and send by @bketelsen in #76
- test(lodge): limits and policies tested, and two fixes on M8's edges by @bketelsen in #77
- docs: M8's status, the lodge socket's 403, and the map by @bketelsen in #70
- docs(plans): record the live ;write drafting check in plan 0011's Phase 5 by @bketelsen in #78
- feat(app): a narrow window's module tabs reach Calendar, People and Tasks by @bketelsen in #79
- feat(app): Calendar, Peo...