用于查找或创建、成员、附件、成像代理、哑音、撤销的代理路径
提取共享 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...
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...
QQ 上转发查询字符串
Next.js 代理服务器在转发给 Media Service, 意思是聊天历史抓取?lang-Q-locale ? 段落为 默然失落. 没有这个参数 后端就解决不了目标 语言,不需要 翻译旗又回来了,流译 队列无事可做,每个泡泡都倒回了原始文本 就在"翻译..."的短片之后.
薄荷所有者 OTK 拥有无 DB 往返的全权
在 QQ 指定管理员后 角色并写入成员 rights 应用, OTK- minting 块是 通过QQ重新读取这些行 @ Transactal. 取决于Hibernate 冲洗顺序 相对于 JPA 衍生查询, 正写行并不总是 可见的读作“没有”时,OTK被用一个 设定了空/ 有限制的权利, 新所有者会话继承了它, 以及...
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...
Show Plans & Billing tab regardless of root-org status
The !isRootOrg gate hid the tab on root orgs and blocked org owners and self-viewers from reaching their billing page from "My Account". The PlansBillingTab its...
Translate hardcoded UI strings
setup/dns (6 files): page, AliasStatusTable, DnsProgressView, DnsProvisioningPanel, DomainEntryForm, ManualDnsGuide. settings (10 files): diagnostics, essential...
Drop in place — jump every member, no softPush on release
The drift on release was softPushCluster firing on the user-drop path. A mega-cluster's bounds extend in all directions from the anchor, so the PADDING-margin /...
Translate hardcoded UI strings
account/view: 40 strings reused from existing namespace (no new keys). kb (13 files): translate article editor, viewer, reviews, resources, versions, navigation...
翻译剩余硬码的 UI 字符串
任务页面: 保存更改、 关闭、 添加任务项目到自动化流 , 编辑标题工具提示。 注: 解职、装入注解、删除注解 对话框标题 。 Doc 管理器: 页面标题和字幕( 使用已存在的密钥) .
Replace hardcoded English with t() across leads pages
Translate remaining hardcoded UI strings in allotments, new, reports, and view/[id] to use next-intl. Add scripts/i18n-audit.py to detect remaining hardcoded st...
Drop firmly in place — tail-only throw + jump() to clear velocity
The previous fix still let heads drift on release because: 1. Throw detection averaged velocity across the full 110ms window. A user who flicked then decele...
Drop in place after a paused drag instead of drifting
Two cooperating bugs caused dropped heads (single or post-gather) to fly off to seemingly random positions when the user dragged fast, slowed to a stop, then re...
添加个人+聊天/Docs/Notes/KB/HRS 节次
/设置指数没有显示非管理员的分节,因为 现有部分在管理权(CONFIGURE SYSTEM, 手艺 手艺 一个普通的团队成员 支持权利只看到3张牌(Topics, Analytics, 排程) 支持),无一例外. 添加一个总是可见的个人部分(我的配置、音频和视频, 账户活动,以及儿童类的计划和账单) 查看器自己的 /...
根据视图宽度比旋转目标打开
目标框架现在由 atan2( ViewportH, ViewportW) 倾斜,所以它的开放 右侧目标是对角对角的取景口——16:9监视器 东面29°以南的开口点;对于肖像画,它指向更接近 南来. 读取用户自然丢出大部分人头的方式 屏幕朝左上角转 物理:目标相撞现在运行在目标-LOCAL圈. 都抛出 头中心+速度旋转...
