## 2026-05-09 工作日志

### 飞书反馈同步 - 三个文档问题修复

**问题一：图片无法点击查看**
- 根因：Markdown表格中 `|` 被 `dialogue_info` 内部的 ` | ` 分隔符破坏 + `![图片]()` 格式在飞书导入时不可靠
- 修复：`info_parts` 分隔符从 `" | "` 改为 `<br>`；图片格式从 `![图片](url)` 改为 `📎 [图片](url)` 可点击链接

**问题二：子文档作者显示"小研"**
- 根因：现有子文档由 xiaoyan bot (`ou_3e97d43a66639a457f0020a0d7f2bd74`) 创建，xiaokui 无法直接覆盖
- 修复：在 `update_summary_doc_as_children` 中添加 creator 校验，非 xiaokui 创建则先通过 xiaoyan 凭证删除再重建
- 关键常量：`XIAOKUI_BOT_OPEN_ID = "ou_fdbf5fdafd91670db34b6ac887f30fb7"`
- 注意：xiaokui 无法删除 xiaoyan 创建的文档（跨应用权限隔离），需回退到 xiaoyan 凭证删除

**问题三：子文档排序不规则**
- 根因：旧 `sort_tag = dt.timestamp()` 升序导致旧日期在前
- 修复：改为 `sort_tag = 9999999999 - int(dt.timestamp())` 实现日期降序
- ⚠️ 不足：飞书 Wiki V2 API 创建节点时 `sort_tag` 参数可能被忽略（API 返回均为 null）
- 兜底方案：按日期由近到远的顺序依次创建子文档，利用 `node_create_time` 自然排序
- 所有旧文档已删除并按正确顺序重建（5月8日→5月7日→4月28日），5月6日需手动创建

### 飞书分发消息 `<at>` 标签修复
- 根因：`dispatch_summary_to_chat` 中两步打架——第一步 `re.sub` 注入 HTML `<at>` 文本，第二步 `content_parts` 用正确 `{"tag":"at"}` 格式插入
- 修复：删除 `re.sub` 注入原始 HTML 标签的代码，仅保留富文本 at tag

### 废弃定时任务的 crontab 清理
- 已删除 xiaokui crontab 中 `*/5 * * * *` 的「飞书问题反馈同步每分钟」任务（含 wrapper 脚本调用）
- 该任务每分钟执行一次打开 MySQL 连接/查询/返回存在潜在连接泄漏风险

### 5月9日补跑问题
- 5月9日10:00定时任务因 `IndentationError` 失败（凌晨08:10自动备份 `c3c8dbb` 损坏了脚本）
- 修复：从上游版本恢复被清空的步骤4-7逻辑 + 模块常量
- 手动补跑5月8日数据（8条反馈，1个P0）成功
## 2026-05-09 工作日志

### 飞书反馈同步 - 三个文档问题修复

**问题一：图片无法点击查看**
- 根因：Markdown表格中 `|` 被 `dialogue_info` 内部的 ` | ` 分隔符破坏 + `![图片]()` 格式在飞书导入时不可靠
- 修复：`info_parts` 分隔符从 `" | "` 改为 `<br>`；图片格式从 `![图片](url)` 改为 `📎 [图片](url)` 可点击链接

**问题二：子文档作者显示"小研"**
- 根因：现有子文档由 xiaoyan bot (`ou_3e97d43a66639a457f0020a0d7f2bd74`) 创建，xiaokui 无法直接覆盖
- 修复：在 `update_summary_doc_as_children` 中添加 creator 校验，非 xiaokui 创建则先通过 xiaoyan 凭证删除再重建
- 关键常量：`XIAOKUI_BOT_OPEN_ID = "ou_fdbf5fdafd91670db34b6ac887f30fb7"`
- 注意：xiaokui 无法删除 xiaoyan 创建的文档（跨应用权限隔离），需回退到 xiaoyan 凭证删除

