Skip to content

Diana v0.8.95

Choose a tag to compare

@github-actions github-actions released this 07 Sep 08:41
· 43 commits to main since this release
6c6b0cf

Diana v0.8.95 统一了聊天回复的消息布局协议,并修复群聊短省略问句、跨用户澄清承接与多平台历史回补隔离问题。

优化改进

  • 回复布局改为显式协议:[diana-msg] 表示开始下一条消息,[diana-line] 表示当前消息内部换行。模型不再用同一个真实换行同时表达“新气泡”和“气泡内排版”。
  • agent.finalize 的原生 Tool Calling Schema、Agent 系统提示、回复压缩、单条模式、Markdown 降级、Telegram 投递和插件跟评统一遵循新协议。
  • Agent 检测到 agent.finalize.content 中仍存在真实 CR/LF 时,会要求模型保持内容和证据字段不变并重新提交,避免静默压平清单或代码。
  • 群聊短省略问句采用分层话题召回:近期原始消息、本群全历史 FTS5,以及启用时的向量语义检索;时间只参与重排,不再以固定时间窗直接删除候选。
  • 同一发送者的追问优先保持话题连续性;其他群友也可以承接机器人刚提出的澄清,但不会错误并入另一个人的正在生成回复。

Bug 修复

  • 修复编号清单触发“文档保护”后,列表前后的独立内容仍被塞进同一个气泡的问题。根因是运行时根据真实换行和文档结构猜测消息边界;修复后只执行显式布局标记和平台长度兜底。清单、代码和引用仍可在单个气泡中保留必要排版。
  • 修复“什么时候重置”“那个呢”“codex”等短消息因近期噪声或固定召回窗口而丢失真实指代的问题。现在会恢复完整人物、事件和时间限定,中等或歧义候选仍不会强行绑定。
  • 修复跨用户回答机器人澄清时丢失公共话题的问题,同时保持正在生成回复的用户隔离。
  • 修复 OneBot/NapCat 与 Telegram 历史回补会话缺少平台和机器人身份的问题;不同平台的历史不会再互相进入回补。

行为说明

  • 普通聊天正文中的真实 CR/LF 会折叠为软空格,不再控制消息数量或排版。
  • [diana-msg][diana-line] 都属于内部投递标记,发送前会被消费,不会显示给用户。
  • “自然分条”开关仍决定提示模型默认使用单条还是按内容分条;发送层本身不再推测普通换行的语义。
  • 历史话题召回只有在配置了独立意图/语义指代路由模型时执行,不额外占用主聊天模型。

破坏性变更

  • [diana-br]<dianabr><botbr> 标记已完全移除,不再识别或迁移。自定义插件、Extension、通知模板或提示词如果仍生成旧标记,需要改为 [diana-msg];同一消息内部换行改为 [diana-line]
  • 旧版依靠真实换行自动拆分气泡的行为已删除。

升级指南

  • 完整 Release 包:下载对应平台的完整包并替换部署目录。v0.8.94 可从 WebUI 检查并安装本 Release;手动安装前建议保留现有配置与数据库备份。
  • Docker:拉取 ghcr.io/suink/diana:v0.8.95,或更新 latest 后重新创建容器;继续挂载原有配置和数据卷。
  • 源码部署:获取标签 v0.8.95,安装前端锁定依赖并执行生产构建,再重新编译后端。源码中的 model/version/VERSION 已与标签一致。
  • 自定义输出模板升级时,将“下一条消息”边界替换为 [diana-msg],将气泡内部清单、代码或引用换行替换为 [diana-line]

测试覆盖

  • gofmt -l .git diff --checkgo test ./... 全部通过。
  • 前端 21 项测试、TypeScript 类型检查和 Vite 生产构建通过,依赖审计未发现漏洞。
  • Linux amd64/arm64、Darwin amd64/arm64、Windows amd64 和 Docker CI 全部通过。
  • 使用 Sub2API Responses API 与 gpt-5.6-terra 真实验证 12 个 agent.finalize 样本:显式双消息、编号清单、代码块和长历史场景全部通过,真实换行违规为 0。

安装与下载

Release 包含 Linux、macOS、Windows 的完整包和裸二进制、SHA256SUMSlatest.json。下载后建议先核对 SHA-256;完整包内已包含启动脚本和 frontend-next/dist,无需单独安装前端依赖。

相关链接