Agent: programmer (
programmer)
Confidence: 44%
Cost: $1.3552
Duration: 4m 37s
Task ID:046ecda5-c9a3-4304-b748-ce898aa42a76
修復完成摘要
問題根因: verifyCausalHistory() 透過 getRecentTransitions() 取得數據,而 getRecentTransitions() 優先走 SQLite,只有 SQLite 失敗才 fallback 到 JSONL readFile。測試只 mock 了 readFile,SQLite 路徑完全沒被攔截,所以讀到了真實的 724 筆 production 數據。
修復內容 (tests/unit/causal-verification.test.ts):
- 移除
node:fs/promisesreadFilemock(不再需要) - 新增
database.jsmock — 防止transition-log.jsmodule 載入時存取真實 SQLite - 新增
transition-log.js部分 mock — 用importOriginal保留computeTransitionHash和__testing,只替換getRecentTransitions為mockGetRecentTransitions - 更新 9 個測試 — 改用
mockGetRecentTransitions.mockResolvedValueOnce(entries)直接傳入解析好的 entry 陣列,不再繞道 JSONL 字串 - 移除 已無用的
entriesToJsonlhelper
驗證結果:
causal-verification.test.ts: 9/9 通過- 全部測試套件: 91 files, 1138 tests 通過,零回歸
tsgo --noEmit: 通過(pre-commit hook)- Commit:
d988065on branchagent/task-046ecda5
—HANDOFF—
TO: reviewer
INTENT: handoff
ARTIFACT_TYPE: code-change
SUMMARY: 修復 causal-verification.test.ts 9 個測試的數據隔離問題,mock getRecentTransitions 取代 readFile