fix: preserve semantic news sections in WeChat morning drafts

This commit is contained in:
john
2026-10-20 06:07:45 +08:00
parent 03bdb09d8b
commit b6349269c0
7 changed files with 102 additions and 22 deletions
@@ -0,0 +1,27 @@
# 2026-10-20 早报草稿仅剩导语与页尾
## 现场与根因
05:29:19 自动推送记录为成功,但微信原草稿正文只有约 2,980 字符、1 张关注二维码,无新闻栏目。当天网页有 26 张新闻卡片、4 张新闻图,使用 `<section class="section">`,转换器 `splitSections` 仅识别 `<div class="section">`,导致所有栏目被漏掉。不能把数据库 success 当成正文完整的验收。
此前防复发发布 `20261019-141247-03bdb09` 在全目录备份时遇到运行中消失的 `.agents/.skills-sync.lock` 目录而中止。live manifest 仍是 `20261009-102835-05b440c`;未完成生产切换。
## 用户授权的当天修复
用户明确要求重新推送 10 月 20 日草稿。保留新闻标题、来源链接和 event key,对栏目容器作兼容规范化,补回真实来源配图,更新同一份原草稿,无重复创建。
- 目标 media_id:`GR19aTT35YYg2GKlTdWRZRS6wk6luKdSpZ4mdyjf-6hsNQ05LTFOqWQsFHbKZQjL`。
- 原稿与内容文件备份:生产 `data/news-image-repair-1792447569943/`。
- 网页恢复 9 张真实新闻图;微信正文约 19,730 字符,保留 6 张新闻配图与原关注二维码共 7 图,封面采用报道中的航空货运照片。
- 同一原草稿更新后读回,完整正文文字、顺序图片、标题、作者、摘要、阅读原文和评论设置均通过核对。
- 原网页 SHA256:`8023926b5ef6096136dabe26574c61f145d8075a0533223a7d2aa0791aeda3df`;修复后:`74680279ac5cdcd86424a1a696c4407f475789fba44c8c54bdc94b83b7583326`。
- 本地审计目录 `.local/news-morning-image-release/`;内容修复与验收文件 `/tmp/memind-news-1020-repair/`。
## 防复发代码
- 微信栏目解析兼容 div/section、多 class、属性顺序和单引号,仍按栏目边界分段。
- news002 源稿存在新闻卡片却渲染出零新闻卡片时拒绝生成草稿,避免再次将只有导语、页尾的内容标为成功。
- 备份与持久目录复制排除临时 `.agents/.skills-sync.lock`;不排除用户页面、资料或普通目录,不跳过备份错误与健康检查。
- 新增语义 section 与旧 div 等价、边界隔离、空新闻正文阻断,以及 tar 排除锁但保留用户内容的实际回归验证。
当天草稿修复已验收。永久代码须通过测试、明确批准、main、CI 与整包发布后才生效;实际生产版本以 live manifest 为准。