Split findChatSessionsForMemberPaged into First/After to fix empty Chats tab
HAVING CAST(null AS TIMESTAMP) IS NULL did not evaluate as expected in CockroachDB,
드롭 중복 채팅 헤더 버튼; 패널 디자인을 가진 구성원 / 채팅 탭을 통합
ChatHeader는 자체를 최소화/닫는 IconButtons 하지만 채팅 도구 창 크롬은 이미 그 감당을 제공합니다 — 그들은 때 복제되었습니다 내장. ChatHeader는 이제 avatar stack, title popover, 그리고 추가 회원 활동. 회원 / 채팅 탭 스트립은 ...
전환 MediaObjTransit로 @MapsId 파생 상품 패턴
@Id @OneToOne과 결합 된 IdClass는 Hibernate 6에서 안정적으로 지원되지 않습니다. JpaRepository<MediaObjTransit, UUID> 초기화는 "does notdefined로 실패 annotation이 존재하는 경우에도 IdClass Canonic...
드롭 사용하지 않는 @ts-expect-error 에 스트리밍 fetch body
`as RequestInit`는 이미 유형 오류를 침묵시킵니다. 지시어는 TS 엄격한 형태의 밑에 중복하고 생산 건축을 끊습니다.
Trigger rebuild to pick up kamo-shared-library 094e80d (MediaObjTransit @IdClass)
Trigger rebuild to pick up kamo-shared-library 094e80d (MediaObjTransit @IdClass)
Trigger rebuild to pick up kamo-shared-library 094e80d (MediaObjTransit @IdClass)
Trigger rebuild to pick up kamo-shared-library 094e80d (MediaObjTransit @IdClass)
MediaObjTransit를 위한 @IdClass를 추가하십시오 그래서 봄 자료 JPA는 그것의 파생한 ID를 드러낼 수 있습니다
Spring Data의 메타모델은 @IdClass for entities 의 기본 키는 @Id @OneToOne 파생 된 식별자. 그것 없이, JpaRepository<MediaObjTransit, UUID> "IdClass를 정의하지 않음"으로 시작하려면 실패합니다.
Proxy routes for find-or-create, members, attachments, imaging proxy, mute, revoke
App/lib/mediaServiceUrl.ts에 공유된 ********** helper를 추출하십시오. 프록시 경로 추가: find-or-create, 회원, 영수증, 첨부 파일 (streaming), mutes, revoke,
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
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...