fix: make h2 patch repair failures diagnosable
This commit is contained in:
@@ -89,8 +89,26 @@ class GoalPatchWorkflowTests(unittest.TestCase):
|
||||
self.assertEqual(output, repaired)
|
||||
self.assertEqual(reason, "ok")
|
||||
self.assertEqual(usage["repair_model"], "openai-compatible:aug/claude-sonnet")
|
||||
self.assertEqual(usage["repair_attempts"], [
|
||||
{"attempt": 1, "provider": "openai", "model": "openai:gpt-4.1", "status": "failed", "reason": "goal_patch_check_failed:corrupt"},
|
||||
{"attempt": 2, "provider": "omniroute", "model": "openai-compatible:aug/claude-sonnet", "status": "pass", "reason": "ok"},
|
||||
])
|
||||
self.assertEqual([item.args[0] for item in call.call_args_list], ["openai:gpt-4.1", "openai-compatible:aug/claude-sonnet"])
|
||||
|
||||
def test_repair_records_each_provider_failure_without_hiding_the_primary(self):
|
||||
with (
|
||||
patch.dict(os.environ, {"CASAN_GOAL_PATCH_REPAIR_ATTEMPTS": "2", "CASAN_GOAL_PATCH_REPAIR_MODELS": "openai:gpt-5.3-codex,openai-compatible:gateway"}, clear=False),
|
||||
patch.object(ORCHESTRATOR, "call_model", side_effect=[
|
||||
(False, "", {}, "model_exit_2:MODEL_ROUTER_ERROR provider_response_empty openai-responses content_type=unknown"),
|
||||
(False, "", {}, "model_exit_2:MODEL_ROUTER_ERROR provider_response_invalid openai-compatible JSONDecodeError bytes=0 content_type=unknown"),
|
||||
]),
|
||||
):
|
||||
ok, _, usage, reason = ORCHESTRATOR.repair_write_output("ollama:ornith", "original", "plan")
|
||||
self.assertFalse(ok)
|
||||
self.assertIn("openai-compatible", reason)
|
||||
self.assertEqual([entry["provider"] for entry in usage["repair_attempts"]], ["openai", "omniroute"])
|
||||
self.assertIn("openai-responses", usage["repair_attempts"][0]["reason"])
|
||||
|
||||
def test_patch_outside_workspace_is_denied(self):
|
||||
job = {"workspace": {"context_roots": ["apps/okr/frontend"]}}
|
||||
content = "diff --git a/package.json b/package.json\n--- a/package.json\n+++ b/package.json\n@@ -1 +1 @@\n-a\n+b\n"
|
||||
|
||||
Reference in New Issue
Block a user