Parent
Spec: MailChat MVP — email-as-chat
What to build
As a user, once I've connected an account, MailChat periodically polls it in the background and I can see the messages it fetched, per account, without manually refreshing. This ticket proves the ingestion pipeline (fetch → parse → persist → display) end-to-end; conversation grouping is not yet applied — messages are shown as a flat, ungrouped list per account.
Acceptance criteria
Blocked by
Parent
Spec: MailChat MVP — email-as-chat
What to build
As a user, once I've connected an account, MailChat periodically polls it in the background and I can see the messages it fetched, per account, without manually refreshing. This ticket proves the ingestion pipeline (fetch → parse → persist → display) end-to-end; conversation grouping is not yet applied — messages are shown as a flat, ungrouped list per account.
Acceptance criteria
From/To/Cc/Subject/Message-ID/In-Reply-To/References/Date) and a safely-renderable body (HTML converted/sanitized for display, no remote content execution).Messagerow tied to the account it was fetched from.imap_clienttests), feeding real captured raw-message fixtures through the real parser → normalizer against a real temporary/in-memory SQLite database, asserting persistedMessagerows are correct; an htmx route test asserting the flat message list renders correctly for a seeded account.Blocked by