Skip to content

Release008 更新说明 ​

本页整理 Gensokyo-NewQQ 上游 Release008 的主要变化,并单独标注 changelog 后继续合入 main 的修复。

IMPORTANT

功能边界、默认值和接口行为以目标版本源码、自动生成的 config.yml 与 QQ 官方机器人 API 实际返回为准。升级前建议备份配置和 idmap 数据库。

版本范围 ​

上游 CHANGELOG_v008.md 记录了自 Release007 基线提交 a44882c 之后的变更,重点包括文件消息、C2C 召回、图床后端、事件字段、配置补全和消息解析修复。

主要新增能力 ​

[CQ:file] 文件发送 ​

Release008 增加了出站文件消息支持,可用于 send_group_msg、send_private_msg 和 send_private_msg_wakeup。

text
[CQ:file,file=file:///path/to/file]
[CQ:file,file=http://example.com/file.zip]
[CQ:file,file=https://example.com/file.zip]
[CQ:file,file=base64://<data>]
[CQ:file,file=file:///path/to/file,file_name=report.pdf]

数组消息段格式:

json
{"type":"file","data":{"file":"file:///path/to/file","file_name":"report.pdf"}}

本地路径会先进行 URL 解码,再读取文件并通过 QQ CDN 上传。详情见 [CQ:file]。

send_private_msg_wakeup ​

新增 C2C 互动召回 Action,用于发送带 is_wakeup=true 的私聊消息。Release008 修正了以下行为:

  • 跳过 active、active_type、active_sub_type,避免把 [CQ:active] 当成媒体类型发送。
  • 纯 [CQ:active] 且没有其他内容时,发送空白召回请求。
  • 处理流程同步执行,避免调用方因异步任务未返回而超时。
  • 支持文本、图片、Markdown、视频、语音和文件。
  • 发送结果通过 notice_type=c2c_wakeup_resp 通知应用端。

详情见 send_private_msg_wakeup。

统一图床后端 ​

oss_type 新增 4 至 10:

oss_type后端配置要求
4腾讯云 COS 自签COS 密钥、地域与存储桶
5BilibiliCSRF Token 与 SESSDATA
6QQ 频道channel_id 与授权 Token
7ChatGLM当前实现无需额外字段
8Ukaka当前实现无需额外字段
9星野当前实现无需额外字段
10Nature当前实现无需额外字段

生产部署优先使用自己可控的对象存储,并妥善保护凭证。配置示例见 配置指南。

事件格式与字段 ​

群消息事件新增:

字段含义
is_private是否来自群内私聊 group_private 场景
is_full_group_messageGROUP_MESSAGE_CREATE 为 true;@ 机器人事件通常省略

is_full_group_message 表示底层事件来源,to_me 表示消息是否提及机器人,两者不可互相替代。

C2C 消息改为标准 OneBot V11 私聊事件形式上报,message_type 为 private,同时 self_id 使用整数类型。依赖旧版非标准事件结构的插件需要重新验证匹配器。

关键修复 ​

  • 修复群聊 URL 语音分支误用图片变量导致的潜在越界 panic。
  • 补全 Koishi/TRSS 数组段中的 file、reply、avatar 等解析。
  • 修复本地文件路径和中文 URL 编码未解码的问题。
  • 补全文件、本地视频和 base64 视频的发送分支。
  • 修复 Markdown 中 [CQ:at]、多个 @ 标签及本地图片路径重写。
  • 为群聊、私聊和频道回复补充 MsgID,并修正回复目标反查。
  • 修复私聊 HTTPS 图片没有进入图文混合发送路径的问题。
  • 为无前缀媒体 fallback 增加 SSRF 检查。
  • 配置自动补全会提取完整 YAML 块、跳过已存在父块,并忽略注释中的伪 key。

changelog 后续 main 修复 ​

上游在 Release008 changelog 完成后仍继续修复:

  • 新安装缺少旧版 idmap.db 时的空数据库 panic,以及多处旧 BoltDB 空值调用。
  • /metrics、/healthz、/readyz、/updateport 等端点的鉴权。
  • WebSocket Origin 校验。
  • 短链接 Token 改为 HMAC-SHA256。
  • 外部命令、临时目录和媒体 URL 安全处理进一步加固。

这些内容可能尚未形成新的正式 Release。固定版本部署时,不要只根据 main 文档判断二进制是否已经包含。

升级检查清单 ​

  1. 备份 config.yml、openid-map.db、msgid-map.db 和旧版 idmap.db。
  2. 启动新版本并检查配置自动补全结果,重点确认 oss_type 与对应后端配置块。
  3. 验证下游是否正确识别标准 private_message C2C 事件。
  4. 分别测试群聊、私聊和召回场景下的 [CQ:file]。
  5. 检查 [CQ:reply]、Markdown @、本地 Markdown 图片和 HTTPS 图文混合。
  6. 暴露 WebUI、正向 WebSocket 或监控端点时,设置 Access Token、强密码和反向代理访问控制。

Gensokyo-NewQQ 配套 Web 文档站