diff --git a/docs/release-control/v6/internal/subsystems/patrol-intelligence.md b/docs/release-control/v6/internal/subsystems/patrol-intelligence.md index f74f7a53d..d2756f78d 100644 --- a/docs/release-control/v6/internal/subsystems/patrol-intelligence.md +++ b/docs/release-control/v6/internal/subsystems/patrol-intelligence.md @@ -423,6 +423,10 @@ dedicated `frontend-modern/src/features/patrol/patrolInvestigationContextModel.t owner, so the Patrol hook composes one canonical payload-to-summary derivation instead of rebuilding recent-change, correlation, and governed-resource count copy inline. +That same normalization applies to supporting effort strips inside the expanded +run card. Once the run presenter is already carrying canonical coverage copy, +secondary chips must not reintroduce a raw `Scoped to N resources` variant that +re-opens the same ambiguity. The Patrol page's run-history tab label is now also tightened to `Runs`, while the underlying run-history panel remains canonical for snapshot filtering and tool-call inspection. That copy change is intentional: run history is support diff --git a/frontend-modern/src/components/patrol/RunHistoryEntry.tsx b/frontend-modern/src/components/patrol/RunHistoryEntry.tsx index 79c5fa5f4..38611aab1 100644 --- a/frontend-modern/src/components/patrol/RunHistoryEntry.tsx +++ b/frontend-modern/src/components/patrol/RunHistoryEntry.tsx @@ -391,7 +391,7 @@ export function RunHistoryEntry(props: RunHistoryEntryProps) { {((run.input_tokens || 0) + (run.output_tokens || 0)).toLocaleString()} tokens - + {formatScope(run) || 'Scoped'} diff --git a/frontend-modern/src/components/patrol/__tests__/RunHistoryEntry.test.tsx b/frontend-modern/src/components/patrol/__tests__/RunHistoryEntry.test.tsx index df93c7864..c3558e6ca 100644 --- a/frontend-modern/src/components/patrol/__tests__/RunHistoryEntry.test.tsx +++ b/frontend-modern/src/components/patrol/__tests__/RunHistoryEntry.test.tsx @@ -139,6 +139,7 @@ describe('RunHistoryEntry', () => { expect(screen.getByText('• Checked 1 of 2 scoped resources')).toBeInTheDocument(); expect(screen.getByText('Resources checked (1 of 2 scoped)')).toBeInTheDocument(); expect(screen.queryByText('• 1 resources')).not.toBeInTheDocument(); + expect(screen.queryByText('Scoped to 2 resources')).not.toBeInTheDocument(); expect( screen.getByText((_, element) => element?.tagName === 'P' &&