fix: verify stored news drafts and recover delivery safely
Memind CI / Test, build, and release guards (push) Has been cancelled
Memind CI / Test, build, and release guards (push) Has been cancelled
This commit is contained in:
@@ -23,3 +23,16 @@
|
||||
## 范围与回滚
|
||||
|
||||
无数据库 schema 或配置变更。回滚本次提交即恢复旧流程;已生成的页面内容和草稿不回滚。当天内容修复备份在生产 `data/news-image-repair-1792532762135/`,本地验收在 `/tmp/memind-news-1021-repair/`。原工作区改动单独暂存,禁止混入本次提交或发布。
|
||||
|
||||
## 推送后校验与补救
|
||||
|
||||
- 微信 `draft/add` 返回成功后,必须调用 `draft/get` 读回正文文字、图片 URL 与顺序、标题/作者/摘要/来源/评论设置及封面,全部通过才记录 success。允许微信把 `0` 图换成 `640` 图、包装 span 或清空封面 ID 后提供裁剪 URL;裁剪封面按原照片像素核验,不能只看 URL 非空。
|
||||
- 创建意图在请求发出前原子写入 `data/news-morning-delivery/<source-url-sha256>.json`。记录预期稿件、封面、media_id、首个修复前快照、校验结果和修复次数,文件权限 0600,不保存 access_token。持久目录随现有 data 备份保留。
|
||||
- 创建结果不明时,先通过草稿箱列表按完整标题和来源定位。没有查到也不盲目再创建;多份匹配或分页扫描未覆盖全部记录时暂停。扫描最多 200 条,未完成扫描不得视为“草稿不存在”。旧 ID 返回 40007 时可重新绑定唯一匹配稿;若无对应稿,可能已发布或移除,转为待核查,不自动重建。
|
||||
- 正文、图片或封面不匹配时更新同一个 media_id,并再次读回。每轮最多补救两次,同一投递记录累计最多四次;请求超时先读回确认,不重复创建。耗尽补救次数时写 attention_required,并停止本轮定时尝试。
|
||||
- 读取暂不可用时最多立即读三次;跨轮重试使用已有记录和已上传素材,不再次上传图片。进程内合并重复请求,进程间使用排他文件锁;死进程锁可回收。服务重启后从持久记录继续。
|
||||
- 只有唯一身份一致的稿件可修复。标题或来源被修改时禁止覆盖;不主动删除重复稿。仍有歧义时需要人工核查,不宣称所有异常都能自动恢复。
|
||||
|
||||
新增投递读回与补救测试后,相关回归共 108 项通过。包括真实服务入口读回失败后接续且不重复上传素材、跨次调用创建超时接续、并发/死进程锁、分页不足不创建、丢图及更新超时补救、照片裁剪、四次上限、失效 ID 重新定位及已移除稿不重建。
|
||||
|
||||
本轮只读生产检查返回旧草稿 ID 40007,草稿箱列表未找到同来源的 10 月 21 日稿件;无法区分已发布和已删除,本轮未重建或修改任何生产草稿,不能把该检查记成生产端新机制验收成功。本次自动化代码仍未发布。
|
||||
|
||||
Reference in New Issue
Block a user