返回 Bug 清单
BUG-0816project-70高已修复backend-logic
record_id 唯一性 —— 台账静默覆盖(数据丢失级)。实测本机 datetime.now() 在同一时钟节拍内不前进(200 次连续调用仅 1 个互异值、50 条 id 仅 1 个互异),而 record_id 是台账文件名,故同节拍内多条决策后者覆盖前者;原 [:23] 又额外把微秒截成毫秒。改为 时间戳(完整微秒) + 进程内单调序号,50 条 → 50 唯一。另 CR-20260930-010 立法落地:parse_tracks() 接受轨道表但与阶段门禁严格隔离(project-07: s
发现:2026-10-09验证:2026-10-09置信度:70%
症状
commit fa0930f5a698 (2026-09-30) fix(ledger): record_id 唯一性 —— 台账静默覆盖(数据丢失级)。实测本机 datetime.now() 在同一时钟节拍内不前进(200 次连续调用仅 1 个互异值、50 条 id 仅 1 个互异),而 record_id 是台账文件名,故同节拍内多条决策后者覆盖前者;原 [:23] 又额外把微秒截成毫秒。改为 时间戳(完整微秒) + 进程内单调序号,50 条 → 50 唯一
根因
commit message 描述: fix(ledger): record_id 唯一性 —— 台账静默覆盖(数据丢失级)。实测本机 datetime.now() 在同一时钟节拍内不前进(200 次连续调用仅 1 个互异值、50 条 id 仅 1 个互异),而 record_id 是台账文件名,故同节拍内多条决策后者覆盖前者;原 [:23] 又额外把微秒截成毫秒。改为 时间戳(完整微秒) + 进程内单调序号,50 条 → 50 唯一
修复方案
修复 98 行,删除 1 行。改动文件: decision_engine.py, kernel_core.py, tests/test_ledger_contract.py
错误签名
fix(ledger): record_id 唯一性 —— 台账静默覆盖(数据丢失级)。实测本机 datetime.now() 在同一时钟节拍内不前进(200 次连续调用仅 1 个互异值、50 条 id 仅 1 个互异),而 record_id 是台账文件名,故同节拍内多条决策后者覆盖前者;原 [:23] 又额外把微秒截成毫秒。改为 时间戳(完整微秒) + 进程内单调序号,50 条 → 50 唯一。另 CR-20260930-010 立法落地:parse_tracks() 接受轨道表但与阶段门禁严格隔离(project-07: stages=0 tracks=24;project-70: stages=14 tracks=0),并新增 record_id 唯一性契约测试(13/13 通过,连跑 6 次稳定) 技术信息
来源项目
project-70
涉及文件
decision_engine.py, kernel_core.py, tests/test_ledger_contract.py
标签
git-sweep, auto-ingested, project-70, mcp-reported, source-agent