- Ya
- 18 Julai 2026, 19:20 UTC
- Mwandishi
- Kamo
- Ahadi ya
- d2b1c9f
- createSupportSession takes a signed routingToken (not preferredAgentMemberId); verified via ChatRoutingTokenCodec + cluster internal.auth.secret, enforces token.orgId == org, routes only when integration.assignmentMode == SPECIFIC_AGENT. Hard cut of the bare browser-supplied member-id path. - persist leadUid on SupportTicket + PublicChatVisitor (durable borrower-lead link) - ChatRoutingConsumer: on security.chat.routing.>, reassign the borrower's open ticket(s) by leadUid to the new officer (reuses assignToPreferredAgent) - lo-presence org-scoped: cross-org/unknown member -> online:false (no leak) - WebChatIntegration CRUD/bootstrap carry assignmentMode; store publicSiteKey for SPECIFIC_AGENT integrations