- Shipped
- July 14, 2026 at 3:26 AM UTC
- Author
- Kamo
- Commit
- 306e9b9
Powers the borrower portal's merged LO/chat widget: - **************** direct-assigns a public-chat ticket to a SPECIFIC agent (the borrower's assigned loan officer) instead of the pending queue, when that officer is an eligible support agent for the topic (adds them to the chat session + notifies them; records the pick on the round-robin tracker). Falls back to null so the caller keeps queue behavior. - **************** accepts preferredAgentMemberId and routes to that officer; only pings the org pending queue when unrouted. - PublicChatController: reads preferredAgentMemberId from the session body and adds GET /lo-presence?memberId= → {online} (PresenceService.isOnline) so the widget shows the officer's real online state and auto-covers with AI when away.