ab79072e52
Backlog item 3 (Wave 2), GmailController slice. Pure mechanical extraction, no behaviour change: - GmailDtos.cs: the 26 inline record DTOs, moved to a partial-class file so every existing GmailController.XyzDto reference (tests included) keeps working unchanged. - GmailParsing.cs: the 8 pure static helpers (ApplySyncBoundary, LooksLikeJobRelatedThread, ToConfidence, ExtractFirstEmail/RecruiterName/ CompanyName/RoleFromSubject, BuildPopupHtml), same partial-class approach. GmailController.cs: 1200 -> 1022 lines. 169/169 green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>