v1.4.3+v1.4.4: icon centers snap to markup grid (drag + one-time DB snap); CRITICAL: optimistic locking for config (rev/expected_rev/conflict), houseplan_config_updated event with live client resync, per-device layout updates instead of full set

This commit is contained in:
JB
2026-07-04 12:06:09 +03:00
parent 609872b7b8
commit 08cd929b8d
9 changed files with 110 additions and 23 deletions
+15
View File
@@ -1,5 +1,20 @@
# Changelog
## v1.4.4 — 2026-07-04 (КРИТИЧЕСКИЙ фикс: гонка конфигураций)
- ИНЦИДЕНТ: config сохранялся целиком по принципу last-writer-wins — открытый клиент со
старой копией затирал чужие правки (потеряна первая итерация пользовательской разметки).
- Фикс: оптимистичная блокировка — конфиг несёт `rev`; `config/set` принимает `expected_rev`
и возвращает ошибку `conflict` при несовпадении; клиент перечитывает конфиг.
- Live-синхронизация: `config/set` рассылает событие `houseplan_config_updated`; все открытые
карточки подписаны и перечитывают конфиг автоматически (окна больше не расходятся).
- Позиции при drag сохраняются точечно через `layout/update` (dirty-set), а не полным
`layout/set` — раскладка тоже больше не затирается между окнами.
- Бэкап конфига перед деплоем: .storage/houseplan.config.bak-*.
## v1.4.3 — 2026-07-04
- Иконки устройств привязываются к той же сетке, что и разметка (центр иконки = узел, снап
при перетаскивании и вводе X/Y). Существующие 57 позиций в БД дачи снапнуты к узлам.
## v1.4.2 — 2026-07-04 (сетка разметки)
- Шаг сетки уменьшен в 2 раза: GRID_N 60 → 120 (шаг 8.33 рендер-ед. ≈ 0.83% ширины плана).
- Точки сетки рендерятся ПОВЕРХ плана и комнат (grid-rect перенесён из под-плана в верхний