Marco

Unified Inbox Intake

Every source — mail, calendar, holons — into one envelope, one store, one stream.

Unified Inbox Intake (v2026-09-30T103353Z-5e473105f4) 2026-09-30 | Every source — mail, calendar, holons — into one envelope, one store, one stream. 1 - Mail Ingestion - Polls IMAP, converts emails to holon records MailService mail_service.py startup() shutdown() MailDatabase mail_database.py init() insert() kv/mail/* kv/mail/inbound/{sender} kv/mail/poll kv/mail/error email record polling status 2 - Calendar Aggregation - Aggregates events from multiple sources CalendarAggregator calendar_aggregator.py list_events() is_connected() calendar_api calendar_api.py list_events() is_configured() google_calendar marco/calendar.py list_events() is_connected() calendar events connection sta… 3 - Inbox UI - Displays attachments and handles downloads User Attachments.tsx save() fetch() API GET /api/inbox/{messageId}/attachments GET /api/inbox/{messageId}/attachments/{index} attachment list 1. Poll IMAP 2. Convert email to holon 3. Publish to MQTT 4. Store in database 5. Aggregate calendar eve… 6. Display attachments 7. Download attachment Example email record { "id": "12345", "sender": "kevin@spw1.com", "subject": "Meeting Reminder", "body": "Reminder for the meeting at 10 AM.", "timestamp": "2023-10-01T09:00:00Z" } Example calendar event { "id": "67890", "title": "Team Sync", "start": "2023-10-02T10:00:00Z", "end": "2023-10-02T11:00:00Z", "location": "Conference Room A" } The MailService handles IMAP polling and event publishing, while CalendarAggregator aggregates events from multiple sources. The Inbox UI fetches and displays attachments. Legend actor = initiates work · process = code path · store = state on disk · bus = durable queue · dashed = separate process cyan = request flow · pink = state read/write · dashed green = pull / return path · red = refusal As of 2026-09-30 10:33 UTC, from commit 5e47310

Provenance

This drawing is generated, not drawn. It is rebuilt from the source files below, so when they change the picture changes — a diagram here cannot quietly describe a system that no longer works this way.

Owner
Marco
Slug
unified-inbox-intake
Rendered
2026-09-30T103353Z
From commit
5e473105f4
Updated
30 Sep 2026, 10:33 UTC
Sources at
5e47310
Watches
4 paths
  • daemon/src/inbox
  • daemon/src/mail_service.py
  • daemon/src/calendar_aggregator.py
  • daemon/mona/src/components/inbox