Skip to content

Diana v0.8.90

Choose a tag to compare

@github-actions github-actions released this 05 Sep 18:31
· 98 commits to main since this release
71ec197

Diana v0.8.90 是一次功能整合与稳定性更新:统一控制台加载体验和机器人会话隔离,完善长期记忆、连续消息回复、媒体缓存及磁盘维护,并纳入本轮已合并的全部 PR。

新增功能

  • 助手回复模式:优先处理求助,降低无关闲聊的主动参与;超级活跃模式提高默认接话倾向,并修复已被意图识别放行、却在后置审核中误拦截的情况。
  • 长期记忆按需查阅:增加只读 diana.memory 工具,先搜索短索引,再按 ID 查阅全文、提取证据和版本。公共事实与摘要支持独立候选池及一跳关联扩展,无需 embedding 也能使用文字与关联检索。
  • 跨平台公共记忆:双方机器人分别启用长期记忆与跨平台记忆后,按相关性检索非敏感群公共事实和摘要。默认关闭,不合并用户身份,不共享私聊、个人偏好、群规则、会话便签或其他平台原始聊天。
  • RSS 多来源订阅:一条订阅可共用同一规则关注最多 10 个账号或 Feed,各来源独立维护游标;一轮命中内容合成一条通知,显示平台和账号。已有单来源订阅继续兼容。
  • 本地 Agent 工具:增加 write_fileedit_filegrepfind_files,文件操作限制在 Diana 的 workspace 内;读、写、命令执行分别控制。新增主人专属、只读的 diana.host_stats,复用控制台主机指标;温度和功率受平台与传感器支持限制,无法读取时不伪造零值。
  • 下载缓存设置:在“设置 → 系统 → 下载缓存”选择按闲置天数、容量上限或永不清理;保存后立即生效并持久化,无需重启。

优化改进

  • 控制台骨架屏:总览、提供商、机器人、插件、群管理、人员、笔记本、任务、事件、日志、设置和配置向导按实际结构加载;适配插件方块/横排及桌面、手机布局。刷新保留已有内容,避免闪现零值和空列表。
  • 机器人操作统一:配置与删除采用同尺寸按钮,删除使用红色;修复 ghost 样式覆盖危险色、手机端操作按钮被挤窄的问题。
  • 机器人插件开关独立:优先级为群级覆盖、机器人级覆盖、历史全局默认值。安装、参数和凭据仍共享,OpenAPI 等进程级能力保持全局开关。切换机器人显示平台、账号和 Bot ID,并跟踪真实请求进度,旧请求不会覆盖新作用域。
  • 人员与事件可读性:人员支持按好感度、消息数和活跃时间排序;长期记忆展示结构化记录,原始最近发言作为排查缓冲单独折叠。事件还原昵称、引用及分享卡片摘要,日期按天分隔;日志操作人优先显示昵称。
  • 阅读不被刷新打断:事件页停留时仅提示“有新事件”,点击提示或刷新后重新读取;离开页面暂停,返回重新加载。
  • 媒体去重与复用:新写入媒体按 SHA-256 内容寻址,复用来源索引和并发下载。Telegram 可用稳定媒体标识减少重复下载;OneBot 仅信任明确提供且经过验证的 hash,不猜测文件名。旧文件继续可读,不自动扫描、迁移或删除历史重复副本。
  • 断线回补减负:默认每会话只补处理最近 3 条消息,可在机器人配置中调整为 1–100 条;手动回补也遵循此限制,正常实时消息、历史查询工具和正式回复上下文长度不变。

Bug 修复

  • 连续提问被吞掉:旧逻辑把同人短时间追发直接视为补充,可能丢掉前一问题的答案。现在只有模型明确判断为同题补充、且置信度不低于 0.9 时才合并;不同话题、低置信度、失败和超时保留独立路由。原有直接回复与主动回复策略不因此变成“每条消息必答”。本次不包含生成中增量注入或工具结果复用。
  • 自然分条开关失效或消失:补齐可视开关轨道;群级未设置时动态继承所属机器人,不再把当时的全局值固化保存。既有显式 true/false 不自动清除;显式分条标记、超长消息切分和合并转发行为保持不变。
  • 记忆来源混淆:修复跨群成员缓存的并发 map 写入;人员结构化记忆详情与计数同时按机器人、账号精确过滤,避免不同机器人下相同用户 ID 的记忆混入。空机器人 ID 只匹配旧版无命名空间记录。
  • 错误前缀配置不生效:发送侧不再硬编码错误前缀;机器人自己的错误消息保留在历史中,让模型能理解“重试一下”。移除按正文关键词/正则猜测语义意图的残留;模型调用用途读取显式标签,不再扫描提示词猜分类。
  • 媒体引用丢失或重复下载:补齐转发媒体恢复、本地分享索引持久化、损坏缓存重新下载和解析大小限制检查。缓存复用不绕过网络访问约束、完整性检查或当前大小限制。
  • 日志轮转后看不到新输出diana logs -f 跟随文件名重开新文件,外部截断后重新读取。
  • 升级失败回滚不完整:文件切换前记录交换状态,源码更新脚本保留失败退出码;清理备份失败不会把已健康运行的新版本错误回滚。

