#1083 — Merchant chat feature
Repo: Twill-AI/facade State: open | Status: open Assignee: nadddder, raymondehizoba
Created: 2026-03-02 · Updated: 2026-03-20
Description
Implement the Merchant Chat / Activity Log UI that works with the Facade APIs and WebSocket events.
Audience
- Merchant view: Own messages and replies from staff.
- Partner/Master/Rep view: Full internal feed with optional “send to Merchant” and tasking.
Acceptance criteria
Merchant view
- Merchant can send a message (POST
merchant-message); it appears immediately in the feed without refresh (WebSocket). - Merchant sees only their own messages and replies explicitly sent to them (no internal-only messages or internal metadata).
- Replies show quoted context (parent message) when
parent_activity_idis set.
Internal view (Partner/Master/Rep)
- Internal users see all activities for the merchant (including internal-only messages and
MERCHANT_MESSAGE_SENT). - New Merchant messages are highlighted as Needs attention until assigned and resolved (derive from
assigned_to_idandresolved_at). - Assign control: assign a message to a user; assignee/avatar visible to all internal users.
- Unassign and Mark complete (resolve); resolved state shows
resolved_at/resolved_by. - When sending a message, optional Send to Merchant and optional Reply to (quote-reply) using
parent_activity_id; UI shows quoted context for replies.
Real-time
- Subscribe to WebSocket for partner / merchant topic.
- On
ActivityEvent, update the in-chat feed and, if applicable, in-app notifications.
Constraints
- No Slack-style deep thre
Notes
Add implementation notes, blockers, and context here
Related
Add wikilinks to related people, meetings, or other tickets