Skip to content

Releases: collection-of-things/aggregate-mail

v0.2.23

Choose a tag to compare

@github-actions github-actions released this 30 Oct 23:33
4f12602

Added

  • Search cached mail from the CLI and MCP with the app's field, phrase, exclusion,
    read-state and date syntax. Filter local pins and inspect snooze return times;
    the CLI rejects unsupported options on older apps to prevent silently widened results. (#175)
  • Prepare reviewed CLI draft proposals with multiple To recipients and Bcc.
    Approval preserves the recipients in editable Drafts and never sends mail. (#175)

Changed

  • Read mail full width like Gmail: the subject, sender, labels and formatted body span the reader instead of a centered 820px column, so sender-centered tables stay centered on wide panes.
  • Replace Size rows by importance with a small filled importance marker before the sender on high-relevance mail, in the sorting-reason color. Every row keeps one height in each density.
  • The sidebar lists Mail views before Workspace views.
  • Category tabs and bulk selection share one rail with a select-all checkbox.
  • The conversation reader hides its coverage notes behind a disclosure and shows single emails without thread chrome, apart from Gmail's Load full conversation link.

Fixed

  • Keep mail selection checkboxes and Select all usable while mail syncs; bulk actions wait for sync and say so. (#178)

  • Show only applicable mail-row hover actions, in the reader toolbar's order: Archive or Move to Inbox, Snooze, Trash, Reply, read state and Pin. (#178)

  • Identify malformed MCP app queries with a stable validation code and guidance
    to check quotes, fields and dates. (#175)

  • Bound PDF preview parsing and page rendering with a worker budget so a stalled or malicious file cannot pin the renderer. (#167)

  • Make reply-prefix stripping, notification tag removal, message preview markers, inline style checks, inbox code detection, sorting phrases, privacy name hiding, contact import validation, compose list conversion and workspace backup account matching linear or bounded on untrusted input. (#167)

  • Resolve agent provider hosts once and pin the connection to a validated public address so DNS changes cannot redirect API keys to private addresses. Never send a saved decision-provider key to a different provider; the key is cleared when the provider changes. (#167)

  • Answer IMAP flag and label questions from summary metadata instead of reopening encrypted records, cap IMAP search result counts, reuse the confirmed archive-move binding for archived actions, require an independent date and subject match for recovered archived mail before a destructive move, and refuse Archive when the server cannot confirm a MOVE. (#167)

  • Verify the live MCP endpoint the app reports before copying an OpenCode configuration, and keep provider credentials out of isolated test and benchmark processes. (#167)

  • On Android, verify TLS certificate hostnames with the platform's strict single-label wildcard rules before credentials are sent, reject oversized IMAP literal announcements (without misreading message content as one) and MIME boundary declarations before allocation, and keep the send-confirmation recipient off screenshots. (#167)

  • Preserve bounded partial IMAP search results and allow recovery of an unbound archived message when its subject matches and its envelope date is absent; a present date must match. Privacy mode hides the whole text when there are more names, or longer names, than its bounded matcher covers, instead of leaving them visible. (#167)

  • Pin and unpin a message without waiting for an ongoing mail sync to finish (#171).

  • Complete a task from its Today or Projects checkbox, or from its details in Calendar and the other work views, preserving unfinished project decisions, save recovery and focus when returning from tasks or source emails (#172).

  • Align the bulk-select checkbox with the row contents and keep the unread dot clear beside it, on both wide rows and side-by-side cards.

  • Keep the toolbar update control clear of the privacy button beside drawn right-side window controls.

v0.2.22

Choose a tag to compare

@github-actions github-actions released this 30 Oct 03:37
00037bb

Fixed

  • Fix "Unexpected end of JSON input" when loading large cached-mail snapshots in clients that decode only the first gzip member of a compressed response (#168).

v0.2.21

Choose a tag to compare

@github-actions github-actions released this 29 Oct 16:58
c20f105

Changed

  • Pull requests now get typecheck and test CI automatically, without a ci label. Documentation-only changes are skipped, and the monthly run cap applies again only if the repository becomes private (ADR 0105).

Fixed

  • Open cached conversations without decoding unrelated message bodies, and compress large cached-mail snapshots to reduce startup transfer time in the browser and desktop (#164).

  • Avoid overlapping browser session checks and allow slow private connections more time to verify access. Origin failures now return readable API errors instead of JSON parsing errors (#160).

v0.2.20

Choose a tag to compare

@github-actions github-actions released this 29 Oct 03:35
5055607

Fixed

  • Keep isolated formatted email at the full available message width after mounting, instead of applying the narrower plain-text line limit (#157).

Documentation

  • Update the MIT license attribution.

v0.2.19

Choose a tag to compare

@github-actions github-actions released this 28 Oct 16:04
9157e4f

Added

  • Support 20 outgoing attachments and 25 MiB total through raw local uploads and encrypted attachment references. Keep small legacy drafts readable, stream referenced messages with provider size preflight, and preserve bytes for drafts and uncertain sends.
  • Offer cancellable, bounded Gmail and IMAP part downloads for large received attachments. Keep automatic imports small and distinguish unparsed bodies from files not downloaded yet. IMAP accounts still save the exact sent message to Sent, without Bcc.
  • Include uploaded draft attachments in encrypted workspace backups and restore new account-bound references atomically. The encrypted backup limit is 128 MiB (#86, #87).
  • Back up local workspace data in a passphrase-encrypted file and preview a merge before restoring. Existing records are preserved; credentials and cached mail bodies are excluded (#86).
  • About and storage shows the running version and update status. Browser sessions show a short build ID and can check whether they match the host; desktop sessions use the existing stable-release checker (#143).
  • Linux web hosting can stage and verify published stable releases, drain before switching, and restore the previous compatible build after failed startup. Failed releases require an explicit retry. Service and timer templates are provided; operators enable deployments explicitly (#109).

Fixed

  • Treat attachment admission refusal as a known pre-submission failure and release scheduled attachment holds.
  • Reject workspace exports with unrecoverable removed-account references and enforce destination draft/template limits before backup previews and imports.
  • Restore visible shared-button styling for custom-theme actions, including Create theme and Import theme.
  • Give Projects, Agent review and All cached distinct sidebar icons so they are easier to distinguish from Contacts, Inbox and Drafts.
  • Allow macOS updates from a read-only launch copy when exactly one canonical, writable Applications installation matches the running bundle. Recheck its digest before replacement without changing quarantine or Gatekeeper.
  • Preserve sender foreground contrast, live text-size preference changes and configured Enter shortcuts inside isolated email content.
  • Preserve supported sender colors, class-based columns and responsive width rules in an isolated email document. Scripts, remote styles and fonts remain blocked; privacy and per-opening image consent still apply (#135).

Documentation

  • Clarify canonical contribution targets, stack dependencies, latest-target rebases,
    verification and review identities, and completion comments with reciprocal fix
    links across GitHub and git.cafe. Repository contribution procedures take
    precedence over generic personal skill defaults.
  • Add README instructions for saved search views, Contacts imports and reviewed unsubscribe actions, and update the product capability summary.

v0.2.18

Choose a tag to compare

@github-actions github-actions released this 28 Oct 04:42
8b4782a

Added

  • Save cached-mail searches and filters as encrypted named views. Open, rename or delete them from Commands; reopening restores the account, mailbox, query, filters and sort. Names and unfocused search text stay hidden in privacy mode (#57).

  • Review sender-provided unsubscribe destinations in the reader. Confirm a direct HTTPS request, prepare a normal mailto draft, or check and open a manual link in the system browser. Unsafe destinations are refused, and nothing unsubscribes automatically (#58).

  • Open Contacts from the sidebar, find saved people or recent recipients, and import Google, Yahoo, Outlook-compatible CSV or UTF-8 vCard exports. Preview before saving; existing contacts stay intact and imported addresses appear in recipient suggestions. No developer account or paid service is required (#138).

Changed

  • A single email opens without a duplicate conversation heading; message actions and errors remain available (#138).

Fixed

  • Keep conversation history diagnostics in collapsed details, space message headers into readable rows, and show one applicable read-state action in each mail row (#138).
  • Remember paired browsers across idle time, tab closes and host restarts. Retry temporary outages without discarding drafts or requiring another unlock. Keep explicit Lock and Remove device controls.
  • Guide phone setup with styled sign-in and pairing pages, phone-initiated requests, QR or direct setup links, reload-safe approval and clear recovery instructions. Keep unopened invitations limited to two minutes and allow ten minutes to finish a claimed setup.

v0.2.17

Choose a tag to compare

@github-actions github-actions released this 27 Oct 18:34
892ff1c

Added

  • Schedule sends for tomorrow morning, Monday morning or a custom local time. Review, edit, cancel or reschedule them in Scheduled; missed or uncertain sends are never retried automatically (#60).

  • Add Undo send with an encrypted outbox and a composer delay control. Recover pending mail for review after restart or sleep; never retry an uncertain submission automatically (#55).

  • Forward cached mail as plain text, address multiple To recipients and add Bcc, with encrypted draft recovery and explicit attachment omissions (#51).

  • Read cached conversations inline, expand individual messages and choose an explicit message for actions. Keep history gaps visible and remote images blocked until activated for each opening. #54

  • Undo single-message Pin/Unpin and Snooze/Return from the confirmation or Commands. Changed mail is protected from stale Undo. #69

  • Select messages across accounts and triage up to 200 at once, with per-message outcomes and confirmed Trash. Ctrl/Cmd+A selects the current filtered list. #52

  • Mark mail unread or move archived mail back to Inbox from message actions, Commands or customizable shortcuts. #53

Changed

  • Choose Comfortable or Compact spacing in Appearance. Settings, Commands and the density shortcut share a saved value; changing spacing or text size keeps the selected row visible. #64

  • Open account Settings from readable keyboard-accessible warnings. Account status uses fixed safe messages and keeps Retry connection explicit. #63

  • Show exact cached-search filters and sort order. Empty results can widen the search without losing the query or account; Back restores the previous scope. #61

  • Notify browser users when the host has a new web build. Update when idle or choose Update now or Later; active editors and pending or uncertain writes prevent refresh. Restore the mail view and selected message afterward. Related to #109.

Fixed

  • Keep inline conversation Forward actions bound to the selected message (#124).

  • Keep browser update refresh paused when bulk mail actions report an unknown outcome.

  • Keep formatted email tables readable and show supported embedded images in their original position after Show images, including recovery of older cached imports (#133).

  • Keep midnight labels clear of the shaded outside-day notice in Calendar weeks that cross daylight-saving changes. #130

  • Keep a newer composer open when delayed Forward preparation completes, and prevent duplicate Forward requests (#51).

  • Keep draft dates clear of the Delete draft button and show the inbox's account labels and colour dots, including privacy-safe names when personal text is hidden. #115

Documentation

  • Give issue reports explicit scope, acceptance criteria and verification plans so contributors and agents can work from observable requirements. Separate planned checks from evidence, add missing bug-report environments and add privacy confirmations to feature requests.

  • Make pull requests easier to scan with explicit problem and result fields, before/after evidence, rollback and affected scope. Keep verification, ownership and review in collapsed blocks, and document stack merging with verification and review for each layer. Related proposal: #128

v0.2.16

Choose a tag to compare

@github-actions github-actions released this 27 Oct 06:32
de608c4

Added

  • Open Emc² on a phone through private Tailscale HTTPS. Pair with a one-use QR invitation, approve the matching code on the host, and unlock with a passkey. Revoke phone access from Settings. #84
  • Add customizable two-key Gmail-style sequences and new shortcut defaults, including O to open, S to pin, B to snooze, A to reply all and G sequences for mail views. Retain single-key customization and existing saved bindings. #112
  • Enable or disable mouse side-button history in Settings. Existing single-click and double-click opening preferences remain available. #112

Changed

  • Show account status before the full cached mailbox finishes loading. Mail counts remain unknown until the snapshot is complete, and a failed read offers Retry loading mail. #108
  • Reduce repeated cached-mail copying and skip unnecessary database rewrites while preserving mail, attachments and drafts. #107
  • Distinguish the receiving account from sorting status in All accounts, including compact rows. Hide redundant account labels when one account is selected and retain privacy-safe labels. #104
  • Use a navigation drawer, compact Settings picker, larger touch controls and stacked reply context on narrow screens. Keep the saved side-by-side mail layout visible when no message is open. #84
  • Refresh visible browser inbox state on return to the tab and every 15 seconds. #84

Fixed

  • Wait for a complete cached-mail snapshot before starting automatic browser sync, including after an initial read failure. #108
  • Skip the empty reader when cycling keyboard focus with F6. #84

Security

  • Protect browser access with expiring sessions, host-approved phone pairing and origin/CSRF checks. Keep browser data separate from desktop profiles and protect browser encryption keys in the OS credential store without a weaker fallback. #84

Documentation

  • Require explanations when closing issues or pull requests, with links to merged fixes or ongoing work. #113, #114
  • Separate this release from legacy unversioned notes and require clear, source-linked changelog entries and matching published release notes for future releases.

Full changelog: v0.2.15...v0.2.16

v0.2.15

Choose a tag to compare

@github-actions github-actions released this 27 Oct 04:12
483c1d0

What's Changed

  • fix: clarify in-app new-mail notifications by @pekth in #105

Full Changelog: v0.2.14...v0.2.15

v0.2.14

Choose a tag to compare

@github-actions github-actions released this 27 Oct 03:48
f5ac721

What's Changed

  • feat: organize Settings navigation and compact shortcut controls by @pekth in #103

Full Changelog: v0.2.13...v0.2.14