返回秀秀每日修改日志

秀秀 3.233-X - 守一替身X军团引用回复路由兼容修复

记录日期:中国时间 2026-08-27;不可覆盖快照 ID:9aa8ec078a482acd8d732ca633efc09868482836e2f6c8e7e36d1b7d72ff5250

记录完整性:九项详细记录完整

## 秀秀 3.233-X - 守一替身X军团引用回复路由兼容修复

- 建立时间:2026-08-27 CST。
- 详细记录标准:v1。
- 父版本:秀秀 3.233;仅修复守一替身X军团消息路由,不提高全平台对外功能版本号;固定严重故障回滚基准仍为秀秀 3.2。
- 修改目的:修复真人通过“引用X军团BOT上一条回复”继续下达任务时,界面已经显示“回复给 @X019”,但X轮询器没有把引用目标识别为有效点名,导致消息被标记已读却未创建X任务的问题;同时恢复本次已经被误标记已读的X019原始任务。
- 原因判断:秀秀消息元数据已正确保存`mention_targets`中`source=quote`的X019目标,并在`quoted_target`保存X019;但`/opt/xiuxiu3-x-corps/x_service.py`的`message_targets_account()`只匹配消息正文中的字面`@X019`或名称。引用回复的正文不会重复写入字面@,因此轮询器判断“不是发给X019”,随后仍更新已读游标,最终形成“消息存在、引用元数据正确、没有任务”的断链。
- 修改逻辑:保留原字面@匹配规则,并增加结构化元数据识别:`mention_targets`中的目标ID/名称以及`quoted_target`中的目标ID/名称,只要与当前X账号的`user_id`、`x_id`或名称精确匹配,就视为有效点名;不相关引用、自身消息和没有点名的普通群消息继续拒绝。恢复仅针对消息`msg_e8ab199535154e988a249a8424ca1566`与X019的已读游标回退一位,不重放其他消息。
- 采用方法:先只读核对原消息正文、引用元数据、X019轮询游标和X任务表,确认没有对应任务后,备份X源码和SQLite;在隔离副本上完成Python编译及字面@、引用ID、引用名称、不相关引用、自身消息五类函数测试;部署后短暂停止X Worker、原子替换源码并精确恢复单条消息游标,再启动服务,由原轮询链自动重新识别并创建任务。
- 数据/调用链路:真人引用X019回复下达要求 -> 秀秀保存正文及`mention_targets(source=quote)`/`quoted_target` -> X019轮询器读取结构化目标 -> 精确匹配X019身份 -> 创建X任务 -> Codex在X019工作区执行 -> 结果写回原任务群。普通消息、引用其他BOT和其他X账号的消息不会进入X019任务。
- 兼容保护:未修改秀秀Web/APP/电脑端、普通BOT、500岗位/500专家BOT、群组、聊天正文、Session、4.5、Loop、Q军团、其他X账号人设/权限、OpenClaw、模型、206/EasyTier或其他服务器。修复只作用于守一替身X军团结构化引用路由,原字面@调用方式完全保留。
- 改动文件:守一替身`/opt/xiuxiu3-x-corps/x_service.py`;精确恢复脚本只用于本次X019单条消息游标恢复;`VERSION_RECORDS.md`与每日修改日志。
- 验证结果:Python编译通过;隔离路由测试5/5通过,字面@、引用ID和引用名称均命中,不相关引用和自身消息均不命中。原消息自动创建任务`qtask_e6af457327e14ccd9d0cba83d4d64d7a`,执行Session为`b702e4ca-dfaf-4dd3-a5af-fd60dd0bb50a`,状态`done`,耗时245秒,结果于2026-08-27 12:11 CST回写原群。X019发布的专题页`https://shouyitishen.qro15x.top/preview/x-sites/x019/fan-legacy-editor/`外网实测HTTP 200,页面标题、阅读提醒和正文均存在。X Worker保持active。
- 同步与回滚:本次为守一替身X军团专属修复,不同步不运行X军团的其他节点。部署前备份位于`/var/backups/xiuxiu3/x-quote-routing-20260827-1210/`,包含`x_service.py.before`和`x-corps.db.before`。严重异常时仅恢复本机`x_service.py.before`并重启X Worker;数据库回滚只在明确需要撤销本次精确游标恢复时使用,禁止覆盖恢复其后新增任务。修复前源码SHA-256为`40d35eaf9a97e03ddd2fce604cdc4df2dea589a769a8e0e2d65283f0a2f48894`,修复后为`7bae3c2e2743bec871645c3df149208890a96ac6b502b69891a8b4b6c97a927d`。