- Добавлена проверка и безопасная установка OTA-обновлений Windows с откатом.
- Нумерация линий и блоков переведена на индексы с нуля.
- Добавлена миграция старых JSON-схем с сохранением физической адресации.
- Обновлены генератор, сборка, документация и smoke-проверки.
- Подготовлена версия 3.3.0.
- Создан автономный модуль mapping_renderer.py, рисующий маппинг напрямую из MappingDocument.
- Изображение больше не зависит от Qt-сцены и не содержит метки интерфейса или лишних id.
- Разрешение выходного изображения 2400x2400+800 пикселей с боковой легендой.
- Плашки start/end блоков рисуются напрямую на изображении.
- Добавлено предупреждение при несохранённых изменениях (с возможностью сохранить и экспортировать сразу).
- canvas.py очищен от предыдущей неработающей реализации export_to_image.
- Добавлена подложка с видимостью, прозрачностью, масштабом, перемещением и редактированием через отдельное меню.
- Добавлен инструмент создания свободных светодиодов и редактирование X/Y для вручную созданных точек в таблице.
- Упрощена таблица выбранных LED: единый ID, координаты X/Y и UID в конце.
- Добавлены настраиваемые горячие клавиши для всех действий и переключатель отображения id светодиодов.
- Улучшена отрисовка линий: стрелки направления, изгибы при полном и частичном визуальном наложении сегментов.
- Оптимизировано переключение активных линий, выбор точек и поиск наложений соединений для снижения подвисаний.
- Исправлена логика ручных LED: row/col рассчитываются по сетке 34 мм, а ручные точки не сдвигают якорь сетки.
- Обновлена сборка EXE: имя использует тег, короткий хэш или дату/время для dirty-репозитория.
- Расширен smoke-набор до 113 проверок для новых функций и регрессий.