Skip to content

v0.0.13

Choose a tag to compare

@github-actions github-actions released this 26 Oct 18:52
e1c0bc8

Key takeaways

  • [Feature] [Security] Choose who may use MailCellar: In the new Admin sidebar group (People, Invites, Permissions, Audit log), visible only to admins, you can now invite people by email or single-use link, give or remove their access, and review an audit log of changes.
  • [Feature] Ask Claude about your mail, read-only: Claude can now connect to your mailbox through the new /mcp endpoint to search messages, read them, open threads and attachments, and answer "how many" questions with counts grouped by month, sender, domain, recipient and more, without changing anything.
  • [Fix] [Security] Connecting Gmail works again: On the Accounts page, connecting or reconnecting a Gmail account no longer fails with Cloudflare Error 1101, and Google now asks only for MailCellar's own permissions (sign-in, email and Gmail).
  • [Fix] New mailboxes show up on Backfill: On the Backfill page, a mailbox you just added, removed or uploaded as an mbox archive now appears right away instead of "No Gmail accounts" until you reload.
  • [Fix] Month map counts are accurate: On the month map, the copied count for a month no longer shows 1–2 short, for both older months and the month new mail is arriving in.

App

  • New Admin sidebar group with People, Invites, Permissions and Audit log, shown only to admins.
  • Invite links open a page where the invited person accepts. If email sending isn't set up, each invite gives you a link to send by hand.
  • Anyone not on the list sees "You're not on the list" instead of the app.
  • Removing someone from the list keeps their mail.
  • Without admin emails configured, there is no list and Cloudflare Access alone decides, so self-hosted setups are unchanged.
  • MailCellar can optionally join a suite of apps: the sidebar brand becomes an app switcher and theme mode carries across the suite. With nothing configured, nothing changes.
  • The Lumen UI kit is updated.
  • Backfill refreshes itself whenever your list of mailboxes changes.

Gmail

  • Connecting or reconnecting an account no longer crashes. The crash came from the new mbox import columns.
  • Google no longer folds earlier grants (such as Drive) into MailCellar's consent screen.

Search

  • New count_messages tool answers "how many" in one count instead of paging through results. It takes the usual search filters and can group by month, year, sender, domain, label or mailbox.
  • Counts can be broken down a second time, for example month then domain. Any two of month, year, sender, domain, label, recipient and mailbox can be combined.
  • You can now filter by recipient (to) in both counts and searches, and group counts by recipient.
  • While older mail's recipients are still being read, counts say so.
  • The first page of search results now includes a total.
  • Searches stop reporting "more to page through" once the total is reached, and the "keep searching" note only appears when there is more.
  • Tool descriptions now point Claude to counting for "how many" questions.

Sync

  • Live sync now sets the copied count for each month new mail lands in from what the mailbox actually holds, so it matches Gmail's own listing.
  • Six older months were recounted by re-running their index check against the whole mailbox. No mail was missing and nothing was re-copied.
  • A background pass fills in recipients (To, Cc, Bcc) for mail copied earlier. It reads only message headers and stops at the daily write limit.
  • New mail and mbox imports record recipients as they are copied, at no extra write cost.

Storage

  • Messages now store their recipients, in lower case, for recipient searches and counts.
  • A new thread index is built gradually, once the day's write budget has room.
  • A read-only report shows how a mailbox database splits its bytes.
  • The README now has a table of Durable Object writes per message (about 7.5) and what it means for backfills on the Free plan.

Infra

  • The /mcp endpoint has its own Cloudflare Access app with Managed OAuth. It answers 503 until its audience variable is set, and it refuses cross-site browser requests.
  • Setup guide: new step for the MCP Access app, plus documentation for the suite variables.
  • Invite email is sent over SMTP with STARTTLS from the Worker, using the new SMTP_HOST, SMTP_PORT and MAIL_FROM variables and the SMTP_USER and SMTP_PASSWORD secrets.
  • The new optional suite variables are SUITE_LIST_URL, SUITE_PREFS_COOKIE and SUITE_PREFS_DOMAIN.
  • The people list is checked on every /api/* and /mcp request and cached for 60 seconds per Worker.

Pull requests (10)

  • #130 Admin > People: who may use MailCellar, on Lumen's people kit (@bchoor)
  • #134 feat: join the hub's app switcher and shared theme when SUITE_* is set (@bchoor)
  • #132 Sync: count new mail's month against Gmail's list, not message date (@bchoor)
  • #131 Accounts: fix Gmail connect crash; ask only for MailCellar's scopes (@bchoor)
  • #129 MCP: two-level counts and recipients (@bchoor)
  • #128 MCP: no keep-searching note once a search is done (@bchoor)
  • #127 MCP: search stops paging once its total is reached (@bchoor)
  • #126 MCP: count_messages and search totals (@bchoor)
  • #125 MCP server: read-only /mcp for Claude (@bchoor)
  • #124 Backfill: show a new mailbox without a reload (@bchoor)

Full changelog: v0.0.12...v0.0.13