变更记录
什么是新的。
平台的每一个改进,随着它的出货。
· EmailService
IMAP/ SMTP 支持的发送、文件夹和云根搜索
将 IMAP/ SMTP 代表团模式摘录为 CratusImapBackedCloud Provider 还有Zoho, IceWarp, Exchange, Google 工作空间, 和Microsoft 365 扩展 这个 基础类执行 MailSender、MailReader、文件夹管理器和 在电子邮件Imap Service、电子邮件Smtp Service和搜索服务上搜索服务 KamoMail也使用同样的服务,因此: - 向任何拥有 SMTP 证书的云提供商发送/保存草稿工作 。 - 所有文件夹操作(创建/重命名/删除/移动/设置Flags /) 删除Message)通过IMAP工作. - 搜索代表 现有的搜索服务。 - 读取操作和内置 cid: 渲染继续流经 共享电子邮件 ImapService 解析器 。 每个混凝土提供者的剩余支点——实时通知(其中: 域名管理器和邮箱 供应商-本地管理员API(微软图形、谷歌管理员SDK、Zoho管理员) API,EWS, IceWarp admin)尚未被接入这个密码库. 每个 现在 stub 带有一个 TODO 式的注释, 命名将执行它的 API .
· EmailService
IMAP 支持的提供云源根的邮件阅读器
Zoho, IceWarp, Exchange, Google 工作空间, 和Microsoft 365 都暴露了IMAP, 通过电子邮件ImapService 连接每个云端提供者的邮件读取器 而不是丢弃未支持的操作例外 。 这个: - 当只有IMAP的证书时,解除对这些提供者的读取信件的屏蔽 配置( 今天最常见的部署) 。 - 使新的内容Id/内置附件元数据流统一跨越 由于 EmailImap Service 是单一的解析器, 所以每个提供者 。 - 让内向图像端点解决 cid:任何提供者的引用。 其余提供云的方法(发送、文件夹管理、提供、 ——这些需要 提供者 - 本地API 并且不在范围这里。 还添加了 MailContext.toMailCreditities () 所以提供商(和现有的 KamoMailReader适配器)共享了单一的证书转换帮助器.
· kamo-internal
Render inline cid: 图像通过新的电子邮件服务端点
当信件暴露出内置部分( 每一个包含内容Id) 时, 电子邮件 渲染器现在重写了 <img src=' Cid:...> 引用时间 现在代理也是 转发缓存控制器, 以便浏览器缓存获取的图像 。 - 电子邮件附件(在对话类型和本地副本中) 信件浏览器( Message Browser) 获得内容ID和内置字段. - 无害化电子邮件渲染器接受内在图像BaseUrl +内在连接; cid:它重写已知的 cid 并隐藏其他的,与现有的 irror 处理器仍然隐藏 任何其他破碎的图像。 - 住在消毒器里的专用接字被恢复 重写属于渲染时, 即存在信件上下文 。 - ThreadDetailView和信件浏览器中的可见附件列表 过滤出内置部分, 这样嵌入式签名标志将不再作为 可下载附件.
· EmailService
服务内置图像 MIME 部件和表面内容ID元数据
在信件 UI 中通过曝光内含部分来渲染<img src='cid:...> HTML正文参考。 - 附件Info 增益内容Id(无角括号)和内置旗帜。 - 解析多相并获得相接共享 单相接部分上游 以及一个递归行走器, 所以内接部分 嵌入多部分/相关 采用两种方法(其指数保持不变)。 之前的重现过度重写了父附件列表,该列表 也掉入了嵌入式结构中真正的附着物. - has Attachment 现在仅由非内行部分驱动 - 签名标志没有 每条消息都点出纸条 - 新的终点 双向 电子邮件控制器和共享MailboxMail控制器;通过 解析附件Info, 含有内容- 位置的流程: 内置 和缓存控制:私用,最大年龄=3600.
· KlusterServices
添加定价@kamocrm.com 邮箱和外部 IMAP 节点端口
- 新服务邮件/ dovecot-imap-外部(节点30143 - > 143) IMAP可以从集群外的$NODE:30143到达. - 种子定价@kamocrm.com 在 mysql-init 中如此新鲜的 DB靴子 重建邮箱;活行已经存在于 MySQL.
· kamo-internal
重新设计 ChatsList行——优雅的布局,没有水平卷轴,在线点,未读徽章,相对时间戳
· MediaService
Add GET /sessions/{guid}/members endpoint with display-name priority
Returns member list with name resolved via usernameAlias → fullName → alias → username, matching the same priority as the chat sessions list. This feeds ChatBox.loadMembers() so the tool window title bar can show the correct preferred name.
· kamo-internal
Derive and dispatch tool window title from session members
Adds onMembersChange callback to ChatBox; ChatTool derives the title (single name for 1-on-1, or '<name> (+N more)' for groups) and dispatches tool:title to update the ToolWindowShell title bar dynamically.
· kamo-internal
Lift search above tab strip, share query across Members and Chats tabs
Moves the search TextField from MemberList into NavTopPanel above the Tabs. Passes searchQuery as a prop to both MemberList and ChatsList so a single field filters both tabs. ChatsList filters rows by matching any non-self member's name.
· MediaService
使用ACTIVITY有效载荷进行扩增未读广播,用于聊天列表更新
· kamo-internal
通过 NATS 未读频道进行实时聊天列表更新
· kamo-internal
互动中心面板中成员/聊天的标签
· kamo-internal
用无限卷轴聊天列表,通过Intersection Observer实现虚拟化
· kamo-internal
在成员列表中多选择用于启动分组聊天
· kamo-internal
用相机堆栈、标题弹出器和成员拾取器聊天头
· kamo-internal
使用拖放、 待取附件芯片、 多行输入制成器
· kamo-internal
带相机的信息泡,徘徊动作,看到指示器
· kamo-internal
内置附件渲染和灯盒
· kamo-internal
会话、收据、附件的客户类型和钩子
· kamo-internal
用于查找或创建、成员、附件、成像代理、哑音、撤销的代理路径
提取共享 QQ 帮助 app/lib/mediaServiceUrls.ts 。 添加代理路由 : find- or- create, 成员, 收据, 附件( 流出), mutes, 撤销 ,
· MediaService
Configmap entries for attachment limits and multipart
· MediaService
Paged chat list with previews, members, unread counts
that returns ChatListRowDto rows including last message preview, member summaries, per-session unread counts, and ownLastViewedAt.
· kamo-shared-library
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.
· MediaService
Real NATS publisher impl and READ_RECEIPT broadcast
· MediaService
Per-viewer mute endpoint and message filter
· kamo-shared-library
在媒体会议仓库中添加QQ
· MediaService
Imaging proxy with HTTP Range support and per-member download tracking
· kamo-shared-library
Add MediaObjImgDownloadRepository with existsByObjImgIdAndMemberId
Required by ImagingProxyService (Task 10) to deduplicate per-member download tracking without a full table scan.
· kamo-shared-library
Add CHAT_ATTACHMENT assoc type with imaging-chat-attachments bucket
· kamo-shared-library
Service methods for exact-match find/create, member add, mute, revoke, read
