日期:2026-11-15 环境:NAS(10.40.23.191)· Docker · unified 容器 · QQ Linux 3.2.35-54395 · 运行时 v2.4.2 账号:3816829185(生产号,用户自行完成 VNC 登录) 结论:三项全部通过——灰条撤回在真实环境闭环
| 项 | 值 |
|---|---|
| 镜像 | unified:local(新构建 8f2de933,运行 c97278e8/当前 Up) |
| 运行时 | v2.4.2,Node v24.22.1,index.mjs 12,456,207 B |
| 新增能力 | 戳一戳灰条撤回(msgSeq 全链路)+ get_supported_actions |
| 内置 action | 234 个(启动日志 builtin action names: 234) |
| 日志级别 | NEKOLUX_LOG_LEVEL=trace(为验收需要,可回调为 debug) |
get_login_info → {"user_id":3816829185,"nickname":"沈知意"}
get_supported_actions → 234 项,含:
".send_packet" / "send_packet" / "delete_msg" / "group_poke" / "get_supported_actions"
send_group_msg → message_id:-845545365
delete_msg → retcode 0
事件体(trace 级别直接输出完整 JSON):
{ "time":1794712626, "self_id":3816829185, "post_type":"notice",
"notice_type":"notify", "sub_type":"poke", "group_id":1134381782,
"user_id":3816829185, "target_id":1721822150,
"action":"揉了揉", "suffix":"的头",
"action_img_url":"http://tianquan.gtimg.cn/nudgeaction/item/8/expression.jpg",
"message_id":-954029912 }
关键字段 message_id 由 msgSeq 全链路派生:
event-0x2dc.ts 取 ctx.head.sequence → handleGroupPoke 缓存 meta
→ to-notice.ts:154 条件附加 fields.message_id。
撤回与服务端确认:
packet_send SsoGroupRecallMsg body=080110d695f59c041a0408a596022200 (16B)
packet_recv SsoGroupRecallMsg error=0 elapsedMs=201
Bridge packet SsoGroupRecallMsg ok (16B⇄0B, 202ms)
packet_push SsoGroupRecallMsg seqId=3012924 retCode=0 ← 服务端回推撤回确认
response={status:"ok",retcode:0,data:null}
seqId=3012924 即该灰条的群序列号(与缓存的 msgSeq 一致),服务端回推 retCode=0
证明群里那条戳一戳灰条已被真实撤回。
export NAS_PASS='<nas sudo 密码>'
cd unified/tools/nas && bash nas-acceptance.sh
脚本覆盖:登录态 / 关键 action / 普通消息撤回 / 戳一戳事件体 / 灰条撤回 / 服务端确认。
注意 message_id 可为负数(int32 哈希),解析正则必须带符号。
| 现象 | 原因 | 结论 |
|---|---|---|
| OneBot 3000/3001 不监听 | 适配器等 QQ 登录后才启动 | 登录后 1 秒内监听 |
| 配置文件写 3200/3201,实际 3000/3001 | 容器内配置与宿主端口映射不同层 | 以运行日志 listening 0.0.0.0:3000 为准 |
| WS 客户端连不上 3001 | 容器内 node 的 WS 握手不被接受(多 token/role 尝试均失败) | 改用 NEKOLUX_LOG_LEVEL=trace 从日志取事件体,更直接 |
get_group_msg_history 为空 |
灰条不入消息历史 | 只能靠事件流观察 |
| 容器重启后需重新登录 | 会话未跨容器自动恢复 | 每次换镜像要 VNC 重新登录 |
Client private-message reporting is unavailable(status=-1):登录过程中出现的 WARN,
双人测试群下不影响功能;待后续在多人场景观察是否影响私聊消息上报trace(验收需要)。生产建议改回 debug,
否则包级 TRACE 会持续刷盘demo-plugin 警告:entrypoint 默认允许列表仍含已不存在的插件名,
已在 nas-run-unified.sh 内联命令中修正为 keyword-reply,
entrypoint 默认值待同步修正