v0.4.2 的核心命题只有一个:让「对话摘要」这件事在 Web 和移动端体验完全一致——同一个数据源、同一个查询逻辑、同一份格式化文本,不存在「网页看到的和钉钉收到的对不上」。

Web 对话摘要实时页

新版本在 Web 侧栏「消息中心」分组下加了独立「对话摘要」入口,打开就是 per-conversation 的摘要明细——每个对话一张卡片,显示会话名、平台、最后消息时间、摘要文本。30 秒轮询一次,前端无感刷新。

页面顶部的「每日摘要汇总」文本框和钉钉 17:30 主动触达推送走的是完全同一份数据源(list_recent_summaries + 同一窗口计算),不再是「Web 写一套、推送写一套」的双轨实现。这点我认为是这次最重要的事——之前是「同源」承诺但实际是两份代码,Web 改了推送没改就会出诡异差异;现在物理上共用,差异不存在。

主动触达可自定义时刻

v0.4.0 上线时主动触达默认是每天 09:00,但很多用户希望换个时间(比如下班前 17:30 回顾一天)。v0.4.2 把 proactive.hour 和 proactive.minute 暴露为可配置项,config.yaml 里改完重启服务生效,下个版本会做成热更新。

CodeQL 安全告警清零

CodeQL 上一直挂着两条告警,这次终于清掉了:

CodeQL 的价值在于「持续盯住一类问题」,但误报也是真实噪音。原则:真漏洞必修,工具误判要么改代码要么加 allowlist,不要为了绿而绿。本次是「真漏洞修了 + 误报换 fixture」,没有加 allowlist。

升级注意:对话摘要页无需额外配置即可访问;主动触达仍为 proactive.enabled=false,按需开启。

完整变更见 CHANGELOG,代码在 GitHub。