Split findChatSessionsForMemberPaged into First/After to fix empty Chats tab
HAVING CAST(null AS TIMESTAMP) IS NULL did not evaluate as expected in CockroachDB,
Largue os botões redundantes do cabeçalho da conversa; integre as abas Membros/Conversas com o desenho do painel
ChatHeader teve seu próprio minimize/feche IconButtons mas a janela da ferramenta de bate-papo chrome já fornece esses recursos — eles foram duplicados quando I...
Reconstruir contra a biblioteca partilhada com kamo fc5ee35 (MediaObjTrait @ Maps Id)
Reconstruir contra a biblioteca partilhada com kamo fc5ee35 (MediaObjTrait @ Maps Id)
Reconstruir contra a biblioteca partilhada com kamo fc5ee35 (MediaObjTrait @ Maps Id)
Reconstruir contra a biblioteca partilhada com kamo fc5ee35 (MediaObjTrait @ Maps Id)
Mudar o MediaObjTrait para o padrão de identidade derivado @MapsId
@IdClass combinado com @Id @OneToOne não é suportado de forma confiável em Hibernate 6 — JpaRepository<MediaObjTrait, UUID> inicialização falha com "não define ...
Re-trigger reconstruir contra a biblioteca partilhada com kamo 094e80d
Soltar o @ts- expect-error não utilizado ao transmitir o corpo de busca
O `como RequestInit` elenco já silencia o tipo de erro; a diretiva é redundante em modo restrito TS e quebra a compilação de produção.
Reconstruir o gatilho para obter a biblioteca kamo-shared- 094e80d (MediaObjTrait @IdClass)
Reconstruir o gatilho para obter a biblioteca kamo-shared- 094e80d (MediaObjTrait @IdClass)
Reconstruir o gatilho para obter a biblioteca kamo-shared- 094e80d (MediaObjTrait @IdClass)
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...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.