mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
Диалог «Оптимизировать» при отказе перечисляет причину по каждому пространству (7 значений OptimizeGeometryFailureReason получили RU/EN строки), даёт «Скопировать диагностику» — JSON-блок с origin: runtime, версией карточки, отпечатками и классами исключений (граница приватности checkOptimizeGeometry; privacy-тесты дополнены позитивной проверкой) — и пишет одну структурированную запись в dev-лог (дедупликация по fingerprint). При недоступном clipboard блок раскрывается прямо в диалоге. Совет «обновите House Plan» больше не безусловный: websocket houseplan/config/get теперь возвращает integration_version (бэкенд-тест), и подсказка показывается только при реальном расхождении с версией карточки; старый бэкенд без поля — подсказки нет. Три новых мутанта (потеря причины в диалоге, блок без reason, отключённый dev-лог) — краснота каждого проверена исполнением; смок smoke_preflight_diagnostics на dev падает. Issue: #295 User-Visible: yes