**问题三：子文档排序不规则**
- 根因：旧 `sort_tag = dt.timestamp()` 升序导致旧日期在前
- 修复：改为 `sort_tag = 9999999999 - int(dt.timestamp())` 实现日期降序
- ⚠️ 不足：飞书 Wiki V2 API 创建节点时 `sort_tag` 参数可能被忽略（API 返回均为 null）
- 兜底方案：按日期由近到远的顺序依次创建子文档，利用 `node_create_time` 自然排序
- 所有旧文档已删除并按正确顺序重建（5月8日→5月7日→4月28日），5月6日需手动创建

### 飞书分发消息 `<at>` 标签修复
- 根因：`dispatch_summary_to_chat` 中两步打架——第一步 `re.sub` 注入 HTML `<at>` 文本，第二步 `content_parts` 用正确 `{"tag":"at"}` 格式插入
- 修复：删除 `re.sub` 注入原始 HTML 标签的代码，仅保留富文本 at tag

### 5月9日补跑问题
- 5月9日10:00定时任务因 `IndentationError` 失败（凌晨08:10自动备份 `c3c8dbb` 损坏了脚本）
- 修复：从上游版本恢复被清空的步骤4-7逻辑 + 模块常量
- 手动补跑5月8日数据（8条反馈，1个P0）成功

### 待验证
- [ ] 确认「用户反馈问题汇总」下子文档排序是否为：5月8日→5月7日→4月28日（由近及远）
- [ ] 5月6日文档需手动创建（重建过程中因无有效问题簇被跳过）
- [ ] 下次定时任务执行时验证 sort_tag 创建-删除-重建流程是否完全正常
## 2026-05-09 工作日志

### 飞书反馈同步 - 三个文档问题修复

**问题一：图片无法点击查看**
- 根因：Markdown表格中 `|` 被 `dialogue_info` 内部的 ` | ` 分隔符破坏 + `![图片]()` 格式在飞书导入时不可靠
- 修复：`info_parts` 分隔符从 `" | "` 改为 `<br>`；图片格式从 `![图片](url)` 改为 `📎 [图片](url)` 可点击链接

**问题二：子文档作者显示"小研"**
- 根因：现有子文档由 xiaoyan bot (`ou_3e97d43a66639a457f0020a0d7f2bd74`) 创建，xiaokui 无法直接覆盖
- 修复：在 `update_summary_doc_as_children` 中添加 creator 校验，非 xiaokui 创建则先通过 xiaoyan 凭证删除再重建
- 关键常量：`XIAOKUI_BOT_OPEN_ID = "ou_fdbf5fdafd91670db34b6ac887f30fb7"`
- 注意：xiaokui 无法删除 xiaoyan 创建的文档（跨应用权限隔离），需回退到 xiaoyan 凭证删除

**问题三：子文档排序不规则**
- 根因：旧 `sort_tag = dt.timestamp()` 升序导致旧日期在前
- 修复：改为 `sort_tag = 9999999999 - int(dt.timestamp())` 实现日期降序
- ⚠️ 不足：飞书 Wiki V2 API 创建节点时 `sort_tag` 参数可能被忽略（API 返回均为 null）
- 兜底方案：按日期由近到远的顺序依次创建子文档，利用 `node_create_time` 自然排序
- 所有旧文档已删除并按正确顺序重建（5月8日→5月7日→4月28日），5月6日需手动创建

### 飞书分发消息 `<at>` 标签修复
- 根因：`dispatch_summary_to_chat` 中两步打架——第一步 `re.sub` 注入 HTML `<at>` 文本，第二步 `content_parts` 用正确 `{"tag":"at"}` 格式插入
- 修复：删除 `re.sub` 注入原始 HTML 标签的代码，仅保留富文本 at tag

### 5月9日补跑问题
- 5月9日10:00定时任务因 `IndentationError` 失败（凌晨08:10自动备份 `c3c8dbb` 损坏了脚本）
- 修复：从上游版本恢复被清空的步骤4-7逻辑 + 模块常量
- 手动补跑5月8日数据（8条反馈，1个P0）成功
