mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-24 12:42:49 +00:00
843daf7ae3
Stacked on #2674 (branch `refactor/drop-patrol-context-summary`); this branch contains that commit. ## What Removes the two Patrol-to-Assistant handoff builders in `frontend-modern/src/features/patrol/patrolInvestigationContextModel.ts` that no production code calls: - `buildPatrolAssessmentAssistantHandoff`: its caller, the summary card's Discuss handler, went ineac7dfe9ef(2026-05-15). - `buildPatrolConfigurationFailureHandoff`: its last caller went in27ba85ddc6(2026-06-23). With them go `PatrolInvestigationContextSummary`, their input and output types, and the private helpers only they used. The model drops from 2,326 to 1,257 lines. ## Why it is safe - A TypeScript compiler export graph rooted at `src/index.tsx` shows no reachable importer of either builder, and `git grep` finds only their own tests. - Production builds of the parent tree and this tree are byte-identical across all 187 dist files (`shasum`). `check-bundle-size.mjs` passes. - The Assistant drawer still restores saved `patrol_assessment` and `patrol_configuration_failure` sessions. That code (`components/AI/Chat/index.tsx`, `workflowStarters.ts`, `internal/ai/chat/session.go`) is unchanged. ## Tests - The removed builders' cases are gone. - Two cases covered branches the live finding handoff still uses, so they now go through the live builders: a typed pending action stays approval-bound without a legacy approval id, and the resource node qualifier plus long-line truncation. - v8 coverage of the surviving model code matches the baseline from before the removal. The one exception is a defensive guard the live caller cannot reach. ## Contracts and docs Eight contracts changed: `patrol-intelligence`, `ai-runtime`, `api-contracts`, `frontend-primitives`, `security-privacy`, `storage-recovery`, `agent-lifecycle` and `unified-resources`. - No contract describes either handoff as a live producer any more. Statements about restoring saved sessions of those kinds stay. - Some clauses described a rendered Patrol summary card, assessment strip or readout, score chip, header trust line, or inline save-failure surface. They are now conditional or say what renders instead. - The run-history handoff clauses now say the browser sends the briefing and safe run metadata, and `internal/ai/patrol_assistant_handoff.go` rebuilds the model context from the run ID. - `docs/AI.md` and its public mirror pointed users at a legacy operational score in a collapsed supporting-context section. Neither exists any more. The section now points at **Activity > Finding options and history > History**. - `ai_runtime_docs_policy_test.py` is the registered proof for `docs/AI.md`. It now pins that location and rejects the retired claim. It also had a stale pin that has failed on main since 2789a15fe5; that pin now matches the current Patrol mode API wording. Prose about the remaining test-only summary presenters in `utils/patrolSummaryPresentation.ts` is left for a separate follow-up that removes those presenters. ## Browser verification Receipt `frontend-modern/browser-verification/6e6cbc66d62863d1.json`. Checked on an embedded production build on a private demo mock stack, at 1440x900 and 390x844: - Inbox "Explain with Assistant" opens the drawer with the Pulse Patrol attention briefing. - The run-history "Discuss" button opens the drawer with the "Patrol run attached" briefing.