0638c38efc
Диалог «Редактировать» делал Object.assign(form, project) и слал весь объект, включая sms_senders=null для site/call. UpdateProjectRequest валидирует sms_senders как sometimes|array|min:1 → present-null проваливал array → 422. Поле sms на форме site/call не отрисовано, поэтому errors.sms_senders некуда показать — диалог «висел молча». Теперь persist() для не-sms проектов не шлёт sms_senders/sms_keyword (заодно не триггерит зря snapshot-guard). TDD: NewProjectDialog.spec — правка site не содержит sms-полей в PATCH body. Глаза: правка site-проекта → PATCH 200, имя изменилось, диалог закрылся. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>