# v6.3.15 AI 回复修复 + 采集文件名去编号

## AI 回复失败根因与修复
CLI 1.0.10 已确认具备：
- feed get-notices
- feed do-comment
- feed do-reply

问题不在 CLI 能力，而在上一版自行重建通知互动链时提交字段不完整。

腾讯官方规则：
- 通知回复优先使用 `do-comment/do-reply --ref <通知编号>`，CLI 自动补齐 feed/comment/reply 链式字段。
- do-comment/do-reply 的新增操作 type=1；0/2 属于删除类操作。
- do-reply 在手工链式调用时需要 comment_id，并可能需要 feed_create_time、feed_author_id、
  comment_author_id、comment_create_time、target_reply_id、target_user_id 等内部字段。

本版：
1. 优先从通知/本地最近通知记录获取 #N ref，使用官方 `--ref` 路径。
2. 没有 ref 时，从原始通知 JSON 递归提取完整互动链，并按运行时 schema 过滤。
3. 自动补 `comment_type=1` / `reply_type=1`。
4. 回复已有回复时自动把 reply_id 作为缺省 target_reply_id。
5. 每条失败记录保存具体阶段：
   - DeepSeek生成失败
   - QQ回复发送失败
6. 轮询弹窗会直接显示最多3条具体失败原因，不再只显示“失败3”。
7. 之前 status=failed 的互动允许自动重试，最多5次。
8. 如果 DeepSeek 已生成文本但仅QQ发送失败，重试时复用原回复，不重复调用DeepSeek产生费用。

## 采集文件名
上一版数据库 filename 已是标题，但素材库物理文件由 add_asset 自动保存为：
`<UUID>_<标题>.mp4`

本版只对“自动采集视频”做后处理：
- 自动把物理文件重命名为 `<文字标题>.mp4`
- 自动删除标题首尾的序号/编号/纯数字ID，如：
  - `12345_测试视频.mp4` → `测试视频.mp4`
  - `[12345] 测试视频.mp4` → `测试视频.mp4`
  - `编号12345-测试视频.mp4` → `测试视频.mp4`
  - `测试视频_12345.mp4` → `测试视频.mp4`
- 标题正文内部有意义的数字保留，例如 `iPhone 17体验.mp4`
- 同名不同视频使用“副本”文字避免冲突，不添加数字编号。
- 其他人工导入/关联素材保持原机制，不受影响。

## 热更新
- VERSION 继续为 v6.3.15。
- app/updater.py 及用户指定的 v6.3.12 热更新核心文件字节级不变。
