52 lines
2.9 KiB
Markdown
52 lines
2.9 KiB
Markdown
# QuoteForge v1.0.3
|
||
|
||
Дата релиза: 2026-02-06
|
||
Тег: `v1.0.3`
|
||
Диапазон изменений: `v1.0.2..v1.0.3`
|
||
|
||
## Что нового
|
||
|
||
- Добавлена страница управления проектами `/projects` с:
|
||
- датой и временем создания проекта;
|
||
- сортировкой по названию и дате создания;
|
||
- серверной пагинацией;
|
||
- фильтром по автору в заголовке таблицы.
|
||
- Добавлена отдельная вкладка `Статус синхронизации` на уровне `Алерты / Компоненты / Прайслисты`.
|
||
- Во вкладке статуса синхронизации отображаются:
|
||
- пользователь;
|
||
- версия приложения;
|
||
- статус (`онлайн` или относительное время последней синхронизации).
|
||
|
||
## Изменения синхронизации
|
||
|
||
- Реализован heartbeat синхронизации пользователей в MariaDB: `qt_pricelist_sync_status`.
|
||
- Добавлен API `GET /api/sync/users-status` для UI статуса синхронизации.
|
||
- Логика онлайн-статуса рассчитана от интервала фоновой синхронизации: `5 минут + 10%`.
|
||
- В heartbeat фиксируется версия приложения (`app_version`).
|
||
|
||
## Важные исправления
|
||
|
||
- Исправлено восстановление отсутствующей серверной конфигурации при push обновлений.
|
||
- Исправлено экранирование паролей в MySQL DSN в setup.
|
||
- Улучшена логика запуска SQL-миграций на старте при отсутствии прав/необходимости.
|
||
- Обновлена логика пересчета прайслистов через админский price-refresh.
|
||
|
||
## Миграции и совместимость
|
||
|
||
Добавлены SQL-миграции:
|
||
|
||
- `migrations/010_add_pricelist_sync_status.sql`
|
||
- `migrations/011_add_app_version_to_pricelist_sync_status.sql`
|
||
|
||
Релиз совместим с предыдущей веткой `v1.0.x`; новая таблица синхронизации создается автоматически.
|
||
|
||
## Коммиты в релизе
|
||
|
||
- `b1b50ce` Add projects table controls and sync status tab with app version
|
||
- `6ab1e98` sync: recover missing server config during update push
|
||
- `a1d2192` Fix MySQL DSN escaping for setup passwords and clarify DB user setup
|
||
- `a90c07c` update stale files list
|
||
- `e9307c4` Apply remaining pricelist and local-first updates
|
||
- `1b48401` Use admin price-refresh logic for pricelist recalculation
|
||
- `4a86f7b` fix: skip startup sql migrations when not needed or no permissions
|