Skip to content

parseClaimCounts 把 passed/failed 误读为 passed/total,failed 算出负数 #175

Closed

Description

@surlymochan

跟进单,源自 M12 切片 2 批量审计(#174)。

复现(main 5dd1d58,src/core/audit.js parseClaimCounts,首条 X/Y 正则):

  • 输入 testify go test -v 472/12 verified → {passed: 472, total: 12, failed: -460}(主轮独立复现)
  • 输入 240/0 → {passed: 240, total: 0, failed: -240}(同 bug)
  • 对照:61/64 → {passed: 61, total: 64, failed: 3} 正确(确为 passed/total 写法)

根因:首条正则 /(\d+)\s*\/\s*(\d+)\s*(?:pass|passed|通过|✔|✅)?/ 把 A/B 一律当 passed/total,算 failed = total - passed;但 #158 证据原文明写该案例声称为“472 通过、12 失败”,即 passed/failed 对。批量影响:仅 #160 一行声称数字错(修正后判定仍 mismatch,另有三处不匹配);#173/#170/#167/#163 均不受影响(61/64、8/8 为 passed/total 写法;其余无 X/Y 写法)。

修复方向:区分 passed/failed 与 passed/total 两种写法(如第二数大于第一数时不可能是 failed;或要求 total 写法带明确标记),并补回归测试覆盖 472/12、240/0、61/64 三种。

证据:#174 评论 6814870874(补齐施工员)、6814581106(原施工员)。

Activity

  1. surlymochan commented on Nov 12, 2026

    @surlymochan
    OwnerAuthor

    修复已随 M13 落地:PR #179(ceece473)量级区分口径已合;#160 真实重审(#180 评论 6815694863)证实 472/12 现解析为 472 passed / 12 failed,不再出负数;M13 已验收(总单 #177)。关闭本单。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions