Switchbordswitchbord
v0.15.12

v0.15.12 — Canonical inbox conversation tags

Fixes inbox label state leakage, hydrates conversations from normalized label tables, adds server-side label filters, and lets campaigns tag conversations explicitly.

What's new in v0.15.12


Inbox label safety


  • The label picker now resets and reloads when operators switch conversations, preventing labels from one selected thread appearing on another.
  • Inbox list rows and selected conversation hydration now read from conversation_labels and conversation_label_links instead of the legacy conversations.tags array.

Filter conversations by tag


  • /api/inbox/conversations accepts label filters and applies them server-side through the normalized conversation-label join table.
  • Label filtering stays workspace-scoped and supports combining label IDs and label names.

Campaign response labeling


  • Campaign response routes can now use tag_conversation to label the related inbox conversation.
  • Existing tag_contact remains the canonical path for contact/audience tags, keeping campaign segmentation distinct from operator triage labels.