Switchbordswitchbord
v0.14.9

Draft-Only Campaign Responder Foundation

Adds structured responder output, campaign inbound attribution, and a draft-only finalizer for operator-reviewed campaign replies.

What's new in v0.14.9


Draft-only campaign responder groundwork


  • Added a strict responder_output_v1 domain contract for future campaign-scoped agents.
  • Added campaign inbound attribution that can resolve replies via WhatsApp context, campaign payloads, or recent campaign outbounds while preserving ambiguous/unsolicited states.
  • Added a draft-only finalizer that creates message_drafts metadata for operator review and never sends outbound WhatsApp messages.

Safety gates


  • The finalizer blocks LLM execution before consent failures or existing human-handoff conversations.
  • Caller-supplied campaign context is validated against workspace and inbound DB truth before any draft write.
  • Draft idempotency uses a workspace/conversation/inbound/agent-version key with a full paged scan until a DB uniqueness migration is added.