diff --git a/apps/api/src/services/platform_operator_service.py b/apps/api/src/services/platform_operator_service.py index ef15e7f2..5c9744b6 100644 --- a/apps/api/src/services/platform_operator_service.py +++ b/apps/api/src/services/platform_operator_service.py @@ -1195,6 +1195,13 @@ def _km_stale_callback_owner_review_work_item( "callback_reply_status": "sent", } ) + work_item_query = urlencode( + { + "project_id": project_id, + "work_item_id": work_item_id, + "incident_id": incident_id, + } + ) return { "schema_version": "km_stale_callback_owner_review_work_item_v1", "work_item_id": work_item_id, @@ -1207,6 +1214,7 @@ def _km_stale_callback_owner_review_work_item( "next_step": "review_or_queue_km_owner_review", "target_surface": "awooop_runs_callback_evidence", "target_href": f"/awooop/runs?{target_query}", + "work_item_href": f"/awooop/work-items?{work_item_query}", "writes_on_read": False, "manual_review_required": True, "batch_writes_allowed": False, diff --git a/apps/api/tests/test_awooop_operator_timeline_labels.py b/apps/api/tests/test_awooop_operator_timeline_labels.py index 4ca357bd..1c7bd91c 100644 --- a/apps/api/tests/test_awooop_operator_timeline_labels.py +++ b/apps/api/tests/test_awooop_operator_timeline_labels.py @@ -573,6 +573,11 @@ def test_km_stale_completion_summary_generates_owner_review_work_item() -> None: "&incident_id=INC-20260524-16109D" "&callback_reply_status=sent" ), + "work_item_href": ( + "/awooop/work-items?project_id=awoooi" + "&work_item_id=km-callback-owner-review%3Aawoooi%3AINC-20260524-16109D" + "&incident_id=INC-20260524-16109D" + ), "writes_on_read": False, "manual_review_required": True, "batch_writes_allowed": False, diff --git a/apps/web/src/app/[locale]/awooop/runs/page.tsx b/apps/web/src/app/[locale]/awooop/runs/page.tsx index 8ce6eace..eed95017 100644 --- a/apps/web/src/app/[locale]/awooop/runs/page.tsx +++ b/apps/web/src/app/[locale]/awooop/runs/page.tsx @@ -306,6 +306,7 @@ interface KmStaleCallbackOwnerReviewWorkItem { next_step?: string | null; target_surface?: string | null; target_href?: string | null; + work_item_href?: string | null; writes_on_read?: boolean | null; manual_review_required?: boolean | null; batch_writes_allowed?: boolean | null; @@ -1530,9 +1531,9 @@ function CallbackKmCompletionSummary({ ) : (

{t("noRelated")}

)} - {workItem?.target_href ? ( + {workItem?.work_item_href || workItem?.target_href ? (