Skip to content

fix: 过滤政治话题并禁止诊断图自动发送 - #16

Merged
damingishere-coder merged 3 commits into
masterfrom
codex/fix-political-topic-filter
Sep 4, 2026
Merged

fix: 过滤政治话题并禁止诊断图自动发送#16
damingishere-coder merged 3 commits into
masterfrom
codex/fix-political-topic-filter

Conversation

@damingishere-coder

@damingishere-coder damingishere-coder commented Sep 2, 2026

Copy link
Copy Markdown
Owner

改动摘要

  • 在所有群共用选题流程中加入确定性政治关键词门槛,命中候选保留审计记录但不入选,并由下一安全候选递补
  • 按真实 sender_id 修复漫画人物去重、裁剪与同话题证据补齐,继续拒绝越权消息 ID,并记录 poster_participant_repairs
  • 将 Level 3/Pillow 兜底改为不可发送的诊断失败:保留诊断 PNG、失败原因和 SHA-256,但图片阶段进入 FAILED,不再推进到 READY_TO_SEND
  • 诊断 PNG 不会被后续重试误认成已有真实图片;真实图片成功后清除兜底元数据,继续使用既有有限重试预算
  • 在发送扫描、原子 claim、强制发送入口和发送前预检增加纵深门禁,统一返回 IMAGE_FALLBACK_NOT_SENDABLE,且不调用文字或图片发送器
  • Dashboard API 暴露 image_status、image_fallback_level、image_fallback_reason、image_variant、image_delivery_eligible;历史 SENT + Level 3 同时保留已发送事实并显示图片生成失败(已发送)/诊断图不可发送
  • 竖版预览改为 contain 完整显示;普通有效图片和关闭生图流程保持不变

验证

  • python -m pytest tests -q:795 passed
  • Prompt/图片/发送门禁定向后端测试:173 passed;最终相关回归:100 passed;发送三层门禁专项:5 passed
  • python -m compileall -q app scripts tests:通过
  • npm test:7 files / 33 tests passed
  • npm run test:e2e:18 passed(只使用 Fake API)
  • npm run build:通过(TypeScript + Vite,5007 modules)
  • git diff --check:通过
  • 全量测试同时发现并修正了并发测试中 CRC 损坏的假 PNG;测试替身现在生成真实可解码 PNG,不再依赖旧的 Level 3 伪成功

风险与边界

  • 关键词规则仍为确定性精确匹配,不维护人物姓名,也不加入国家、政府、领导、主席、投票、party 等宽泛词
  • 历史运行文件、今日发送记录和 PNG 均未修改;没有数据库迁移
  • 本任务未调用真实 Provider 生图、恢复、微信发送/重发或 8766 服务重启
  • 代码尚未进入生产;需用户确认 Squash 合并并另行授权托管服务重启

回滚

  • Squash 合并后可 revert 本 PR 的 squash commit;不涉及数据库、配置或历史运行文件回滚

@damingishere-coder damingishere-coder changed the title fix: 过滤政治话题并修复日报图降级 fix: 过滤政治话题并禁止诊断图自动发送 Sep 3, 2026
damingishere-coder added a commit that referenced this pull request Sep 4, 2026
## 改动摘要
- 将 OCR 中带前导零的整数按数值归一化,避免 `05/09/01` 被误判为未知事实
- 将可信 `run.json` 元数据(群名、运行日期、统计区间和计数)加入图片事实证据,修复 `2026-09-04` 中 `04` 的误判
- 图片恢复成功后清除 `IMAGE_CONTENT_VERIFICATION_FAILED` 的旧错误字段
- 新增真实运行日期通过、其他日期拒绝和恢复状态回归测试
- 记录 2026-09-04 群 23、群 27 必须恢复为正常分镜群报,Level 3 排行/诊断卡不算成功

## 验证结果
- 相关测试:18 passed
- 全量后端测试:775 passed
- `git diff --check`:通过(仅 Git LF/CRLF 提示)
- 群 23、群 27 新群报均通过 PNG 解码、SHA-256、严格 OCR 事实校验和 HTTP `image/png` 核验
- 08:30 后复核:两群 `send_hold=true`,发送认领、提交、文字、图片和完成时间戳全部为空

## 风险
- 仅归一化整数部分冗余前导零;未知数字、单位、百分比和禁止事实仍保持严格拒绝
- 本 PR 修复日期事实误判;Level 3/Pillow 诊断图禁止进入发送流程的防线在独立 PR #16
- PR #15/#16 均未合并,生产 8766 服务也未重启,因此永久防线尚未部署生效
- 两个恢复群均保留人工发送锁,本次未触发微信发送

## 回滚
- 代码:回滚本 PR 新增提交
- 群 23
当前验收态备份:`output/.backups/image-date-fact-post-recovery-20260904-075918/`
- 群 27
错误卡片备份:`output/.backups/invalid-group-report-hold-20260904-081524/`
- 两群被替换的数据卡仍保留为各自的 `daily_image.previous.png`
@damingishere-coder
damingishere-coder merged commit 3cf0128 into master Sep 4, 2026
2 checks passed
@damingishere-coder
damingishere-coder deleted the codex/fix-political-topic-filter branch September 4, 2026 01:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant