Govern Patrol header presentation helpers

This commit is contained in:
rcourtman 2026-03-24 15:00:53 +00:00
parent 0e3d8d1943
commit d337d1fe1d
2 changed files with 38 additions and 10 deletions

View file

@ -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.

View file

@ -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",