行为说明

  • 会话上下文固定按机器人配置档隔离,同平台不同机器人也不共享同编号会话。消息互通是显式转发,跨平台公共记忆是受约束的检索,两者不等于合并原始上下文。
  • Telegram 默认抑制其他 Bot 的群消息;只有语义判断提到当前机器人时才放行,不要求一定使用 @,无法确认时保持静默。
  • 入群申请和群邀请不再自动私聊通知主人;请求持久化、去重、主动查询、同意/拒绝及好友申请通知保持不变。
  • 新建机器人配置提供受限的文件写入及只读诊断命令默认值;存量配置不会被静默扩权。旧部署可在控制台填入推荐默认值,检查后另行保存。
  • 下载缓存默认闲置 7 天清理、不限容量;正在使用的文件受保护,不删除历史截图或 QQ 原始目录。WebUI 保存后的数据库值优先于 YAML;清理不等于缩小整个数据目录。
  • 文件日志按 20 MiB 轮转、保留 5 份;数据库调试日志默认保留 7 天、其他日志 30 天,可配置永久保留。用量统计、聊天记录、长期记忆和配置不在日志清理范围;SQLite 空闲页可复用,文件不会立即缩小。
  • 临时升级备份只保留本次尝试:创建前清理旧临时副本,健康检查成功后删除本次副本,失败时保留。安装后不启动时暂不清理;源码更新脚本在构建和文件替换成功后清理,仍需手动重启。请独立维护长期数据备份。
  • 人员编辑/删除作用于画像、最近发言缓冲、好感度历史与恋人状态;结构化长期记忆当前只读,删除人员档案不会删除结构化记忆或聊天记录。删除群独立配置只恢复全局规则,不退群、不清除历史,可能重新启用该群回复。

破坏性变更

  • 移除 isolate_platform_contexts 开关及 /api/assistant/config/context-isolation 接口。旧关闭标记被忽略;原共享历史保留原位置,不自动复制或分配给各机器人,后续消息使用独立会话。
  • 更新下载策略只展示“直连 GitHub / 自动选择镜像加速”,默认直连;需要加速时请显式选择自动模式。已固定的旧镜像设置继续生效,重新选择后才覆盖。GitHub Token 改在“设置 → 系统更新”管理;移除手动镜像列表/测速接口。
  • 删除 RSS 插件的 twitter_rss_template 设置。旧订阅继续使用已存地址;需要切换来源时编辑或重建订阅。RSS 插件因多来源结构与设置契约调整升级至 0.2.0。

升级指南

  1. 完整 Release 包:先独立备份数据与配置,再下载对应平台完整包并核对 SHA256SUMS,停服后替换程序、启动脚本及 frontend-next/dist,保留原数据目录。已经包含 Release 自更新器的版本可从 WebUI 下载并确认安装;不含自更新器的旧版本需要先手动升级一次,不能直接通过旧 WebUI 自更新。
  2. Docker:使用 ghcr.io/suink/diana:v0.8.90,或拉取 latest 后重建容器,保留数据卷与环境变量。Docker 不使用 WebUI 替换宿主镜像。Compose 部署可在确认镜像标签后执行 docker compose pulldocker compose up -d
  3. 源码部署:切换至已合并的 v0.8.90 标签,使用 Go 1.26.6 和 Node.js 22,执行前端 npm cinpm run build,再构建 ./cmd/webui 并重启;不要只替换后端而沿用旧前端。源码版本回落值已同步为 v0.8.90。
  4. 已有群配置:需要跟随机器人级自然分条的群,请在群设置选择“跟随机器人”后保存;历史显式覆盖不会自动清除。
  5. 清理策略:升级前检查日志保留和缓存容量设置,并独立保存需要长期保留的备份;临时更新副本不再作为长期备份。从旧版本通过 WebUI 升级到本版时,安装阶段仍由旧更新器执行,备份保留规则以旧版为准;新版清理行为从后续新版更新器执行的升级或最新版安装脚本开始生效。

测试覆盖

  • 全量 go test ./...gofmt -l .git diff --check、前端依赖安装与生产构建。
  • 前端 10 项回归测试,包含骨架布局、危险按钮、隔离开关移除、重复弹窗与作用域切换;1440px、390px、320px 浏览器加载/错误/刷新场景检查。
  • 媒体去重与缓存、日志维护、备份清理、命名空间边界和历史保留的 race 专项测试。
  • GitHub CI 覆盖 Go、Vue、Linux amd64/arm64、Darwin amd64/arm64、Windows amd64 及 Docker。
  • 语义分类使用模拟模型回归,不代表线上语义准确率保证;硬件指标受部署权限和平台支持限制。

安装与下载

  • Release 包含 5 个平台的完整包、5 个裸二进制、SHA256SUMS 和更新清单 latest.json,共 12 个资产。
  • 发布后已独立下载并校验 Darwin ARM64 完整包,SHA-256 为 6044666557717945f8416b6d5fdaf82e6f67eaddefff4c5198e1965182c2b208,与 SHA256SUMS 一致;归档内已确认后端、run.shfrontend-next/dist 齐全。
  • 完整包内含后端二进制、启动脚本及 frontend-next/dist,不需要安装 Go 或 Node。
  • Docker 镜像:ghcr.io/suink/diana:v0.8.90ghcr.io/suink/diana:latest
  • 两个 Docker 标签均已生成,并独立确认指向同一 OCI digest:sha256:be98318c7e1ba4429343e8dd121a8cc468936c8ca40f2cafd3eeb5fa732b97bb

相关链接

完整版本对比:v0.8.89...v0.8.90