mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 08:28:31 +00:00
audit+refactor v1.7.0: drop hardcoded dacha bundle (293KB->83KB) + onboarding empty-state; remove migration & dead device_overrides/virtual_devices; extract src/logic.ts + validation.py (pure, unit-tested: 9 front + 10 back); fix latent bugs unmasked by truncated rules.ts (DOMAIN_PRIORITY, poly _defaultPositions); harden path sanitizers (leading-dot traversal); tsc strict in build+CI; sync versions
This commit is contained in:
@@ -1,5 +1,21 @@
|
||||
# Changelog
|
||||
|
||||
## v1.7.0 — 2026-07-04 (аудит + рефакторинг + тесты)
|
||||
- Удалён вшитый в бандл дом-образец (дача, ~245 КБ base64 планов + ROOMS/FLOOR_*): бандл
|
||||
293 КБ → 83 КБ. Свежая установка показывает онбординг «Добавить пространство», а не чужой дом.
|
||||
- Удалён код миграции legacy→сервер (дача уже на server config) и мёртвые пути
|
||||
device_overrides/virtual_devices (заменены markers[]).
|
||||
- Чистая логика вынесена в src/logic.ts (lqiColor, snapToGrid, segKey, pointInPolygon,
|
||||
markerIdForBinding, averageLqi) — покрыта юнит-тестами (node:test, 9 тестов + iconFor).
|
||||
- Бэкенд: валидация/санитайзеры вынесены в validation.py (без HA-импортов) — pytest, 10 тестов.
|
||||
- БЕЗОПАСНОСТЬ: тест выявил, что санитайзер имён файлов/маркеров сохранял ведущие точки
|
||||
(риск обхода каталогов через «..»); добавлено срезание ведущих точек, пустое → misc/file.
|
||||
- Исправлены реальные баги, ранее замаскированные обрезанным rules.ts: DOMAIN_PRIORITY был
|
||||
усечён (ломало выбор more-info-сущности); _defaultPositions падал на полигон-комнатах
|
||||
(теперь bbox). tsc --noEmit добавлен в сборку и CI — строгая типизация проходит.
|
||||
- Убраны дубли-мусор src/data/{editor,rules}.ts; версии синхронизированы (manifest застрял на 1.4.0).
|
||||
- CI: добавлены typecheck, юнит-тесты фронта и бэка.
|
||||
|
||||
## v1.6.2 — 2026-07-04
|
||||
- Поле «Комната» в диалоге устройства теперь для ВСЕХ значков (не только виртуальных):
|
||||
для привязанных — «переопределить размещение» (по умолчанию по зоне устройства); смена
|
||||
|
||||
Reference in New Issue
Block a user