This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryFixed read/unread and star changes to retry until confirmed when mail server is briefly unreachable.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Duplicate‑send protection uses per‑compose idempotency key and server reservation to prevent double sends on retries or double clicks. Duplicate‑send protection uses per‑compose idempotency key and server reservation to prevent double sends on retries or double clicks. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
User is notified when a message was sent but could not be saved to the Sent folder. User is notified when a message was sent but could not be saved to the Sent folder. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
Deaf/half-open IMAP connections now auto-recover within minutes instead of causing long delays. Deaf/half-open IMAP connections now auto-recover within minutes instead of causing long delays. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
Large uncached mailboxes on connection‑sensitive providers no longer hang previews or saturate the pool; they receive conservative handling. Large uncached mailboxes on connection‑sensitive providers no longer hang previews or saturate the pool; they receive conservative handling. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
Read/unread and star changes are retried until server confirmation instead of silently reverting on next sync. Read/unread and star changes are retried until server confirmation instead of silently reverting on next sync. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
On‑demand body fetch falls back to a fresh login on retry, preventing stale connections from hanging or returning blank messages. On‑demand body fetch falls back to a fresh login on retry, preventing stale connections from hanging or returning blank messages. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
On‑demand body fetch is capped at 40 seconds to avoid hanging on stalled servers. On‑demand body fetch is capped at 40 seconds to avoid hanging on stalled servers. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
Snippet indexer backs off on failing accounts instead of slowing live actions. Snippet indexer backs off on failing accounts instead of slowing live actions. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Low |
Deleting messages from search results no longer causes them to reappear; all‑folder search now excludes Trash (use `in:trash` to find deleted mail). Deleting messages from search results no longer causes them to reappear; all‑folder search now excludes Trash (use `in:trash` to find deleted mail). Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Low |
"Load more" paging in search works correctly after deleting results. "Load more" paging in search works correctly after deleting results. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Low |
Search refreshes correctly after inbox rules run, and settings search no longer autofills unexpectedly. Search refreshes correctly after inbox rules run, and settings search no longer autofills unexpectedly. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Reply recipients whose display name contains a comma are quoted correctly, preserving the intended single recipient. Reply recipients whose display name contains a comma are quoted correctly, preserving the intended single recipient. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Mobile swipe-to-archive no longer triggers a browser reload that cancels the action. Mobile swipe-to-archive no longer triggers a browser reload that cancels the action. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
Full changelog
v2.3.1
Reliability & delivery
- Deaf/half-open IMAP connections now auto-recover within minutes instead of causing long delays, so new mail and its notification arrive promptly.
- Large, mostly-uncached mailboxes on connection-sensitive providers (e.g. PurelyMail) no longer hang message previews or saturate the connection pool — those providers now get conservative, connection-light handling.
- Read/unread and star changes are durable: if the mail server is briefly unreachable, the change is retried until the server confirms it instead of silently reverting on the next sync.
- Message body/preview fetches fall back to a fresh login on retry, so a stale connection can't hang or return a blank message.
- On-demand body fetch is capped at 40s so a stalled server can't hang the request.
- The snippet indexer backs off a failing account instead of slowing down live actions.
Sending
- Duplicate-send protection: a per-compose idempotency key plus a server-side reservation prevents a double-click or retry from sending twice.
- You're now told when a message was sent but couldn't be saved to your Sent folder.
Search
- Deleting messages from search results no longer makes them reappear — all-folder search now excludes Trash (use
in:trashto find deleted mail). - Fixed "load more" paging in search after deleting results.
- Search refreshes correctly after inbox rules run, and the settings search no longer autofills unexpectedly.
Other fixes
- Reply recipients whose display name contains a comma are quoted correctly, so replies keep the intended single recipient.
- Mobile swipe-to-archive no longer triggers a browser reload that cancelled the action.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Beta — feedback welcome: [email protected]