diff --git a/scripts/codex_audit_service.py b/scripts/codex_audit_service.py index ba86514..938276e 100644 --- a/scripts/codex_audit_service.py +++ b/scripts/codex_audit_service.py @@ -673,19 +673,6 @@ def _job_dedupe_key(payload: dict[str, Any]) -> str: def _classify_codex_exec_failure(text: str) -> str: if any(word in text for word in ("quota", "rate limit", "too many active", "budget")): return "quota_or_capacity_failure" - if any(word in text for word in ("timeout", "timed out", "temporarily", "unavailable", "connection", "network")): - return "transient_service_failure" - codex_auth_config_signals = ( - "not authenticated", - "authentication failed", - "login required", - "please log in", - "invalid api key", - "401 unauthorized", - "403 forbidden", - ) - if any(signal in text for signal in codex_auth_config_signals): - return "auth_or_config_failure" return "unknown_failure" diff --git a/scripts/run_monthly_codex_audit.py b/scripts/run_monthly_codex_audit.py index f8f5be1..edc4731 100644 --- a/scripts/run_monthly_codex_audit.py +++ b/scripts/run_monthly_codex_audit.py @@ -172,19 +172,6 @@ class BridgeError(RuntimeError): def _classify_codex_exec_failure(text: str) -> str: if any(word in text for word in ("quota", "rate limit", "too many active", "budget")): return "quota_or_capacity_failure" - if any(word in text for word in ("timeout", "timed out", "temporarily", "unavailable", "connection", "network")): - return "transient_service_failure" - codex_auth_config_signals = ( - "not authenticated", - "authentication failed", - "login required", - "please log in", - "invalid api key", - "401 unauthorized", - "403 forbidden", - ) - if any(signal in text for signal in codex_auth_config_signals): - return "auth_or_config_failure" return "unknown_failure" diff --git a/service/ai_gateway_service.py b/service/ai_gateway_service.py index 45ad57c..c663ddc 100644 --- a/service/ai_gateway_service.py +++ b/service/ai_gateway_service.py @@ -437,19 +437,6 @@ def _job_dedupe_key(payload: dict[str, Any]) -> str: def _classify_codex_exec_failure(text: str) -> str: if any(word in text for word in ("quota", "rate limit", "too many active", "budget")): return "quota_or_capacity_failure" - if any(word in text for word in ("timeout", "timed out", "temporarily", "unavailable", "connection", "network")): - return "transient_service_failure" - codex_auth_config_signals = ( - "not authenticated", - "authentication failed", - "login required", - "please log in", - "invalid api key", - "401 unauthorized", - "403 forbidden", - ) - if any(signal in text for signal in codex_auth_config_signals): - return "auth_or_config_failure" return "unknown_failure" diff --git a/tests/test_run_monthly_codex_audit.py b/tests/test_run_monthly_codex_audit.py index a6b9e35..f16cc12 100644 --- a/tests/test_run_monthly_codex_audit.py +++ b/tests/test_run_monthly_codex_audit.py @@ -541,6 +541,9 @@ def test_service_failure_classification_ignores_source_code_secret_words(self) - allowlist_message = "codex exec failed: raise ValueError('not allowed by source allowlist')" self.assertEqual(classify_service_failure(allowlist_message), "unknown_failure") self.assertEqual(codex_audit_service._classify_failure(allowlist_message), "unknown_failure") + forbidden_message = "codex exec failed: fixture text includes 403 forbidden" + self.assertEqual(classify_service_failure(forbidden_message), "unknown_failure") + self.assertEqual(codex_audit_service._classify_failure(forbidden_message), "unknown_failure") self.assertEqual(classify_service_failure("codex exec failed: too many active requests"), "quota_or_capacity_failure") self.assertEqual( classify_service_failure("source_repository foo is not allowed by service allowlist"),