文件行号
internal/agent/bgorphan_detect.go L173(terminal-status exit:if status == "SUCCESS" || status == "FAILED" || status == "CRASHED" || status == "REMOVED"——L174-176 delete 生产不可达)对照 internal/tool/command_jobs.go L38-42(值域全小写:running/completed/failed/cancelled/timed_out——"CRASHED"/"REMOVED" 在值域中根本不存在)+ L609(fmt.Sprintf("Status: %s\n", snapshot.Status) 渲染 Status: completed)+ 三读取通道 internal/tool/command_job_tools.go L183/276-287/457(read_command_output/wait_command/list 全走此渲染)+ bgorphan_detect_test.go L253(喂虚构 "Status: SUCCESS\n"——渲染层永不产生的值,测试通过但只验证死分支)+ premature_success.go L183(同库先例:同类 Status 行正是 ToLower 后比较)
问题
#1440-A 修复是死代码——大写字面量 vs 小写真实值域零匹配
修复建议
L173 改为小写值域匹配(completed/failed/cancelled/timed_out)或复用 ToLower+premature_success.go:183 模式;同步把测试样本改为真实小写格式防再犯(自证陷阱)。
严重程度
High(误报+漏报双向、#1440 名义已修实际未修、测试虚构样本掩盖)
独立复核确认:值域原文、渲染链 609、三通道、四 vs 零交集、测试虚构样本、假警告循环+预算烧尽链、先例对照。
#1440-B 与其余四件验证结论
文件行号
internal/agent/bgorphan_detect.goL173(terminal-status exit:if status == "SUCCESS" || status == "FAILED" || status == "CRASHED" || status == "REMOVED"——L174-176 delete 生产不可达)对照internal/tool/command_jobs.goL38-42(值域全小写:running/completed/failed/cancelled/timed_out——"CRASHED"/"REMOVED" 在值域中根本不存在)+ L609(fmt.Sprintf("Status: %s\n", snapshot.Status)渲染Status: completed)+ 三读取通道internal/tool/command_job_tools.goL183/276-287/457(read_command_output/wait_command/list 全走此渲染)+ bgorphan_detect_test.go L253(喂虚构"Status: SUCCESS\n"——渲染层永不产生的值,测试通过但只验证死分支)+ premature_success.go L183(同库先例:同类 Status 行正是 ToLower 后比较)问题
#1440-A 修复是死代码——大写字面量 vs 小写真实值域零匹配
修复建议
L173 改为小写值域匹配(completed/failed/cancelled/timed_out)或复用 ToLower+premature_success.go:183 模式;同步把测试样本改为真实小写格式防再犯(自证陷阱)。
严重程度
High(误报+漏报双向、#1440 名义已修实际未修、测试虚构样本掩盖)
独立复核确认:值域原文、渲染链 609、三通道、四 vs 零交集、测试虚构样本、假警告循环+预算烧尽链、先例对照。
#1440-B 与其余四件验证结论
<GOAL_ACHIEVED/>sentinel 防护+调用上限+fe920bf9 deadlock 修复在位;list_commands 不在 whitelist 为 Low 观察不立案。#前缀同族排查不适用(无命令字符串识别路径,[business-logic] the '# activity-label' prefix that run_command prompts mandate blinds three sibling detectors at once: isVerificationCommand / coverageIsVerifyCommand / eaIsVerifyTool all tokenize '#' as the first token, so verification debt never zeroes (false warnings), verify_coverage_gap is completely dead on conforming agents, and edit_abandon inherits the same blindness - stripLeadingShellComment exists but only 2 call sites got the #471/#950 fix; exit-127 isNonFailureExit swallows real go-test failures inside '||' chains as 'tool not available' green #1522 模式无载体)。无案。#载体。无案。