Flow
Decisions

0045 — Communications is the shared send-and-thread pipe

SMS, email, threads, and announcements live in services/communications, not in Foundry or broker.

Decided. Outbound SMS and email, inbound webhooks, 1:1 threads, and bulk announcements live in services/communications. Foundry and a later announcements product call this API. Provider keys stay here. Broker is not involved.

Tables are conversation / conversation_message and announcement / announcement_recipient. The prefix is the domain slug, singular. Workspace's conversation domain is a different database.

After an inbound message commits, if conversation.agent_id is set, communications POSTs Foundry /v1/agents/{id}/wake with identifiers only. Body text is not on the wire.

Canonical source: docs/decisions/0045-communications-is-the-shared-send-pipe.md.