Reconstruir o gatilho para obter a biblioteca kamo-shared- 094e80d (MediaObjTrait @IdClass)
Adicionar @IdClass para MediaObjTransit para que o JPA Spring Data possa expor seu ID derivado
O metamodelo de Spring Data requer @IdClass para entidades cuja chave primária é uma @Id @OneToOne identificador derivado. Sem ele, JpaRepository<MediaObjTrait,...
Aumente a transmissão não lida com carga útil da ACTIVITY para atualizações da lista de chats
Lista de conversas com rolagem infinita, virtualizada via IntersectionObserver
Cabeçalho de bate-papo com pilha avatar, popover de título e selecionador de membros
Compositor com drag-drop, chips de anexos pendentes, entrada multi-linha
Rotas de proxy para encontrar ou criar, membros, anexos, proxy de imagem, mudo, revogar
Extrair compartilhado ********** Ajudador para app/lib/mediaServiceUrl.ts. Adicionar rotas proxy: find-or-create, membros, recibos, anexos (streaming), mudos, r...
Paged chat list with previews, members, unread counts
that returns ChatListRowDto rows including last message preview, member summaries, per-session unread counts, and ownLastViewedAt.
Add countUnreadAfter(guid, memberId, since) to MediaObjRepository
Needed by paged chat-list endpoint to compute per-session unread counts when ownLastViewedAt is a LocalDateTime pointer rather than a message UUID.
Add @PrePersist to MediaObjImgDownload.dateCreated to satisfy NOT NULL on insert
Imaging proxy with HTTP Range support and per-member download tracking
Add MediaObjImgDownloadRepository with existsByObjImgIdAndMemberId
Required by ImagingProxyService (Task 10) to deduplicate per-member download tracking without a full table scan.
Add CHAT_ATTACHMENT assoc type with imaging-chat-attachments bucket
Skip creator in findOrCreateExactChatSession member loop (createChatSession already adds them)
Service methods for exact-match find/create, member add, mute, revoke, read
Mover o agregado do codificador para TEAR; adicionar @Transactional para marcarRead
Consultas de repositório para encontrar correspondência exata, lista de páginas, recibos
Adicionar dataLastViewed to MediaSessionMember for receiver timestamps
Adicionar isAccessRevoked flag para controle de acesso per-attachment
Mudar para o mapa de configuração para adicionar suporte ao kamo-asterisco
Probe timeout 10s and 2 gunicorn workers
LibreTranslate's /languages probe blocks on the gunicorn worker event loop. With a single worker translating a long chat message, the probe times out at the def...
Distinguish actively-translating vs queued messages
The translation queue was already sequential, but every queued bubble rendered "Translating…". Now the single in-flight message shows "Translating…" with a puls...
Distinguish actively-translating vs queued messages
The streaming queue was already strictly sequential (one fetch at a time), but every queued message rendered "Translating…" because they all shared the same pen...
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders an AlertTriangle icon in red with tooltip "F...
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders a small red ErrorOutline icon in place of th...
Raise client read timeout to 120s for long messages
LibreTranslate runs CPU-only argos models — a paragraph-length chat message takes 20-30s to translate, and longer ones can push past 60s. The 8-second read time...
Persist language change and show current language in tooltip
The members endpoint accepts PUT not PATCH, so the language picker's PATCH was silently ignored — Member.language never actually updated, which is why refreshin...
Uma linha de pesquisa para a frente
O proxy Next.js estava soltando a string de requisição ao encaminhar para MediaService, o que significava que o histórico do chat era ?lang=<locale> Param foi s...
Mint proprietário OTK com concessão-todos os direitos sem DB ida e volta
Depois de ter atribuído o administrador role and writes member rights applicated, the OTK-minting block was Relendo essas linhas através de... dentro do mesmo @...
Stream translations newest-first for visitor history
When the visitor lands on a non-English locale and the support chat has existing English messages, every bubble flagged needsTranslation by the backend now show...
Stream message translations newest-first on language switch
When the user picks a new language (or opens an existing chat in a language different from the messages' source), every bubble that needs translation immediatel...
Cache-only bulk translate, FE handles fills
Bulk message-fetch endpoints now return only translations that are already cached and tag missing rows with needsTranslation:true. The chat UIs (kamo-internal C...
Revert "fix(settings): show Plans & Billing tab regardless of root-org status"
This reverts commit ****************
Auto-translate visitor and agent messages
Live agent replies arriving in a language other than the visitor's URL locale now show a "Translating…" bubble while the TranslateService call resolves, then sw...
Translate chat messages into the viewer's language
Adds a "My Language" flag picker in NavTop (left of the email tool, separated by a vertical rule). Selecting a language writes back to Member.language and syncs...
Proxy support-message translate endpoint
Adds a passthrough route for the new MediaService endpoint that translates a single support-chat message into the visitor's URL locale. The marketing-side chat ...
On-demand translation for chat and support messages
Captures the source language for every chat / support message and adds an optional ?lang=XX param on the message-fetch endpoints plus a per-message POST /transl...
Translation cache for chat messages
Adds the MediaObjMsgTranslation entity (one row per (message, language) pair) and an optional sourceLanguageId column on MediaObjMsg so chat messages can be tra...
Como o que vês no transporte?
Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.
