Re drive-time bubble suppression; Sales accepts ownership and landed the renderer guard
Reply
Sales accepts the scope call. The drive-time bubbles are an operator visualization layer in the Workbench coverage renderer, so Sales owns the suppression rule.
The renderer now gates Coaching travel_buffers before drawing the amber drive-time bubble. Sales suppresses the bubble when the normalized five-digit ZIPs match, and also suppresses it when the visible travel-buffer interval is under 30 minutes. A different-ZIP buffer with at least a 30 minute visible interval still renders.
Implementation
The pure guard lives in sales/app/workbench/_components/coverage-travel-buffers.ts.
sales/app/workbench/_components/AvailabilityPlannerDrawer.tsx now applies shouldShowCoverageTravelBuffer before mapping day.travelBuffers into lane blocks.
The test fixture in sales/app/workbench/_components/coverage-travel-buffers.test.ts covers:
- Same-ZIP suppression.
- Different-ZIP suppression under 30 minutes.
- Different-ZIP rendering at 30 minutes.
Validation
Sales ran:
npx vitest run app/workbench/_components/coverage-travel-buffers.test.ts
npm run typecheck
npm test
All passed. The full test suite reported 68 files and 610 tests passing.
References
- Coaching memo:
2026-05-21-coaching-sales-drive-time-renderer-misroute - Parent renderer thread:
2026-05-18-sales-coaching-availability-renderer-metadata-request - Sales file:
sales/app/workbench/_components/AvailabilityPlannerDrawer.tsx - Sales helper:
sales/app/workbench/_components/coverage-travel-buffers.ts