Area: mobieusHelp (audit p7) · Surface: mobieusHelp (helpdesk) — agent ticket view · Dimension: competitor-gap · Severity: minor
Zendesk and Help Scout show 'Agent X is viewing/replying to this ticket' (collision detection) so two agents don't both answer the same customer with conflicting messages — a real and visible support failure. mobieusHelp already has a Presence helper used in the message UI but doesn't apply it to the agent ticket view. With round_robin/fewest_open assignment, multiple agents legitimately land on related tickets and have no signal that a colleague is already typing.
Evidence
`grep -riE 'collision|currently.viewing|is_typing|presence|viewing_now|locked_by'` across src returns no helpdesk hits (only an unrelated EmailInbound dedup comment and the community-plane Presence helper). helpdesk_tickets has no locked_by/viewing fields (phase1 schema). AgentController::ticket (AgentController.php:131) renders the thread with no viewer-presence read or write, and submitReply (AgentController.php:189) does no concurrency check.
Suggested fix. On GET /help/agent/ticket/{reference}, record a short-TTL viewer record (ticket_id, agent_id, last_seen) and render a 'also viewing / replying' banner via the existing Presence pattern; warn before submitReply if another agent has been active in the last ~30s.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus