From d337d1fe1d09a33d1b48235cc598ef3420ebf22c Mon Sep 17 00:00:00 2001 From: rcourtman Date: Tue, 24 Mar 2026 15:00:53 +0000 Subject: [PATCH] Govern Patrol header presentation helpers --- .../subsystems/patrol-intelligence.md | 30 ++++++++++++------- .../v6/internal/subsystems/registry.json | 18 +++++++++++ 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/docs/release-control/v6/internal/subsystems/patrol-intelligence.md b/docs/release-control/v6/internal/subsystems/patrol-intelligence.md index 3f865fac7..23d3564c4 100644 --- a/docs/release-control/v6/internal/subsystems/patrol-intelligence.md +++ b/docs/release-control/v6/internal/subsystems/patrol-intelligence.md @@ -37,12 +37,14 @@ Patrol-specific presentation helpers. 14. `frontend-modern/src/components/patrol/` 15. `frontend-modern/src/utils/aiFindingPresentation.ts` 16. `frontend-modern/src/utils/approvalRiskPresentation.ts` -17. `frontend-modern/src/utils/findingAlertIdentity.ts` -18. `frontend-modern/src/utils/patrolEmptyStatePresentation.ts` -19. `frontend-modern/src/utils/patrolFormat.ts` -20. `frontend-modern/src/utils/patrolRunPresentation.ts` -21. `frontend-modern/src/utils/patrolSummaryPresentation.ts` -22. `frontend-modern/src/utils/textPresentation.ts` +17. `frontend-modern/src/utils/aiPatrolSchedulePresentation.ts` +18. `frontend-modern/src/utils/aiQuickstartPresentation.ts` +19. `frontend-modern/src/utils/findingAlertIdentity.ts` +20. `frontend-modern/src/utils/patrolEmptyStatePresentation.ts` +21. `frontend-modern/src/utils/patrolFormat.ts` +22. `frontend-modern/src/utils/patrolRunPresentation.ts` +23. `frontend-modern/src/utils/patrolSummaryPresentation.ts` +24. `frontend-modern/src/utils/textPresentation.ts` ## Shared Boundaries @@ -52,9 +54,10 @@ Patrol-specific presentation helpers. 1. Add or change Patrol page orchestration through `frontend-modern/src/features/patrol/usePatrolIntelligenceState.ts`, keep `frontend-modern/src/features/patrol/patrolInvestigationContextModel.ts` as the canonical investigation-context derivation owner, keep `frontend-modern/src/features/patrol/PatrolIntelligenceSurface.tsx` as the feature shell, keep the Patrol-owned section files under `frontend-modern/src/features/patrol/` as the heavy render owners, keep `frontend-modern/src/pages/AIIntelligence.tsx` as the route shell, keep `frontend-modern/src/stores/aiIntelligenceSummaryModel.ts` as the canonical AI summary normalization owner, and update `frontend-modern/src/stores/aiIntelligence.ts` together 2. Add or change Patrol findings, approvals, investigation, or run-history presentation through `frontend-modern/src/components/AI/FindingsPanel.tsx` and `frontend-modern/src/components/patrol/` -3. Keep Patrol and chat identifier-label presentation aligned through the shared `frontend-modern/src/utils/textPresentation.ts` -4. Keep Patrol and chat stream-matching / mention dedupe aligned through the shared `frontend-modern/src/utils/chatIdentifiers.ts` -5. Keep Patrol transport and payload changes aligned through the governed AI runtime and API contract transport surfaces +3. Add or change Patrol header quickstart-credit or schedule presentation through `frontend-modern/src/features/patrol/PatrolIntelligenceHeader.tsx`, `frontend-modern/src/utils/aiQuickstartPresentation.ts`, and `frontend-modern/src/utils/aiPatrolSchedulePresentation.ts` +4. Keep Patrol and chat identifier-label presentation aligned through the shared `frontend-modern/src/utils/textPresentation.ts` +5. Keep Patrol and chat stream-matching / mention dedupe aligned through the shared `frontend-modern/src/utils/chatIdentifiers.ts` +6. Keep Patrol transport and payload changes aligned through the governed AI runtime and API contract transport surfaces ## Forbidden Paths @@ -93,7 +96,14 @@ semantics, and `frontend-modern/src/stores/aiIntelligenceSummaryModel.ts` now owns the canonical summary normalization so Patrol consumers inherit one governed recent-change and policy-posture snapshot instead of reintroducing hook-local fallback logic. -flow inline. +hook-local fallback logic. +The Patrol header now also has explicit helper ownership for its quickstart and +schedule presentation. `frontend-modern/src/utils/aiQuickstartPresentation.ts` +and `frontend-modern/src/utils/aiPatrolSchedulePresentation.ts` are the +canonical owners for quickstart-credit messaging and Patrol interval option +labeling used by `frontend-modern/src/features/patrol/PatrolIntelligenceHeader.tsx`; +future Patrol header work should extend those helpers instead of rebuilding +credit badges or schedule labels inline in the header shell. Patrol finding state must now also consume the canonical camelCase `alertIdentifier` field and pending-approval expiry metadata end to end. diff --git a/docs/release-control/v6/internal/subsystems/registry.json b/docs/release-control/v6/internal/subsystems/registry.json index 9810579de..9141c231d 100644 --- a/docs/release-control/v6/internal/subsystems/registry.json +++ b/docs/release-control/v6/internal/subsystems/registry.json @@ -2884,6 +2884,8 @@ "frontend-modern/src/stores/aiIntelligenceSummaryModel.ts", "frontend-modern/src/types/aiIntelligence.ts", "frontend-modern/src/utils/aiFindingPresentation.ts", + "frontend-modern/src/utils/aiPatrolSchedulePresentation.ts", + "frontend-modern/src/utils/aiQuickstartPresentation.ts", "frontend-modern/src/utils/approvalRiskPresentation.ts", "frontend-modern/src/utils/findingAlertIdentity.ts", "frontend-modern/src/utils/patrolEmptyStatePresentation.ts", @@ -2932,6 +2934,22 @@ "frontend-modern/src/utils/__tests__/frontendResourceTypeBoundaries.test.ts" ] }, + { + "id": "patrol-header-presentation-helpers", + "label": "patrol header presentation helper proof", + "match_prefixes": [], + "match_files": [ + "frontend-modern/src/utils/aiPatrolSchedulePresentation.ts", + "frontend-modern/src/utils/aiQuickstartPresentation.ts" + ], + "allow_same_subsystem_tests": false, + "test_prefixes": [], + "exact_files": [ + "frontend-modern/src/utils/__tests__/aiPatrolSchedulePresentation.test.ts", + "frontend-modern/src/utils/__tests__/aiQuickstartPresentation.test.ts", + "frontend-modern/src/utils/__tests__/frontendResourceTypeBoundaries.test.ts" + ] + }, { "id": "patrol-findings-and-approvals", "label": "patrol findings and approvals proof",