Your Name
cc547736ab
feat(wave6-8): P2.1 fusion + P2.2 governance + P2.4 consensus + Wave 7/8 BLOCKER 修復
承接 Wave 6/7/8 多 engineer 在 agent 限額前完成的代碼,補 commit 解 production
HEAD 隱性 import error(decision_fusion 已被 decision_manager 引用但檔案 untracked)。
新增(後端核心):
- decision_fusion.py (562 行) — P2.1 方法 III(OpenClaw + Hermes + Elephant 三 LLM 融合)
- aiops_timeline.py + aiops_timeline_service.py — critic B4 修復
/api/v1/aiops/timeline endpoint,DB 存取抽到 service 層遵守 leWOOOgo 積木化
- migrations/p2_decision_fusion_columns.sql + rollback — approval_records fusion 欄位
修改(後端整合):
- decision_manager.py — fusion 三斷鏈修補(critic B1+B2+B3):
· B1: 寫 _evidence_snapshot_ref 到 token.proposal_data
· B2: fusion 前計算 complexity_score 並寫 token
· B3: fusion composite 寫 token.proposal_data["decision_fusion"]
- auto_approve.py — fusion + consensus 認識(critic B3+B5):
· composite > 0.7 → auto_execute_eligible bypass min_confidence
· source=consensus_engine + score>=0.6 → 規則可信路徑
- consensus_engine.py — db-fix _save_consensus 重用 agent_sessions
- governance_agent.py — db-fix _alert PG 寫入 ai_governance_events
- approval_db.py — fusion 3 欄位 + 2 partial index + CheckConstraint
- db/models.py — schema 對齊 migration
- core/config.py — vuln #1 修復:OLLAMA_URL/_FALLBACK_URL field_validator
拒絕公網 IP + 外部域名,僅允許私網/loopback/K8s SVC 白名單
- core/feature_flags.py — P2 fusion + consensus flags
- main.py — governance_agent lifespan 啟動
- failover_alerter.py — Wave8-X2: in-memory dedup fallback(Redis 拒絕後不 fail-open)
- ollama_*.py — metrics 整合 + recovery 改善
- auto_repair_service.py — verifier 接線
新增(測試 2438 行):
- test_decision_fusion.py / test_governance_agent.py / test_consensus_integration.py
- test_p2_db_fixes.py / test_wave8_fusion_fixes.py
- test_config_url_validation.py(vuln #1 12 tests)
- test_failover_alerter.py +Wave8-X2 in-memory dedup 補測
驗收: 116 tests pass (decision_fusion + wave8_fusion + config_url + consensus +
governance + p2_db_fixes + failover_alerter)
Conflict resolution:
- 3 檔(config.py + auto_approve.py + decision_manager.py)git stash pop 衝突
保留 stashed (engineer 最終版),補回 ValueError 「公網 IP」字樣對齊 test
Note: 此 commit 解 production HEAD 隱性 import error
仍未修: vuln #4 prompt injection / debugger B14 quota fail-closed
/ B25-B26 drain_pending_tasks / B8 governance fail alert
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Multiple Engineers (Wave 6/7/8) <noreply@anthropic.com>
2026-04-27 08:11:40 +08:00
..
2026-03-25 16:08:49 +08:00
2026-04-26 20:44:19 +08:00
2026-04-25 03:29:38 +08:00
2026-03-28 18:51:52 +08:00
2026-04-16 02:54:34 +08:00
2026-03-26 16:06:20 +08:00
2026-04-19 23:02:57 +08:00
2026-04-03 13:22:36 +08:00
2026-04-03 13:22:36 +08:00
2026-04-26 20:44:19 +08:00
2026-04-15 18:56:26 +08:00
2026-04-21 00:59:21 +08:00
2026-04-19 21:21:46 +08:00
2026-04-27 08:11:40 +08:00
2026-04-12 22:50:20 +08:00
2026-04-14 14:39:14 +08:00
2026-04-24 10:55:50 +08:00
2026-04-15 19:21:21 +08:00
2026-04-27 08:11:40 +08:00
2026-04-26 20:39:53 +08:00
2026-03-31 16:25:00 +08:00
2026-04-27 08:11:40 +08:00
2026-04-27 08:11:40 +08:00
2026-04-24 15:32:23 +08:00
2026-04-14 20:34:14 +08:00
2026-04-14 20:43:40 +08:00
2026-04-10 22:35:37 +08:00
2026-03-29 16:00:46 +08:00
2026-03-26 15:32:52 +08:00
2026-04-27 08:11:40 +08:00
2026-03-23 23:51:37 +08:00
2026-04-27 08:11:40 +08:00
2026-04-27 08:11:40 +08:00
2026-04-19 12:07:29 +08:00
2026-03-26 21:55:50 +08:00
2026-04-24 10:55:50 +08:00
2026-04-04 12:35:05 +08:00
2026-04-16 20:50:06 +08:00
2026-04-17 10:27:39 +08:00
2026-04-20 04:04:13 +08:00
2026-04-05 00:22:38 +08:00
2026-03-22 18:57:44 +08:00
2026-04-15 15:34:33 +08:00
2026-04-11 20:45:53 +08:00
2026-03-29 16:00:46 +08:00
2026-04-16 16:26:07 +08:00
2026-04-24 15:32:23 +08:00
2026-04-27 08:11:40 +08:00
2026-04-16 20:50:06 +08:00
2026-04-19 00:00:31 +08:00
2026-04-21 22:26:07 +08:00
2026-04-21 15:19:14 +08:00
2026-03-31 16:06:35 +08:00
2026-04-15 16:06:54 +08:00
2026-04-01 11:11:50 +08:00
2026-04-27 08:11:40 +08:00
2026-03-24 12:57:36 +08:00
2026-03-31 16:06:35 +08:00
2026-04-25 02:10:06 +08:00
2026-04-09 23:36:36 +08:00
2026-04-07 11:17:40 +08:00
2026-04-11 20:45:53 +08:00
2026-04-24 23:53:56 +08:00
2026-03-31 22:47:54 +08:00
2026-03-31 22:47:54 +08:00
2026-04-25 09:48:04 +08:00
2026-04-24 10:55:50 +08:00
2026-03-31 11:23:38 +08:00
2026-03-26 21:55:50 +08:00
2026-04-12 17:52:57 +08:00
2026-04-24 15:32:23 +08:00
2026-04-10 10:43:53 +08:00
2026-04-11 20:45:53 +08:00
2026-04-02 09:02:41 +08:00
2026-04-17 16:14:44 +08:00
2026-04-19 22:39:40 +08:00
2026-04-11 20:45:53 +08:00
2026-04-15 15:34:33 +08:00
2026-04-11 20:45:53 +08:00
2026-04-15 13:08:38 +08:00
2026-03-26 10:01:57 +08:00
2026-04-09 10:52:40 +08:00
2026-04-15 22:29:09 +08:00
2026-03-26 12:49:30 +08:00
2026-04-25 03:07:28 +08:00
2026-04-09 14:55:04 +08:00
2026-04-27 08:11:40 +08:00
2026-04-27 08:11:40 +08:00
2026-04-27 08:11:40 +08:00
2026-03-31 16:06:35 +08:00
2026-04-24 15:52:25 +08:00
2026-04-24 15:32:23 +08:00
2026-04-10 11:35:10 +08:00
2026-04-24 10:55:50 +08:00
2026-04-04 12:02:03 +08:00
2026-04-24 10:55:50 +08:00
2026-04-20 20:00:06 +08:00
2026-04-15 13:08:38 +08:00
2026-04-24 15:41:35 +08:00
2026-04-08 16:36:18 +08:00
2026-04-26 20:40:57 +08:00
2026-04-26 20:19:46 +08:00
2026-03-26 16:03:16 +08:00
2026-04-22 09:10:39 +08:00
2026-03-29 16:00:46 +08:00
2026-04-15 16:06:54 +08:00
2026-04-16 02:46:17 +08:00
2026-04-15 13:08:38 +08:00
2026-04-25 02:10:06 +08:00
2026-03-29 15:27:49 +08:00
2026-04-01 16:20:57 +08:00
2026-04-08 21:47:38 +08:00
2026-04-16 15:35:19 +08:00
2026-03-26 15:32:52 +08:00
2026-03-29 15:27:49 +08:00
2026-04-25 10:31:27 +08:00
2026-03-30 01:52:59 +08:00
2026-03-24 09:20:56 +08:00
2026-03-26 16:06:20 +08:00
2026-04-15 15:47:05 +08:00
2026-04-15 18:56:26 +08:00
2026-04-17 16:14:44 +08:00
2026-04-08 16:36:18 +08:00
2026-04-07 13:02:20 +08:00