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 有自己的最小值/ 关闭图标按钮, 但聊天工具窗口 铬已经提供了这些价格——当 内嵌。 Chatheader现在只曝光了相机堆栈,标题弹出,以及 添加成员动作。 成员/聊天标签条是一个平坦的MUI标签条,带有bgcolor: "背景. 纸"通过互动打出一个不透明的白盒子 中心受霜分级板. 由透明条...
将 Media Obj Transit 切换为 @ MapsId 衍生身份模式
@IdClass 与 @Id @OneToOne 结合, Jpa 存储器 <MediaObj Transit, UUID > 初始化失败, “没有定义 ” 一个IdClass",即使有注释。 犬科JPA图案 衍生身份是 @ MapsId: 一个基本的 @ Id UUID 域外加 @ MapsId @ OneToOne ...
将未使用的@ ts- expect- error 丢入流取器中
`as requestInit ' 已经使类型错误沉默;指令是 在TS严格模式下冗余,并打破了生产建设.
触发重建接取 Kamo-shared-library 094e80d (MediaObj Transit@IdClass) 互联网档案馆的存檔,存档日期2011-12-20
触发重建接取 Kamo-shared-library 094e80d (MediaObj Transit@IdClass) 互联网档案馆的存檔,存档日期2011-12-20
触发重建接取 Kamo-shared-library 094e80d (MediaObj Transit@IdClass) 互联网档案馆的存檔,存档日期2011-12-20
触发重建接取 Kamo-shared-library 094e80d (MediaObj Transit@IdClass) 互联网档案馆的存檔,存档日期2011-12-20
添加@ IdClass for MediaObjTransit 这样 Spring Data JPA 可以曝光其衍生的ID
Spring Data的元模型需要 @ IdClass 对于主要键为 a 的实体 @Id @ OneToOne 衍生出标识符 。 没有它, Jpa 仓库<MediaObj Transit, UUID> 启动时未初始化“ does not definit a IdClass ” .
用于查找或创建、成员、附件、成像代理、哑音、撤销的代理路径
提取共享 QQ 帮助 app/lib/mediaServiceUrls.ts 。 添加代理路由 : find- or- create, 成员, 收据, 附件( 流出), mutes, 撤销 ,
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...