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。
[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]数组消息段格式:
{"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通知应用端。
统一图床后端
oss_type 新增 4 至 10:
oss_type | 后端 | 配置要求 |
|---|---|---|
| 4 | 腾讯云 COS 自签 | COS 密钥、地域与存储桶 |
| 5 | Bilibili | CSRF Token 与 SESSDATA |
| 6 | QQ 频道 | channel_id 与授权 Token |
| 7 | ChatGLM | 当前实现无需额外字段 |
| 8 | Ukaka | 当前实现无需额外字段 |
| 9 | 星野 | 当前实现无需额外字段 |
| 10 | Nature | 当前实现无需额外字段 |
生产部署优先使用自己可控的对象存储,并妥善保护凭证。配置示例见 配置指南。
事件格式与字段
群消息事件新增:
| 字段 | 含义 |
|---|---|
is_private | 是否来自群内私聊 group_private 场景 |
is_full_group_message | GROUP_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 文档判断二进制是否已经包含。
升级检查清单
- 备份
config.yml、openid-map.db、msgid-map.db和旧版idmap.db。 - 启动新版本并检查配置自动补全结果,重点确认
oss_type与对应后端配置块。 - 验证下游是否正确识别标准
private_messageC2C 事件。 - 分别测试群聊、私聊和召回场景下的
[CQ:file]。 - 检查
[CQ:reply]、Markdown @、本地 Markdown 图片和 HTTPS 图文混合。 - 暴露 WebUI、正向 WebSocket 或监控端点时,设置 Access Token、强密码和反向代理访问控制。
