Mail lists show open work only
Mail lists, the conversation API, the CLI, and the Assistant leave out done and snoozed conversations by default.
From this release, Mail work lists show open conversations only. They leave out conversations that are done or snoozed, the same rule as the Focus view "All active". Done is a Cloud status for the whole mailbox. The upgrade changes nothing at the mail provider, and other mail programs still see every message.
No schema marker changes, so a rollback to the previous image keeps working.
Mail builds one new partial index, conversations_mailbox_open_latest_idx,
in the background after it starts (CREATE INDEX CONCURRENTLY, logged as
"Building Mail background index"). Until it is ready, lists still work, but
large folders read more rows. Count snapshots use a new cache key, so older
snapshots expire within 30 seconds of the upgrade.
Which lists change
| List | After the upgrade |
|---|---|
| All, Inbox, and other work folders | Open conversations only |
| Tags, filters (unread, flagged, attachment, date), and saved views without a status condition | Open conversations only |
| Archive, Sent, Trash, Junk, and All Mail folders (provider role or configured role) | Everything, as before |
| Text search | Everything, as before; results show their status |
| The work views (Needs action, Done, Snoozed, and the others) | Their own rule, as before |
| A search, filter, or saved view with a status condition | The status condition decides |
At the end of a list that leaves done conversations out, people see the count with a link, for example "1,207 done conversations · Show done". In All, the link opens the Done tab. In a folder, tag, filter, or saved view, it adds the condition "Work status: Done" to the same list.
A new incoming message still sets a done conversation back to Needs action, so it returns to every matching list.
Counts that change meaning
- The unread count of a work folder, in the sidebar,
cld mail folders, andGET /api/mail/mailboxes/{mailboxId}/folders, counts only open conversations. Filing folders still count every unread message. Thetotalcount is unchanged. - The tab counts are unchanged.
API, CLI, and Assistant
GET /api/mail/mailboxes/{mailboxId}/conversationsandGET /api/mail/mailboxes/{mailboxId}/saved-views/{viewId}/conversationsfollow the rule when the request has noview, nostatus, and no filing folder. PassincludeDone=trueto list done and snoozed conversations too. The conversation response has a new fieldopenOnly, which says whether the list left them out.cld mail lsfollows the rule and prints a hint on stderr in text output. Use--status donefor done conversations only, or--include-donefor every conversation.- The Assistant tool
conversation.listfollows the rule and acceptsincludeDone.
Check scripts and saved views
Scripts and agents that call cld mail ls or the conversation API and expect
every conversation now see fewer results. Add --include-done or
includeDone=true where they need the previous result.
A saved view without a status condition now leaves out done and snoozed conversations, and its list ends with "Show done". A saved view with a status condition lists exactly what the condition says.