Skip to content

Commit 6818446

Browse files
Pigbibicodex
andcommitted
fix: align execution action with review-only mode
Co-Authored-By: Codex <noreply@openai.com>
1 parent ef194a3 commit 6818446

4 files changed

Lines changed: 9 additions & 4 deletions

File tree

service/ai_gateway_service.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1633,7 +1633,8 @@ def _handle_record_automation_run(self, claims: dict[str, Any], payload: dict[st
16331633
if mode_from_payload
16341634
else existing_metadata.get("requested_mode") or existing_metadata.get("mode")
16351635
)
1636-
requested_mode = _normalize_control_mode_param(str(raw_mode or MODE_REVIEW_ONLY))
1636+
default_mode = MODE_REVIEW_ONLY if existing is not None else MODE_REVIEW_AND_FIX
1637+
requested_mode = _normalize_control_mode_param(str(raw_mode or default_mode))
16371638
if mode_from_payload and not requested_mode:
16381639
raise ValueError("invalid mode")
16391640
run_metadata = {

service/automation_decision.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,8 @@ def decide_automation_execution(
424424
else:
425425
reasons.append(f"quota status is {quota}; execution already blocked")
426426
effective_mode = MODE_REVIEW_ONLY
427+
if action == EXECUTION_RUN and effective_mode == MODE_REVIEW_ONLY:
428+
action = EXECUTION_REVIEW_ONLY
427429
human_review_required = action == EXECUTION_HUMAN_REVIEW
428430

429431
return {

tests/test_ai_gateway_service_get_routes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -583,8 +583,8 @@ def test_automation_routes_record_and_return_run_ledger(self) -> None:
583583
recorded = json.loads(response.read().decode("utf-8"))
584584
self.assertEqual(recorded["run"]["run_id"], "platform-health-run-1")
585585
self.assertEqual(recorded["run"]["suggested_action"], recorded["control"]["action"])
586-
self.assertEqual(recorded["control"]["execution"]["requested_mode"], "review_only")
587-
self.assertEqual(recorded["run"]["metadata"]["requested_mode"], "review_only")
586+
self.assertEqual(recorded["control"]["execution"]["requested_mode"], "review_and_fix")
587+
self.assertEqual(recorded["run"]["metadata"]["requested_mode"], "review_and_fix")
588588
self.assertEqual(recorded["run"]["service_health"], recorded["control"]["service_health"])
589589
self.assertEqual(recorded["run"]["quota_status"], recorded["control"]["quota_status"])
590590
self.assertEqual(recorded["run"]["org_health_status"], recorded["control"]["org_health_status"])

tests/test_automation_decision.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def test_auto_merge_is_disabled_when_effective_mode_is_review_only(self) -> None
9393
policy={"default": {"max_autonomy": "auto_merge"}},
9494
)
9595

96-
self.assertEqual(result["action"], EXECUTION_RUN)
96+
self.assertEqual(result["action"], EXECUTION_REVIEW_ONLY)
9797
self.assertEqual(result["effective_mode"], MODE_REVIEW_ONLY)
9898
self.assertFalse(result["auto_fix_allowed"])
9999
self.assertFalse(result["auto_merge_allowed"])
@@ -108,6 +108,7 @@ def test_degraded_health_forces_review_only(self) -> None:
108108
org_health_status="ok",
109109
)
110110

111+
self.assertEqual(result["action"], EXECUTION_REVIEW_ONLY)
111112
self.assertEqual(result["effective_mode"], MODE_REVIEW_ONLY)
112113
self.assertFalse(result["auto_fix_allowed"])
113114
self.assertFalse(result["human_review_required"])
@@ -197,6 +198,7 @@ def test_repo_policy_can_force_review_only(self) -> None:
197198
policy={"repositories": {"QuantStrategyLab/CryptoLivePoolPipelines": {"max_autonomy": "review_only"}}},
198199
)
199200

201+
self.assertEqual(result["action"], EXECUTION_REVIEW_ONLY)
200202
self.assertEqual(result["effective_mode"], MODE_REVIEW_ONLY)
201203
self.assertFalse(result["human_review_required"])
202204
self.assertFalse(result["auto_fix_allowed"])

0 commit comments

Comments
 (0)