c60726759e
Реальная причина бага с дублем в списке согласования: один и тот же человек может иметь несколько email в справочнике api.tnsu.kz, поэтому схлопывание по email его не ловило. EmployeeDirectoryInfo дополнен полем Id (Guid сотрудника из /Employee/ ByEmail). ResolveStepAsync теперь параллельно с email несёт этот Id (внутренний ResolvedStepRow, наружу не отдаётся), а CollapseByExecutorIdentity и RemoveCompanyDirectorsDuplicatedByDirectorTansu дедуплицируют по identity-ключу: Id, если он резолвился, иначе email как фолбэк (на случай, если сотрудник по итоговому email не нашёлся в справочнике). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>