Your Name
e96055eef9
fix(p0.4): Playbook 學習鏈三道修復 — partial index + race防護 + 手動路徑接線
ADR-092 P0.4 Playbook EWMA 學習閉環的 DB / Repository / Service 三層修補。
DB 層 (db-expert-fix by Engineer-B):
- ApprovalRecord.matched_playbook_id 移除 index=True,改 __table_args__ partial index
(WHERE matched_playbook_id IS NOT NULL) — 多數列 NULL,full index 浪費空間
- adr092_p1_learning_chain_rollback.sql: 純 ROLLBACK SQL(DBA 手動執行)
Repository 層:
- playbook_repository.py: SELECT FOR UPDATE 防 lost update
避免並發 EWMA 更新覆蓋彼此
Service 層 (P0.4 修復):
- proposal_service.py: 手動審核路徑補 _try_playbook_match_id 呼叫
decision_manager auto_execute 路徑已有此邏輯(行 2035),
此處補手動路徑缺口,使 matched_playbook_id 可寫入 DB → EWMA 才能演化
測試:
- test_playbook_repository_race_condition.py: 3 cases SELECT FOR UPDATE 防 race
正確阻擋並發 EWMA 更新(pass)
Note: migration SQL 待 DBA 手動執行(feedback_dev_prod_separation.md),
不執行 alembic upgrade(statu 文件禁忌條款)。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 20:19:46 +08:00
..
2026-04-11 02:24:20 +08:00
2026-04-17 16:14:44 +08:00
2026-04-18 13:18:46 +08:00
2026-04-18 13:23:39 +08:00
2026-04-18 16:04:23 +08:00
2026-04-19 00:00:31 +08:00
2026-04-20 04:04:13 +08:00
2026-04-20 04:23:09 +08:00
2026-04-24 15:41:35 +08:00
2026-04-26 20:19:46 +08:00
2026-04-25 02:10:06 +08:00
2026-04-25 02:10:06 +08:00
2026-04-24 10:55:50 +08:00
2026-04-15 22:03:59 +08:00
2026-04-10 11:04:56 +08:00
2026-04-04 12:02:03 +08:00
2026-04-04 12:35:05 +08:00
2026-04-04 12:35:05 +08:00
2026-04-08 11:16:37 +08:00
2026-04-08 11:22:03 +08:00
2026-04-08 11:22:03 +08:00
2026-03-26 16:06:20 +08:00
2026-04-01 21:36:15 +08:00
2026-04-06 11:46:05 +08:00
2026-04-10 01:06:51 +08:00
2026-04-10 01:50:22 +08:00
2026-04-10 01:50:22 +08:00
2026-04-10 01:37:43 +08:00
2026-04-10 10:33:32 +08:00
2026-04-15 22:02:17 +08:00
2026-04-09 18:38:08 +08:00
2026-04-08 16:24:09 +08:00
2026-04-08 16:24:09 +08:00