cb86065588
SupplierCsvParser — pure streaming-generator CSV parser: - BOM (UTF-8 EF BB BF) + CRLF normalization - Malformed rows (< 6 columns) skipped + Log::warning - 5 unit tests: empty / 1 row / 1000 rows / malformed / BOM+CRLF SupplierPortalClient::downloadLeadsCsv(CarbonInterface, CarbonInterface): - GET /admin/report/index?type=49 через существующий request() helper - Наследует auth/retry семантику (401 → RefreshSession, 5xx → Transient, 4xx → Client) - 3 unit tests через Http::fake: 200 / 401 retry / 500 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>