Bug Fixes
- replace non-null assertion with truthy check for openedAt in EmailRow
- make BusinessCommunications interface internal (only used in hook itself)
- use buildComplianceReminderEmail builder and parse DD-MM compliance date for real due label
- use rm relation connect/disconnect instead of scalar rmId in PATCH
- update glitchgrab to version 1.19.2 and add it to dependencies
- update version from 4.1.1 to 4.1.2 in bun.lock
- add glitchgrab to ignoreDependencies and remove from existing ignoreDependencies list
- add glitchgrab to ignoreDependencies in knip.json
- make EmailLogContext type internal (no external consumers, satisfies pruny)
Features
- add overview aggregation endpoint with financials, compliances, and activity
- add useBusinessOverview TanStack hook
- communications API merging EmailLog, WhatsApp, manual entries with phone/email matching and OTP filter
- compliance remind endpoint sends email to orgEmail and contacts, auto-logged to EmailLog
- add business identity header card with avatar, status badge, and ID strip
- add Communication tab UI with email/WhatsApp/manual rows and template label rendering
- add log communication dialog with channel chips, contact picker, templates, tags, link-to
- add overview tab with needs-attention, upcoming compliances, activity, team, and contacts sections
- redesign detail page with header card, stats grid, and parent-card tabs
- show upcoming compliances and recent activity side-by-side on overview tab
- wire Communication tab into business detail page
- wire Needs attention Remind button to compliance remind endpoint with pending state and toast
- include rm relation in business detail GET
- useBusinessCommunications TanStack hook
- pass logContext (businessId, source=INVOICE) when sending invoice email
- pass logContext (leadId, businessId) when sending daily lead emails
- add buildComplianceReminderEmail builder using wrapEmail with branding, urgency callout, signature
- add businessKeys.communications query-key factory
- add businessKeys.overview query-key factory
- add WhatsApp template label formatter for friendly Communication tab rendering
- instrument deliverEmail to write unified EmailLog rows with logContext
- pass logContext when sending onboarding invite email
- add EmailLog and ManualCommunication models for unified communication tracking
- migration adding EmailLog table with EmailSource enum
- migration adding ManualCommunication table with ManualCommType enum
- migration extending ManualCommunication with contactId, tags, linkedInvoiceId, linkedProposalId
- pass logContext (businessId, proposalId) when sending proposal notification
- add underline variant to PageTabSwitcher

