From 230ad3ef9c8059da78a672e76799725f2bdf6402 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 1 Jul 2026 23:16:53 +0800 Subject: [PATCH] fix(api): surface p0 next action command in summary --- .../src/services/awoooi_priority_work_order_readback.py | 7 +++++++ .../tests/test_awoooi_priority_work_order_readback_api.py | 6 ++++++ apps/web/src/app/[locale]/awooop/work-items/page.tsx | 7 ++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/api/src/services/awoooi_priority_work_order_readback.py b/apps/api/src/services/awoooi_priority_work_order_readback.py index 20ac417ee..2c19ebe74 100644 --- a/apps/api/src/services/awoooi_priority_work_order_readback.py +++ b/apps/api/src/services/awoooi_priority_work_order_readback.py @@ -1079,6 +1079,13 @@ def apply_ai_loop_current_blocker_execution_queue( summary["ai_loop_current_blocker_safe_next_action_stage"] = ( safe_next_action_stage ) + summary["ai_loop_current_blocker_safe_next_action"] = safe_next_action + summary["ai_loop_current_blocker_safe_next_action_command"] = ( + safe_next_action_command + ) + summary["ai_loop_current_blocker_safe_next_action_post_verifier"] = ( + safe_next_action_post_verifier + ) summary["ai_loop_current_blocker_safe_next_action_requires_local_console"] = ( safe_next_action_requires_local_console ) diff --git a/apps/api/tests/test_awoooi_priority_work_order_readback_api.py b/apps/api/tests/test_awoooi_priority_work_order_readback_api.py index 5dd0765e4..5bd3910a0 100644 --- a/apps/api/tests/test_awoooi_priority_work_order_readback_api.py +++ b/apps/api/tests/test_awoooi_priority_work_order_readback_api.py @@ -538,6 +538,12 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu 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_command"] == ( + "recover-110-control-path-and-harbor-local.sh --check" + ) + assert "read-public-gitea-actions-queue.py --json" in payload["summary"][ + "ai_loop_current_blocker_safe_next_action_post_verifier" + ] assert payload["summary"][ "ai_loop_current_blocker_safe_next_action_requires_local_console" ] is True diff --git a/apps/web/src/app/[locale]/awooop/work-items/page.tsx b/apps/web/src/app/[locale]/awooop/work-items/page.tsx index 1ed977cf8..f96219413 100644 --- a/apps/web/src/app/[locale]/awooop/work-items/page.tsx +++ b/apps/web/src/app/[locale]/awooop/work-items/page.tsx @@ -1042,6 +1042,9 @@ type PriorityWorkOrderResponse = { ai_loop_current_blocker_deployment_closure_state?: string | null; ai_loop_current_blocker_safe_next_action_id?: string | null; ai_loop_current_blocker_safe_next_action_stage?: string | null; + ai_loop_current_blocker_safe_next_action?: string | null; + ai_loop_current_blocker_safe_next_action_command?: string | null; + ai_loop_current_blocker_safe_next_action_post_verifier?: string | null; ai_loop_current_blocker_safe_next_action_requires_local_console?: boolean | null; ai_loop_log_source_grouping_key_count?: number | null; ai_loop_log_source_grouping_keys?: string[] | null; @@ -7829,7 +7832,9 @@ function AiLoopLogSourceTagsPanel({ evidence?.ai_loop_current_blocker_safe_next_action_stage ?? ""; const safeNextActionCommand = - evidence?.ai_loop_current_blocker_safe_next_action_command ?? ""; + summary?.ai_loop_current_blocker_safe_next_action_command ?? + evidence?.ai_loop_current_blocker_safe_next_action_command ?? + ""; const safeNextRequiresLocalConsole = summary?.ai_loop_current_blocker_safe_next_action_requires_local_console ?? evidence?.ai_loop_current_blocker_safe_next_action_requires_local_console ??