- ensureConfigurationProject: если project не найден ни на сервере, ни локально
(stale UUID после удаления), падаем в fallback «Без проекта» вместо вечной ошибки
- PushPendingChanges: автоматически вызывает RepairPendingChanges() перед циклом,
чтобы локально-исправимые проблемы чинились до попытки отправки
- maxPendingChangeAttempts=20: после 20 неудачных попыток change считается
unrecoverable и удаляется из очереди (логируется ERROR)
- pushSingleChange/pushConfigurationChange: unknown entity type / operation
теперь дропается с warn вместо вечного error в цикле
- latestSyncErrorState: last_sync_error_text в qt_client_schema_state теперь
содержит JSON-массив с type/uuid/op/attempts/error по всем застрявшим changes
(до 20 штук) вместо текста только последней ошибки
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>