collapse cross-account dupes, Lato UI font, mail-list selection & density tuning
Backend: - Collapse identical cross-account deliveries in a thread: new messages.delivery_id (migration 0011) preserves the real Message-ID even when message_id_hdr is synthesized (§7.1); get_thread groups by it and reports also_in_account_ids; the list count counts distinct deliveries. Backfill script for existing rows. Frontend: - Bundle Lato (SIL OFL) as the UI font; unread mail-list rows use Black weight. - Mail-list selection: hover-avatar checkbox, tri-state "select all", bulk Archive/Pin/Delete (Restore/Delete in Archive/Trash/Spam) with a count in the reading pane; unread blue dot; "also delivered to" note in the thread. - Spacing/size tuning: sender-column width, icon gaps, avatar size, bar heights, and a round of -1px font sizes across the sidebar, mail list, and reading pane. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U72FZiF1W1pb8XxyWBTREA
This commit is contained in:
@@ -157,6 +157,10 @@ class Message(Base):
|
||||
UUID(as_uuid=True), ForeignKey("threads.id")
|
||||
)
|
||||
message_id_hdr: Mapped[str | None] = mapped_column(Text)
|
||||
# The real header Message-ID as delivered (kept even when message_id_hdr is
|
||||
# synthesized for a cross-account duplicate, §7.1). Identifies one delivery, so
|
||||
# the same email fanned out to several accounts collapses to one row in a thread.
|
||||
delivery_id: Mapped[str | None] = mapped_column(Text)
|
||||
in_reply_to: Mapped[str | None] = mapped_column(Text)
|
||||
references_hdr: Mapped[list[str]] = mapped_column(
|
||||
ARRAY(Text), nullable=False, server_default=text("'{}'")
|
||||
|
||||
Reference in New Issue
Block a user