Commit Graph

3 Commits

Author SHA1 Message Date
sinohqb
eb4944a8bd feat(intelligent-eval): terminal-state discipline watchdogs (ADR-0011)
常见故障自愈有上限,超限收敛终态且可见:任务 attempts 上限、会话过期、
planning 双闸、executing 超窗兜底、触发失败计数判死、孤儿 agent 双管、
fire-and-forget 触发;open_session 预算硬闸门、settle 按终态区分、报告
scores 归一化;cron 池遗留面全删。
2026-08-20 14:34:17 +08:00
sinohqb
38e3817433 fix(intelligent-eval): atomic CAS in assign_task and complete_task (resolves §6.1)
Some checks failed
CI / test (push) Has been cancelled
Replace read-check-write in task_queue.assign_task with UPDATE...WHERE
status='pending' and decide on rowcount so two concurrent workers
cannot both claim the same task. Also harden complete_task with the
same CAS pattern (status='assigned') so a worker + stuck-handler
double-complete leaves the DB in one state.

The xfail guard in test_worker_task_resilience now passes (4/4).
2026-08-14 14:52:34 +08:00
sinohqb
3025dcd255 test(intelligent-eval): add worker task resilience tests (#3)
All checks were successful
CI / test (push) Successful in 4m21s
T1 concurrent assign: only one worker wins (sequential + dual-session)
T1 complete×stuck convergence: task reaches terminal state, never lost
T10 fault loop: heartbeat busy → cron stuck → handler fails task + creates retry

发现真 bug(assign_task 缺原子 CAS,详见 .scratch/v111-architecture-scan.md §6.1):
两个独立 session 并发 assign 同一 task 双认领。
以 xfail(strict=False) 留守卫,CI 不阻塞;修复后移除 xfail 即转绿。
该 bug 修复不在本 #3 范围,待开独立 issue。
2026-08-13 02:45:56 +08:00