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.