Your Name
6de10cb073
CD Pipeline / build-and-deploy (push) Has been cancelled
test(wave8-blockers): 4 餘項 BLOCKER 修復驗收(vuln #4 + B14 + B25/B26 + B8)
確認 critic + debugger + vuln-verifier 報告中尚未驗收的 4 修復都已實裝在 production,
並補對應 dedicated tests:
vuln #4 — fusion prompt injection 防禦:
- score_with_elephant 內 _sanitize 剔除控制字元 + 截長至 max_len
- alert_name(100) / evidence(...) / proposal(300) 三層 sanitize
- 驗證:1000 個 'A' 攻擊 payload → prompt 內 'A' < 200,控制字元 \\x00\\x1b\\x02 全剔除
debugger B14 — Gemini quota fail-closed:
- ollama_failover_manager._check_gemini_quota except branch
- Redis 異常時 return False(非 fail-open),費用安全 > 服務可用性
- best-effort 呼叫 alert_gemini_quota_exceeded 通知運維
debugger B25/B26 — auto_repair drain_pending_tasks:
- AutoRepairService._pending_tasks (set) + drain_pending_tasks(timeout=60.0)
- main.py shutdown 已接 _repair_svc.drain_pending_tasks() 呼叫
- K8s rolling restart 時 fire-and-forget tasks 不丟失
debugger B8 — governance ≥3 failures alert:
- run_self_check 後聚合 failed_checks
- ≥3 項失敗 → self._alert("governance_self_failure", ...) 觸發
- payload 含 failed_checks list + total_checks=4 + errors dict
Tests: 10/10 PASSED (vuln 3 + B14 2 + drain 2 + governance 3)
Note: 此 commit 純補測,所有 4 修復代碼上 commit 已 in production
仍待: 1167+ CD runs 確認 deploy 成功
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 08:22:47 +08:00
..
2026-04-25 03:29:38 +08:00
2026-04-26 20:19:46 +08:00
2026-03-26 16:06:20 +08:00
2026-04-25 02:33:43 +08:00
2026-04-05 14:45:02 +08:00
2026-03-31 16:25:00 +08:00
2026-04-10 11:22:57 +08:00
2026-04-06 11:49:24 +08:00
2026-04-27 08:15:53 +08:00
2026-04-27 08:15:53 +08:00
2026-04-26 20:39:53 +08:00
2026-04-22 01:33:30 +08:00
2026-04-20 04:13:02 +08:00
2026-04-22 01:41:34 +08:00
2026-04-20 19:40:01 +08:00
2026-04-20 19:40:01 +08:00
2026-04-14 14:39:14 +08:00
2026-04-14 15:10:10 +08:00
2026-04-25 00:14:07 +08:00
2026-03-29 15:27:49 +08:00
2026-04-14 14:39:14 +08:00
2026-03-29 15:27:49 +08:00
2026-04-27 08:11:40 +08:00
2026-04-14 20:43:40 +08:00
2026-03-29 15:48:03 +08:00
2026-04-12 22:50:20 +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-04-11 22:05:52 +08:00
2026-04-27 08:11:40 +08:00
2026-04-26 20:56:19 +08:00
2026-03-31 12:16:54 +08:00
2026-04-15 12:44:53 +08:00
2026-04-14 18:43:29 +08:00
2026-04-11 21:33:19 +08:00
2026-04-26 20:17:17 +08:00
2026-04-01 11:11:50 +08:00
2026-04-27 08:11:40 +08:00
2026-04-07 11:17:40 +08:00
2026-03-31 16:16:16 +08:00
2026-04-26 20:44:19 +08:00
2026-03-31 12:20:29 +08:00
2026-04-26 20:18:33 +08:00
2026-03-26 16:06:20 +08:00
2026-04-15 13:08:38 +08:00
2026-04-12 13:32:42 +08:00
2026-03-29 20:49:23 +08:00
2026-04-03 14:00:21 +08:00
2026-04-26 20:18:33 +08:00
2026-04-27 08:15:10 +08:00
2026-04-26 20:18:33 +08:00
2026-04-16 00:13:00 +08:00
2026-04-27 08:11:40 +08:00
2026-04-27 08:17:59 +08:00
2026-04-09 08:55:21 +08:00
2026-04-05 00:14:50 +08:00
2026-04-05 00:14:50 +08:00
2026-03-26 16:06:20 +08:00
2026-04-14 15:19:54 +08:00
2026-04-15 13:08:38 +08:00
2026-04-15 13:08:38 +08:00
2026-03-31 14:17:36 +08:00
2026-03-29 16:23:30 +08:00
2026-03-23 23:51:37 +08:00
2026-04-14 14:39:14 +08:00
2026-04-15 13:08:38 +08:00
2026-04-20 04:23:09 +08:00
2026-04-09 09:01:59 +08:00
2026-04-10 01:12:00 +08:00
2026-04-26 20:48:51 +08:00
2026-04-12 21:08:48 +08:00
2026-04-12 21:20:16 +08:00
2026-03-31 16:16:16 +08:00
2026-04-22 01:27:39 +08:00
2026-04-27 08:11:40 +08:00
2026-04-27 08:22:47 +08:00