- SyncPricelists() теперь захватывает pricelistMu, предотвращая параллельный
запуск фонового тикера и ручного sync (было причиной UNIQUE constraint ошибки)
- Дедупликация lot_name в fetchServerPricelistItems на случай дублей на сервере
- PushPendingChanges пишет запись в sync_log (тип "changes") при каждом запуске
- syncPricelists вызывает reportClientSchemaState через defer — состояние
клиента отправляется на сервер независимо от исхода синхронизации
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>