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 26758ddd7..678efcb17 100644 --- a/apps/web/src/app/[locale]/awooop/work-items/page.tsx +++ b/apps/web/src/app/[locale]/awooop/work-items/page.tsx @@ -1200,6 +1200,8 @@ type CurrentP0ExecutionFocus = { autostart_check_mode_ready?: boolean | null; service_data_backup_closed?: boolean | null; operation_boundaries?: { + low_medium_high_controlled_apply_allowed?: boolean | null; + critical_break_glass_required?: boolean | null; secret_value_read?: boolean | null; host_reboot?: boolean | null; vm_power_change?: boolean | null; @@ -11619,7 +11621,9 @@ function MainlineWorkProgressStrip({ programSummary?.completion_percent ?? (total > 0 ? Math.round((done / total) * 100) : 0) ); - const readiness = toCount(summary?.active_p0_readiness_percent); + const readiness = toCount( + focus?.readiness_percent ?? summary?.active_p0_readiness_percent + ); const nextId = programSummary?.next_work_item_id ?? summary?.commander_inserted_requirement_next_id ?? @@ -11635,9 +11639,12 @@ function MainlineWorkProgressStrip({ summary?.commander_inserted_requirement_next_action ?? items[0]?.next_action ?? "--"; - const currentP0 = summary?.active_p0_workplan_id ?? "--"; - const currentState = summary?.active_p0_state ?? "--"; + const currentP0 = focus?.workplan_id ?? summary?.active_p0_workplan_id ?? "--"; + const currentState = focus?.state ?? summary?.active_p0_state ?? "--"; const activeBlockers = summary?.active_p0_live_active_blockers ?? []; + const activeBlockerCount = toCount( + focus?.active_blocker_count ?? activeBlockers.length + ); const primaryBlocker = focus?.primary_blocker ?? summary?.active_p0_primary_blocker ?? @@ -11664,7 +11671,7 @@ function MainlineWorkProgressStrip({ summary?.current_p0_execution_focus_no_secret_verifier_ready ?? false; const boundary = focus?.operation_boundaries; - const boundaryClosed = + const legacyBoundaryClosed = boundary && boundary.secret_value_read === false && boundary.host_reboot === false && @@ -11672,6 +11679,14 @@ function MainlineWorkProgressStrip({ boundary.remote_write === false && boundary.database_write === false && boundary.github_api === false; + const controlledBoundaryReady = + boundary?.low_medium_high_controlled_apply_allowed === true && + boundary?.critical_break_glass_required === true && + boundary.secret_value_read === false && + boundary.host_reboot === false && + boundary.vm_power_change === false && + boundary.github_api === false; + const boundaryClosed = legacyBoundaryClosed || controlledBoundaryReady; const visibleItems = pickMainlineVisibleWorkItems(items, nextId, 6); const statusMetrics = [ { @@ -11844,7 +11859,7 @@ function MainlineWorkProgressStrip({ {t("primaryBlocker")} - {t("blockerCount", { count: activeBlockers.length })} + {t("blockerCount", { count: activeBlockerCount })}