{"id":"cba09980-a0ea-47c8-978e-710735937ca2","version_id":"8198dc78-6782-4591-b518-edfb72402d3e","reporter":"小敏","bug_summary":"test_emit_fatal_arch_nonzero 单测失败:假设 2 次 subprocess 调用,实际 1hr version_id 缓存使 emit_fatal 只调 1 次 subprocess","root_cause":"tests/lib/test_feedback_emit.py::test_emit_fatal_arch_nonzero 用 iter([component_get_response, feedback_create_response]) 喂 mock,但 _resolve_version_id 命中 ~/.claude/audit-state/feedback-version-cache.json 缓存(默认 1hr TTL),导致 component get 跳过,iter 队列残留第 1 个响应在第 2 次 next() 时才被消费(测试期望的是 2 次都消费),最终 result=True(对应 component get 成功响应)而非测试期望的 False(对应 feedback create 失败)。","fix_plan":"方案 A(test 修):用 monkeypatch 清空 cache(CACHE_PATH.unlink / mock_read_text 返回 {})强制走 component get path,这样 iter 队列 2 个响应都会被消费。方案 B(代码修):feedback_emit 加 no_cache=True 参数供测试绕过缓存。推荐 A(影响面小,语义清晰)。","severity":"medium","status":"open","decision":null,"reused_in_projects":["audit"],"decided_at":null,"created_at":"2026-06-28T19:45:04.716427","requirement_id":null}