feat(governance): explain verifier failures
All checks were successful
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / tests (push) Successful in 1m21s
CD Pipeline / build-and-deploy (push) Successful in 3m23s
CD Pipeline / post-deploy-checks (push) Successful in 1m18s

This commit is contained in:
Your Name
2026-05-14 20:49:20 +08:00
parent dd269b195c
commit bad48dee04
5 changed files with 364 additions and 1 deletions

View File

@@ -64,6 +64,11 @@ async def _low_volume_coverage(self): # noqa: ANN001
"latest_auto_age_seconds": None,
"last_verified_auto_age_seconds": None,
"recent_unverified": [],
"recent_non_success": [],
"non_success_breakdown": {
"by_verification_result": [],
"by_failure_class": [],
},
}
@@ -150,6 +155,27 @@ def test_verification_coverage_payload_flags_backlog():
"created_at": None,
},
],
[
{
"auto_repair_id": "are-2",
"incident_id": "INC-2",
"incident_status": "INVESTIGATING",
"incident_severity": "P2",
"alert_category": "infrastructure",
"alertname": "DockerContainerMemoryLimitPressure",
"auto_success": False,
"playbook_id": "PB-1",
"playbook_name": "Docker pressure playbook",
"triggered_by": "auto_repair",
"risk_level": "LOW",
"verification_result": "degraded",
"auto_error": "FAILED: Unsupported scheme: 'ssh {host}'",
"post_state_text": '{"k8s_get_pod_logs": {"error": "empty_pod_name"}}',
"evidence_summary": "result=degraded",
"auto_created_at": None,
"verification_collected_at": None,
},
],
)
assert payload["status"] == "warning"
@@ -157,6 +183,14 @@ def test_verification_coverage_payload_flags_backlog():
assert payload["coverage_rate"] == pytest.approx(5 / 7)
assert payload["verification_success_rate"] == pytest.approx(4 / 5)
assert payload["recent_unverified"][0]["incident_id"] == "INC-1"
assert payload["recent_non_success"][0]["failure_class"] == "unsupported_action_scheme"
assert payload["recent_non_success"][0]["next_step"] == "normalize_playbook_executor"
assert payload["non_success_breakdown"]["by_failure_class"] == [
{"name": "unsupported_action_scheme", "count": 1},
]
assert payload["non_success_breakdown"]["by_verification_result"] == [
{"name": "degraded", "count": 1},
]
def test_verification_coverage_payload_skips_when_no_auto_repair():
@@ -170,6 +204,7 @@ def test_verification_coverage_payload_skips_when_no_auto_repair():
"unverified_auto": 0,
},
[],
[],
)
assert payload["status"] == "skipped_low_volume"