fix(agent): publish queue safe next action
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 37s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-07-01 18:25:30 +08:00
parent 3c187aa8a5
commit d873a3258c
9 changed files with 628 additions and 3 deletions

View File

@@ -233,6 +233,16 @@ def _assert_executor_readback(payload: dict, *, public_endpoint: bool = False):
"expected_schema"
] == "awoooi_production_deploy_readback_blocker_v1"
assert current_queue[0]["harbor_recovery_receipt_output_contract_count"] == 8
assert current_queue[0]["safe_next_action_id"] == (
"run_110_local_ssh_session_control_path_recovery_then_verify_cd_and_deploy_marker_readback"
)
assert current_queue[0]["safe_next_action_stage"] == (
"local_console_control_path_receipt_required"
)
assert current_queue[0]["safe_next_action_requires_local_console"] is True
assert current_queue[0]["safe_next_action_command"] == (
"recover-110-control-path-and-harbor-local.sh --check"
)
assert [
item["output_id"]
for item in current_queue[0]["harbor_recovery_receipt_output_contract"]
@@ -260,7 +270,7 @@ def _assert_executor_readback(payload: dict, *, public_endpoint: bool = False):
]
for item in current_queue[0]["harbor_recovery_receipt_output_contract"]
)
assert current_queue[0]["queue_readback_normalizer_contract_count"] == 14
assert current_queue[0]["queue_readback_normalizer_contract_count"] == 15
assert [
item["field_id"]
for item in current_queue[0]["queue_readback_normalizer_contract"]
@@ -278,6 +288,7 @@ def _assert_executor_readback(payload: dict, *, public_endpoint: bool = False):
"harbor_110_repair_failure_after_registry_ready",
"harbor_110_repair_visible_running_jobs_api_stale",
"current_cd_waiting_behind_harbor_110_repair_running",
"safe_next_action_id",
"controlled_profile_no_matching_runner_labels",
]
assert "gitea_queue_cd_jobs_stale_or_mismatched" in current_queue[0][

View File

@@ -419,6 +419,21 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
assert evidence["ai_loop_current_blocker_harbor_recovery_receipt_output_contract"][
0
]["writeback_targets"] == ["km", "rag", "playbook", "mcp", "verifier", "ai_agent"]
assert evidence["ai_loop_current_blocker_safe_next_action_id"] == (
"run_110_local_ssh_session_control_path_recovery_then_verify_cd_and_deploy_marker_readback"
)
assert evidence["ai_loop_current_blocker_safe_next_action_stage"] == (
"local_console_control_path_receipt_required"
)
assert (
evidence[
"ai_loop_current_blocker_safe_next_action_requires_local_console"
]
is True
)
assert evidence["ai_loop_current_blocker_safe_next_action_command"] == (
"recover-110-control-path-and-harbor-local.sh --check"
)
assert evidence["ai_loop_current_blocker_queue_readback_normalizer_field_ids"] == [
"cd_run_jobs_payload_classifier",
"harbor_110_repair_jobs_payload_classifier",
@@ -433,6 +448,7 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
"harbor_110_repair_failure_after_registry_ready",
"harbor_110_repair_visible_running_jobs_api_stale",
"current_cd_waiting_behind_harbor_110_repair_running",
"safe_next_action_id",
"controlled_profile_no_matching_runner_labels",
]
assert evidence["ai_loop_current_blocker_queue_readback_normalizer_contract"][0][
@@ -519,6 +535,12 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
"load_not_high"
)
assert payload["summary"]["ai_loop_current_blocker_local_console_phase_count"] == 5
assert payload["summary"]["ai_loop_current_blocker_safe_next_action_id"] == (
"run_110_local_ssh_session_control_path_recovery_then_verify_cd_and_deploy_marker_readback"
)
assert payload["summary"][
"ai_loop_current_blocker_safe_next_action_requires_local_console"
] is True
assert payload["summary"][
"ai_loop_current_blocker_post_recovery_readback_command_count"
] == 3
@@ -547,7 +569,7 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
payload["summary"][
"ai_loop_current_blocker_queue_readback_normalizer_contract_count"
]
== 14
== 15
)
assert payload["summary"][
"ai_loop_current_blocker_queue_readback_normalizer_field_ids"