Inbox thread disambiguation — Option A

Source: CASE-2026-000045 — "same contact split into two threads." Reality: the two threads are different clients (Hussam agency vs Manuel Collazo) reaching the same prospect from the same shared Nexus number, so they're correctly separate — the list just gives no clue why. Option A = a never-truncating client chip + muted, truncating campaign subtext on every row in the unified view.

Real prod data baked in: list pane is 320px default (260–520). Client names ≤18 chars (fit a chip). Campaign names up to 55 chars (always truncate). Drag the width + flip density below and watch nothing overflow.

List pane width 320px (min 260 · default 320 · max 520)
Density

Conversation list

BEFOREAFTER · Option A

Left = today. Right = Option A. Both panes obey the width slider + density toggle.

BEFORE — two identical "Wilburn Wallace" rows
Inbox6,735 open
AFTER — client chip + campaign subtext
Inbox6,735 open
In compact density the campaign subtext is dropped (too long for one line) and the client chip rides inline after the name — the disambiguator survives, the long campaign is one click away in the header.

Open-thread header

BEFOREAFTER

Header is always wide, so both client + campaign fit. Adds the client chip next to the existing campaign name.

💬 +19415490558 via +17866870804 FL LIFE INCL VAR ANNUITY & HEALTH (FL / 2024)
BEFORE — campaign only; you must know which client owns this campaign.
💬 +19415490558 via +17866870804 FL Hussam agency LIFE INCL VAR ANNUITY & HEALTH (FL / 2024)
AFTER — client named explicitly, campaign demoted to muted detail.
Why Option A holds at every width