- Ya
- 25 Aprili 2026, 17:56 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 436811a
Previously the NATS JetStream push consumer was only created when a STOMP client sent /app/chat/subscribe. With DeliverPolicy.New, any messages published before a consumer exists are permanently lost — causing visitor messages and name changes to never appear in kamo-internal unless the agent happened to be subscribed first. - Extract NATS subscription logic into ChatSessionSubscriptionManager (idempotent ensureSubscription, fixes id serialized as String to avoid JS precision loss on CockroachDB unique_rowid IDs) - ChatWebSocketController delegates subscribeToSession() to the manager - PublicChatService calls ensureSubscription() immediately after creating the MediaSession (so the consumer exists before the first visitor message arrives) and again in sendSupportMessage() as a fallback