# Group the message list by conversation · michael/spark-rs

[View on GitCafe](https://git.cafe/michael/spark-rs/commit/958d2c2116969582b993a4f32d97b146e27b365f)

Repository: [michael/spark-rs](https://git.cafe/michael/spark-rs)

Visibility: public

Requested revision: 958d2c2116969582b993a4f32d97b146e27b365f

Requested commit: 958d2c2116969582b993a4f32d97b146e27b365f

Commit: 958d2c2116969582b993a4f32d97b146e27b365f

Tree: ef4692ba2bfaf4777fe2817f53d0a6ad06abcad6

Author: Michael Rodriguez

Committer: Michael Rodriguez

## Message

```
Group the message list by conversation

Every list shows one row per conversation, Spark-style: the newest of its
emails in that list stands for it, with who wrote in it ("Sam, Hannah, me")
and a count badge once it has two or more. A row is unread, pinned or
priority if any email of the conversation is. Drafts stay one row each.

Rows and the thread toolbar act on the conversation. Done, Trash, Set Aside,
Snooze and drags onto the sidebar move its emails in the same place as the
row, so replies stay in Sent. Mark as Read reads all of it; Unread, Pin and
Priority mark the row's email, and turning Pin or Priority off clears it
from every email. Card and sub-list Done all take whole conversations, and
sidebar counters count conversations.

Settings > Appearance gets "Minimize old emails", on by default. Turned
off, every email of an opened conversation starts expanded.

The demo hike thread gains a second reply in the Inbox.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

```

## Parents

- [83b39046d24b029b76407809042d61850b22da24](https://git.cafe/michael/spark-rs/commit/83b39046d24b029b76407809042d61850b22da24?format=markdown)

[Source at this commit](https://git.cafe/michael/spark-rs/tree/958d2c2116969582b993a4f32d97b146e27b365f?format=markdown)
