返回秀秀每日修改日志

秀秀 3.238 专项完善 - X军团多格式输入附件桥接

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

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

## 秀秀 3.238 专项完善 - X军团多格式输入附件桥接

- 建立时间:2026-08-27 CST。
- 详细记录标准:v1。
- 修改范围:仅守一替身X军团消息桥接与Codex任务输入层;适用于现有和后续XBOT。未修改普通业务BOT、群聊内容、账号、密钥、X员工人设、生产站点、OpenClaw、Q军团、EasyTier、206授权或其它服务器。
- 修改目的:修复真人向XBOT发送图片后,秀秀消息中有附件但X任务只保留文字、Codex工作区看不到图片的问题;同时让XBOT可以安全接收图片、文档、表格、文本和压缩包等常用附件。
- 原因判断:原`_process_polled_message_once`只把消息正文和会话信息传给`create_task`,没有转交`metadata.attachments`。现有附件逻辑仅处理XBOT向秀秀回传文件,不包含秀秀向XBOT输入文件的反向链路;Codex CLI本身支持`--image`,因此根因不在模型视觉能力。
- 修改逻辑:轮询消息时标准化秀秀受管附件并写入任务元数据;执行前将附件下载到当前XBOT、当前任务的隔离输入目录,生成包含名称、类型、大小、SHA-256和相对路径的清单。PNG/JPG/JPEG/WEBP通过Codex原生`--image`传入,其它文件以工作区只读输入路径和安全处理规则加入任务提示。任务副本默认保留7天并机会式清理,秀秀原始上传文件不删除。
- 采用方法:只接受`uploads/`受管路径且禁止路径穿越,不从附件元数据中的任意公网URL抓取;限制每任务最多20个附件、单文件80MB、合计160MB;拦截EXE、MSI、DLL、SO、APK、IPA等可执行或安装文件。附件内容视为数据而非高优先级指令,压缩包仅允许解压到本任务输入子目录,禁止执行文件、宏和脚本。
- 数据/调用链路:真人在秀秀向XBOT发送消息并上传附件→秀秀消息记录保存附件元数据→X Worker轮询并校验附件→创建X任务及附件清单→下载到`workspaces/<XID>/inputs/<task_id>/`→图片走Codex原生视觉输入,文档/压缩包由工作区读取工具处理→XBOT生成结果并按原有通道回传秀秀。
- 格式支持:原生视觉支持PNG、JPG、JPEG、WEBP;文本和代码类可直接读取;DOCX使用`python-docx`,XLSX使用`openpyxl`,PDF使用`pdftotext`;ZIP、TAR/GZ、7Z、RAR具备安全解包工具。其它非可执行附件可进入隔离目录,但能否解析取决于服务器是否存在对应读取器。
- 兼容保护:未改变现有文本任务、XBOT创建、派发、并发、回报、附件输出或公网发布链路;无附件任务不创建输入目录。任务副本权限为目录0700、文件0600;清理范围严格限制为XBOT工作区`inputs/qtask_*`且不触碰原始上传文件。
- 改动文件:`/opt/xiuxiu3-x-corps/x_service.py`;补充系统只读解析工具`poppler-utils`、`p7zip-full`、`unrar-free`和`python3-openpyxl`。修改前备份位于`/var/lib/xiuxiu3-x/change-backups/20260827-x-input-attachments/`。
- 验证结果:源码语法检查通过,附件校验/路径隔离/清单生成单元测试输出`INPUT_ATTACHMENT_UNIT_OK`。真实生产X019混合附件任务`qtask_b76aa52bbfd245b4a0133a4fd5361b37`同时读取原始JPG、DOCX和ZIP,Codex准确返回图片标题“富人家教的核心机密”、Word令牌`DOCUMENT_TOKEN_X019_20260827`和压缩包令牌`ARCHIVE_TOKEN_X019_20260827`;任务状态done,三条附件审计均为ready。X Worker重启后active,内存约27MB,服务开机自启保持不变。
- 同步与回滚:本项为守一替身X军团专用输入桥接,不同步到没有X军团的服务器。回滚时从`/var/lib/xiuxiu3-x/change-backups/20260827-x-input-attachments/x_service.before.py`恢复源码、语法检查后仅重启X Worker;无需恢复数据库,不删除聊天或原始附件。