Diana v0.8.97
Diana v0.8.97 是一次补丁更新,集中修复 GitHub 订阅历史重发、历史检索与跨平台回复问题,并完善机器人独立配置、模型查询和 Telegram 原生能力。
新增功能
- 可查询对话、视觉、意图、生图、嵌入、语音识别与合成等用途的模型配置;成功发送的生成或编辑图片记录实际提交的模型标识,可通过引用图片、消息 ID 或会话最近记录查询。历史图片没有记录时明确无法确认,不用当前配置冒充历史证据;接口报告的标识不能证明中转背后的隐藏模型。
- Telegram 使用原生 Bot API 查询群资料、人数、成员身份及角色,并读取用户/群头像。候选名单来自管理员和已知成员,明确标为不完整;Bot API 不支持全群枚举,查询其他成员通常需要机器人管理员权限才能保证可用。
优化改进
- 普通插件按机器人分别保存设置、凭据和开关,旧配置一次性迁移到已有机器人,新机器人使用默认值;OpenAPI 仍是进程级设置。相同 RSS 来源、解析及判断结果可复用,但订阅进度、投递和权限保持独立。
- 主动发言使用五项评分平均分判断,回复欲望支持预设和自定义数值;成功发送后按机器人、会话计冷却。主人可管理群内机器人标记,人设支持完整表达设置与自定义快照恢复。
- 模型输入按需补充实际出现的 Emoji 中英文标准名称,支持组合、肤色和国旗,最多 32 种;不修改原始消息,不将名称解释成发送者情绪,未知表情不编造释义。
- 历史检索保留账号及角色关联,支持时间排序、游标续查及明确的结果裁剪信息,减少旧昵称误认和“命中多条却返回空列表”。跨群开关、机器人隔离与脱敏继续生效;找到历史记录不等于核验当前事实。
Bug 修复
- GitHub 旧消息重复通知: 空列表、过滤后为空、乱序或旧响应原先可能清空或回退检查点。现在覆盖 Commit、Release、Issue、PR、Star 五类:Issue/PR 按更新时间与编号前进;Commit 缺失原锚点时用 compare 验证差集;Release 按发布时间与 ID;Star 按事件时间与数字 ID。保存前再次校验来源、选项和旧检查点,过期轮询不覆盖新进度或待投递消息。
- Telegram 点歌暴露 CQ 码: 平台专属语音格式误走通用文本发送路径。现在按平台投递音乐,Telegram 不再显示 CQ 控制码,QQ 原有语音行为保留。
- 引用内部标记泄漏: 无效别名先前解析失败后原样留在正文。现在先消费控制标记再校验目标,“总是引用/关闭引用”尊重配置,“模型决定”只使用可验证的同会话目标;有效引用继续工作,旧历史不改写。
- Gemini 拦截后无法接续备用模型: 原先未读取结构化原因码且回退层排除了此类错误。现在保留拦截码并尝试已配置备用候选,不修改请求或提供商安全设置;普通参数错误不误判,全部候选失败仍报告错误。
- Telegram 权限使用实时成员状态核验,清理离群及凭据切换后的旧缓存;头像下载不向模型泄漏带 Token 的 URL,无法核验时不凭旧角色授权。
行为说明
- 订阅只自动前进:空响应与旧数据保留进度,Star 总数仍可因取消关注而减少。Commit 分叉或旧 Release 锚点无法验证时保留检查点并报告原因;必要时显式重设订阅基线,不猜测重放。正常新事件、初始基线和既有投递重试继续按各类规则处理。
- 普通插件修改 API 现在要求机器人作用域,不接受旧全局修改或继承操作;已有机器人配置自动迁移,第三方调用方需携带作用域。
- 本版发布 7 个资产:Linux amd64/arm64、macOS amd64/arm64、Windows amd64 五个完整包,以及
SHA256SUMS、latest.json。不再单独上传裸二进制。macOS 包名使用macos,包内diana-webui/diana-webui.exe和历史兼容副本保留,历史 Release 资产不改动。
安装与下载
以下命令与本版 README 一致,安装器自动识别系统、下载最新版、校验 SHA-256 并启动服务。
Linux / macOS Shell:
curl -fsSL https://raw.githubusercontent.com/SuInk/Diana/main/scripts/install.sh | sudo sh推荐 sudo 安装到 /opt/diana 并创建 /usr/local/bin/diana。没有 sudo 权限时去掉 sudo,安装器询问是否仅安装给当前用户,也可显式传入 DIANA_INSTALL_SCOPE=user。
Windows PowerShell:
irm https://raw.githubusercontent.com/SuInk/Diana/main/scripts/install.ps1 | iexDocker:
docker run -d --name diana --restart unless-stopped \
-p 18080:18080 \
-v "$PWD/data:/app/data" \
-v "$PWD/logs:/app/logs" \
ghcr.io/suink/diana:latest也可将镜像标签固定为 v0.8.97。打开 http://127.0.0.1:18080,管理员凭据见安装终端输出;Docker 使用 docker logs diana 查看。
手动下载本页对应平台的 diana-<系统>-<架构>.tar.gz 或 Windows .zip,用 SHA256SUMS 校验后解压,运行 run.sh / run.bat。完整包包含后端、frontend-next/dist 和启动脚本,无需另装 Node.js 或单独部署 WebUI;自定义部署从完整包提取所需文件。
升级指南
- 一键安装 / 完整 Release 包: 重跑上方 Shell 或 PowerShell 安装命令即可升级;支持新包名的控制台也可自更新。安装器及自更新器执行备份、校验和健康检查,失败回滚。手动部署请停止旧进程、备份配置和数据,校验并替换完整程序及前端资源后运行启动脚本,保留原数据路径。
- 首次包名迁移: 只识别
diana-webui-…包名的旧自更新器不能直接通过 WebUI 升级到新包名,首次必须重跑上方一键安装命令或手动安装完整包。新版安装器和自更新器仍兼容历史包名。尚无自更新器的更早版本同样需要安装器或手动升级。 - Docker: 拉取新镜像并重建容器,保留原挂载路径、环境变量和其他自定义参数。标准 README 部署可执行以下命令;数据和日志保留在宿主机挂载目录。
docker pull ghcr.io/suink/diana:latest
docker stop diana
docker rm diana
docker run -d --name diana --restart unless-stopped \
-p 18080:18080 \
-v "$PWD/data:/app/data" \
-v "$PWD/logs:/app/logs" \
ghcr.io/suink/diana:latest- 源码部署: 需要 Go 1.26+ 与 Node.js 22。保留本地配置和数据,将源码更新到本版标签后重新构建前端和后端,停止旧进程再使用原运行参数启动。全新检出命令如下;已有修改请先妥善保存。
git clone --branch v0.8.97 https://github.com/SuInk/Diana.git
cd Diana
cd frontend-next && npm ci && npm run build && cd ..
go build -o dist/diana-webui ./cmd/webui
./dist/diana-webui测试覆盖
- 本地
gofmt -l .、git diff --check、go test ./...、专项游标 race 测试、前端npm ci、单元测试与生产构建通过,npm 安装审计未发现漏洞。 - 覆盖五类订阅进度保护、Commit 跨页差集、Release 旧数据迁移、Star 去重和减星、过期轮询与待投递保护;完整包工作流检查防止重新发布裸二进制。
- PR 与标签 CI 检查 Go、Vue、Linux amd64/arm64、Darwin amd64/arm64、Windows amd64 及 Docker。发布后核对七个资产、macOS ARM64 包独立 SHA-256 与归档内容,以及 Docker 版本和 latest 标签。