What's improved
- Assignment save/error copy now lives in the
inbox.assignmessage namespace, using English fallback strings instead of component-local hardcoded copy. - The assignment trigger now keeps save confidence visible after the popover closes with Saved/Failed status badges and aria-live status.
- Selected assignee rows now expose an explicit Remove affordance, and destructive assignment changes offer an Undo action.
- Rapid in-flight assignment changes now coalesce to the latest target assignee set, reducing redundant PATCH requests during fast operator clicks.
Follow-up tracking
- Added a self-contained Linear filing script for the longer-running data-layer follow-up: making assignment persistence transactional across
conversations.assignee_user_idandconversation_assignees.
Verification
pnpm --filter app exec vitest run components/conversation-assign.test.tsx