mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-06 06:38:57 +00:00
Release v1.61.0-beta.3 candidate
This commit is contained in:
+13
-4
@@ -593,10 +593,19 @@ hash falls back to the default.
|
||||
token and projects to data fill `none` plus Glow `true` unless an explicit
|
||||
boolean wins. Normal settings/room saves materialise that projection in the
|
||||
same write; Optimize Plans performs the equivalent idempotent model-v6
|
||||
migration. Render order is paper → data room/tunnel fill → pointer-free Glow
|
||||
base room/tunnel fill → radial pools → sun/interactive layers. The static
|
||||
room card uses the same data/base projection but deliberately has no live
|
||||
pools.
|
||||
migration. Render order is paper → data room/tunnel fill → conditional
|
||||
pointer-free Glow base for rooms whose effective fill is `none` → radial
|
||||
pools → sun/interactive layers. A data/static fill (`lqi`, `light`, `temp`,
|
||||
`custom`) never receives the dark base, so its exact color and alpha remain
|
||||
visible; radial pools stay independent and continue to render. The static
|
||||
room card uses the same data/base projection, omits empty base groups, and
|
||||
deliberately has no live pools.
|
||||
- **Custom room fill** (#56): `space.settings.custom_fill` is the space color
|
||||
and `room.settings.custom_fill` is an optional explicit override. The pure
|
||||
projection is room → space → `{c:'#607d8b',a:.18}` and every read crosses
|
||||
`safeStoredColor` plus finite alpha clamping. `resolveEffectiveRoomFill`
|
||||
remains the single source for room floor, clean-floor holes and thick-wall
|
||||
tunnel colors; stored `room_color` continues to control borders/names only.
|
||||
- **Glow pools and additive composition** (#19): every source retains its own
|
||||
radial gradient and wall/door `clipPath`. All pools live in one flat isolated
|
||||
group inside one outer `opacity=.7` frame; only the pool elements use SVG
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
# Changelog
|
||||
|
||||
## v1.61.0-beta.3 — 2026-08-10
|
||||
|
||||
- Performance tooling now fails before measurement when a candidate/base card
|
||||
no longer exposes a private API consumed by the benchmark, documents the
|
||||
safe two-revision rename path, and falls back from an unreachable force-push
|
||||
comparison SHA to the latest reachable release. The bilingual release-body
|
||||
headings now have one explicit canonical template. ([#15](https://github.com/Matysh/houseplan-card/issues/15),
|
||||
[#16](https://github.com/Matysh/houseplan-card/issues/16),
|
||||
[#17](https://github.com/Matysh/houseplan-card/issues/17))
|
||||
- Rooms and spaces can now use a persistent custom fill color and opacity,
|
||||
independently of border/name color and Home Assistant state. Room overrides
|
||||
inherit safely from the space and can be reset. ([#56](https://github.com/Matysh/houseplan-card/issues/56))
|
||||
- Glow no longer darkens or tints LQI, light, temperature, or custom room
|
||||
fills: those colors stay exact while live radial light pools remain visible.
|
||||
([#61](https://github.com/Matysh/houseplan-card/issues/61))
|
||||
- The global Glow radius now sits with the other Glow settings. Small code
|
||||
review cleanups also remove an unreachable legacy branch and empty static
|
||||
SVG layers. ([#60](https://github.com/Matysh/houseplan-card/issues/60))
|
||||
|
||||
## v1.61.0-beta.2 — 2026-08-10
|
||||
|
||||
- Light-source Glow is now an independent overlay that can be combined with
|
||||
|
||||
@@ -6,6 +6,26 @@
|
||||
> **Правило проекта:** оба файла пополняются в одном коммите с самим
|
||||
> изменением — как и остальная документация (см. docs/STATUS.md).
|
||||
|
||||
## v1.61.0-beta.3 — 2026-08-10
|
||||
|
||||
- Performance-инструменты теперь до начала замеров сообщают об исчезнувшем
|
||||
приватном API карточки в candidate/base, документируют безопасное
|
||||
двухэтапное переименование и при недостижимом SHA после force-push выбирают
|
||||
последний достижимый релиз. Для заголовков двуязычного release body явно
|
||||
закреплён один канонический шаблон. ([#15](https://github.com/Matysh/houseplan-card/issues/15),
|
||||
[#16](https://github.com/Matysh/houseplan-card/issues/16),
|
||||
[#17](https://github.com/Matysh/houseplan-card/issues/17))
|
||||
- Для комнат и пространств появилась постоянная заливка своим цветом и
|
||||
прозрачностью, независимая от цвета границ/названий и состояния Home
|
||||
Assistant. Цвет комнаты безопасно наследуется от пространства и сбрасывается
|
||||
отдельной кнопкой. ([#56](https://github.com/Matysh/houseplan-card/issues/56))
|
||||
- Glow больше не затемняет и не меняет цвет заливки по LQI, свету, температуре
|
||||
или пользовательскому цвету: эти заливки остаются точными, а живые световые
|
||||
пятна продолжают отображаться. ([#61](https://github.com/Matysh/houseplan-card/issues/61))
|
||||
- Общий радиус свечения перенесён к остальным настройкам Glow. Мелкие правки по
|
||||
код-ревью также убрали недостижимую legacy-ветку и пустые SVG-слои статичной
|
||||
карточки. ([#60](https://github.com/Matysh/houseplan-card/issues/60))
|
||||
|
||||
## v1.61.0-beta.2 — 2026-08-10
|
||||
|
||||
- Свечение источников света стало независимым слоем и может одновременно
|
||||
|
||||
@@ -56,3 +56,10 @@ enabled Glow overlay; explicit `glow_enabled` / room `glow` booleans always win.
|
||||
A normal edit that replaces the legacy token writes the resolved boolean in the
|
||||
same operation. Optimize Plans applies the same lossless, idempotent model-v6
|
||||
migration while preserving unknown sibling settings.
|
||||
|
||||
Current `fill_mode` additionally accepts `custom`. Its optional color is stored
|
||||
as `{c:'#RRGGBB',a:0..1}` in `space.settings.custom_fill` and, for an explicit
|
||||
room override, `room.settings.custom_fill`. Missing or invalid historical data
|
||||
is projected at render time through room → space → `#607d8b`/`0.18`; merely
|
||||
reading it never rewrites the config. Backend writes keep the strict shared
|
||||
hex/finite-alpha contract.
|
||||
|
||||
@@ -218,19 +218,33 @@ bodies of skipped releases. The full detail remains in both
|
||||
`docs/CHANGELOG.ru.md` and `docs/CHANGELOG.md`; finish every release body with
|
||||
two explicit links, one to each language version of the changelog.
|
||||
|
||||
Changelog entries may link directly to a **closed** GitHub Issue when that
|
||||
issue is the canonical task for the shipped change. Append a normal Markdown
|
||||
link such as `([#55](https://github.com/Matysh/houseplan-card/issues/55))` to
|
||||
the relevant bullet in both language changelogs. Keep this optional: do not
|
||||
invent issues for minor work, do not link open or partially delivered issues,
|
||||
and do not expand the grouped small-fixes bullet into an issue inventory.
|
||||
|
||||
```md
|
||||
## Основное
|
||||
- Значимое изменение.
|
||||
- Исправлена конкретная проблема ([#123](https://github.com/Matysh/houseplan-card/issues/123)).
|
||||
- Мелкие исправления и улучшения.
|
||||
|
||||
## Highlights
|
||||
- Significant change.
|
||||
- Fixed a specific problem ([#123](https://github.com/Matysh/houseplan-card/issues/123)).
|
||||
- Small fixes and improvements.
|
||||
|
||||
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/vX.Y.Z/docs/CHANGELOG.ru.md)
|
||||
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/vX.Y.Z/docs/CHANGELOG.md)
|
||||
```
|
||||
|
||||
The literal `## Основное` and `## Highlights` headings above are the canonical
|
||||
release-body format. Do not maintain a second `## Русский` / `## English`
|
||||
template in scripts or release notes; change this single template if the
|
||||
product format changes again.
|
||||
|
||||
Replace `vX.Y.Z` with the release tag so the links remain pinned to the
|
||||
published version instead of drifting with `dev` or `main`.
|
||||
|
||||
|
||||
+11
-6
@@ -21,11 +21,11 @@ metadata). Only an explicit owner-approved emergency hotfix may skip this gate.
|
||||
|
||||
| Item | State |
|
||||
|---|---|
|
||||
| Version | **v1.61.0-beta.2** everywhere (manifest, const.py, package.json, CARD_VERSION) — pre-release candidate with independent/additive Glow and the long-press gesture fix |
|
||||
| Current local cycle | Stable v1.60.3 and pre-release v1.61.0-beta.1 are published. The current `dev` candidate for v1.61.0-beta.2 implements #55 (Glow independent from data fill, legacy-safe model-v6 migration and separate base/tunnel projection), #19 (flat additive pool composition with a cached real-pixel capability probe and normal fallback), and P1 #59 (a modal opened by mouse long-press now terminates the interrupted pan gesture). Deterministic fixtures, browser smokes, golden candidates and two same-runner performance profiles are included; publication waits for reviewed Linux golden baselines and the mandatory exact-SHA Validate run. |
|
||||
| Workflow | Owner's rule since 2026-08-07: ordinary fixes/features are made **locally, without tests and without commits**. A requested pre-release gets a production build plus the smallest targeted unit/smoke set covering the changed surfaces, one tested `dev` commit/tag and a GitHub Release with `prerelease=true`; `main` stays untouched. The complete local frontend/backend/smoke gate runs only before a stable release, after which `main` is fast-forwarded to the exact tested `dev` SHA and the GitHub Release uses `prerelease=false`. Release bodies are short and bilingual (Russian first): only significant user changes get individual bullets, while minor/code-only work is grouped as `Мелкие исправления и улучшения` / `Small fixes and improvements`; every body ends with separate links to the Russian and English changelogs. Nothing is copied to the home instance by hand |
|
||||
| Version | **v1.61.0-beta.3** everywhere (manifest, const.py, package.json, CARD_VERSION) — pre-release candidate with custom room colors, exact data fills under Glow and performance-infrastructure hardening |
|
||||
| Current local cycle | The v1.61.0-beta.3 candidate implements #56 (safe custom room/space fill), #61 (Glow base only when effective fill is `none`, while pools remain independent), #60 (Glow radius grouped with Glow settings), review L1/L2, and infrastructure #15/#16 (explicit performance-card API contract plus force-push-safe comparison SHA). #17 is closed after aligning the one canonical release-body template. Publication waits for the targeted local gate, reviewed Linux golden matrix v5 and mandatory green exact-SHA Validate. |
|
||||
| Workflow | Owner's rule since 2026-08-07: ordinary fixes/features are made **locally, without tests and without commits**. A requested pre-release gets a production build plus the smallest targeted unit/smoke set covering the changed surfaces, one tested `dev` commit/tag and a GitHub Release with `prerelease=true`; `main` stays untouched. The complete local frontend/backend/smoke gate runs only before a stable release, after which `main` is fast-forwarded to the exact tested `dev` SHA and the GitHub Release uses `prerelease=false`. Release bodies are short and bilingual (Russian first): only significant user changes get individual bullets, while minor/code-only work is grouped as `Мелкие исправления и улучшения` / `Small fixes and improvements`; every body ends with separate links to the Russian and English changelogs. Detailed RU/EN changelog bullets may link the corresponding closed GitHub Issues; open or partially delivered issues are never presented as shipped. Nothing is copied to the home instance by hand |
|
||||
| GitHub | https://github.com/Matysh/houseplan-card — [Issues](https://github.com/Matysh/houseplan-card/issues) are the canonical task records and the linked [Project v2](https://github.com/users/Matysh/projects/1) is the canonical priority/status view; both must stay current. `main` carries stable releases; pre-release tags may point directly at `dev`. Work lands on `dev` and is merged into `main` for a stable release, so `dev` is normally equal to or ahead of `main`, never behind. Push via SSH key `ha_jb` (remote git@github.com:…); API releases via the fine-grained PAT in `~/.git-credentials` (Contents R/W, issued 2026-07-23) |
|
||||
| CI | The v1.61.0-beta.2 local targeted gate passed: typecheck, 146 focused frontend tests, 86 validation-schema backend tests, Glow/settings/tunnel/static-parity/#59 browser smokes, reviewed local golden candidates, the 7-sample additive profile and a diagnostic full-house overlay sample. Both profiles preserve exact 1/10/30/60 pool cardinality, one render per HA tick and stable caches; the mandatory exact-SHA Ubuntu Validate will run the full HA/smoke/golden matrix and both 7-sample performance profiles before publication. `release.yml` withholds the card asset unless it is green. |
|
||||
| CI | The published v1.61.0-beta.2 exact-SHA Validate run is green. The v1.61.0-beta.3 targeted gate covers logic/backend enum+color validation, performance-card contracts, settings/room/tunnel/Glow/static browser smokes, golden matrix v5 and diagnostic samples of both performance profiles. `release.yml` withholds the card asset unless the final exact-SHA Validate is green. |
|
||||
| HACS | Custom repository works. **Inclusion PR: hacs/default#9004** — open, valid, labeled, mergeable clean, never drafted. Queue: 1212 open, 835 older than ours. Merge rate COLLAPSED: 75 in July but almost all in the first decade, 0 in the last week (checked 2026-07-29) — maintainers process in rare bursts; ETA unknowable, months at best. Nothing actionable on our side |
|
||||
| Home instance | ha.jbstudio.pro (SSH port **22222**, key `ha_jb`; HA config root is `/mnt/data/supervisor/homeassistant` — `/config` does NOT exist in this SSH environment), last direct copy was **v1.57.0**; from v1.58.0 on it updates itself through HACS by tag (no scp) |
|
||||
| Localization | UI en/ru (src/i18n/*.json), everything user-visible localized incl. kiosk popover |
|
||||
@@ -43,12 +43,17 @@ metadata). Only an explicit owner-approved emergency hotfix may skip this gate.
|
||||
across reloads (v1.38.2). **Kiosk mode** (v1.41.0): `kiosk: true` — no
|
||||
header/editors, swipe between spaces, double-tap zoom reset, `cycle: N`
|
||||
carousel, per-screen size multipliers in localStorage.
|
||||
- **Independent Glow overlay** (local #55/#19 over the v1.35–v1.37 model):
|
||||
dark-room base and per-source pools can coexist with any data fill. Pools use
|
||||
- **Independent Glow overlay** (#55/#19, refined locally by #61): dark-room
|
||||
base is used only with effective fill `none`; LQI/light/temp/custom colors
|
||||
keep their exact alpha while per-source pools remain visible. Pools use
|
||||
additive screen blending only after a cached real-pixel browser probe and
|
||||
otherwise fall back to normal composition; legacy `fill_mode: glow` remains
|
||||
losslessly readable/migratable. Existing RGB/colour-temperature/default
|
||||
colour, per-source radius, door sectors and transitive open zones remain.
|
||||
- **Custom room fill** (local #56): space and room dialogs offer a persistent
|
||||
user color/opacity independent of HA state and border/name color. Effective
|
||||
inheritance is room → space → safe documented default; room reset restores
|
||||
space inheritance, and full/static renderers share the same projection.
|
||||
- **Real switches** (v1.36): `marker.controls[]` group-toggle with HA-group
|
||||
semantics; icon mirrors targets; hidden grouped lamps fixed (tiered
|
||||
primaryEntity). **Lights toggle by default** (v1.39): primary domain light
|
||||
|
||||
+10
-7
@@ -246,8 +246,8 @@ desktop: для точного рисования, Resize, модификато
|
||||
| Стиль | Цвет и прозрачность | Общий цвет границ и названий |
|
||||
| Фон | Наследовать/статический/день-ночь | Управляет фоном вокруг плана |
|
||||
| Солнце | Север и лучи | Локально переопределяет общие настройки |
|
||||
| Заливка | Нет/LQI/свет/температура | Выбирает модель данных для заливки комнат пространства |
|
||||
| Свечение источников света | Вкл/выкл | Независимо добавляет базовое затемнение и световые пятна поверх заливки |
|
||||
| Заливка | Нет/LQI/свет/температура/свой цвет | Выбирает данные или постоянный цвет заливки комнат пространства |
|
||||
| Свечение источников света | Вкл/выкл | Добавляет световые пятна; базовое затемнение используется только без другой заливки |
|
||||
|
||||
Удаление пространства удаляет его комнаты и разметку после подтверждения. Файл подложки при этом автоматически не удаляется: им можно управлять через список уже загруженных планов.
|
||||
|
||||
@@ -630,10 +630,13 @@ Glow и заливка «Свет» продолжают работать по
|
||||
| Zigbee signal | Средний LQI устройств HA-зоны | Градиент от красного (≤40) до зелёного (≥180) | Без заливки |
|
||||
| Свет | Единый набор видимых источников комнаты: внешние `controls` + собственный источник по флагу «Это источник света»; автоматические `light.*` — fallback | Цвет «включено», «всё выключено» или «нет источников» | Цвет «нет источников», если его прозрачность >0 |
|
||||
| Температура | Источник комнаты или среднее датчиков | Холодно ниже минимума, комфорт между границами, жарко выше максимума | Без заливки |
|
||||
| Свой цвет | Настройка пространства или комнаты | Постоянный цвет и прозрачность, не зависящие от HA | Безопасный серо-синий `#607d8b`, 18% |
|
||||
|
||||
«Свечение источников света» теперь включается отдельно и сочетается с любым
|
||||
режимом заливки. Оно добавляет базовое затемнение и световые пятна поверх
|
||||
заливки данными, не заменяя её. Новое вручную созданное пространство по
|
||||
режимом заливки. При режиме «Нет» оно добавляет базовое затемнение и световые
|
||||
пятна. При LQI, свете, температуре или своём цвете базовое затемнение не
|
||||
рисуется: исходный цвет и прозрачность заливки сохраняются точно, а световые
|
||||
пятна остаются видимыми поверх неё. Новое вручную созданное пространство по
|
||||
умолчанию имеет режим «Нет» и включённое свечение. Старые планы с режимом
|
||||
«Световые источники» читаются без визуальной потери и при следующем обычном
|
||||
сохранении переводятся в независимые настройки.
|
||||
@@ -642,9 +645,9 @@ Glow и заливка «Свет» продолжают работать по
|
||||
|
||||
| Уровень | Что можно изменить |
|
||||
|---|---|
|
||||
| Общие настройки | Цвет и прозрачность всех состояний, радиус света, цвет стен |
|
||||
| Пространство | Режим заливки, независимый переключатель Glow, температурные границы, показ LQI, фон |
|
||||
| Комната | Наследовать или явно выбрать Нет/LQI/Свет/Температуру; пока наследует Glow пространства |
|
||||
| Общие настройки | Цвет и прозрачность состояний данных, настройки Glow вместе с его радиусом, цвет стен |
|
||||
| Пространство | Режим заливки, свой цвет и прозрачность, независимый переключатель Glow, температурные границы, показ LQI, фон |
|
||||
| Комната | Наследовать или явно выбрать Нет/LQI/Свет/Температуру/свой цвет; свой цвет наследуется от пространства и может быть сброшен; пока наследует Glow пространства |
|
||||
| Устройство | Явно стать источником света, радиус свечения, цвет эффекта |
|
||||
|
||||
### Что считается светом
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
- Issue: https://github.com/Matysh/houseplan-card/issues/55
|
||||
- Приоритет: P2
|
||||
- Статус ТЗ: реализовано в кандидате v1.61.0-beta.2; exact-SHA verification/golden approval — release gate
|
||||
- Статус ТЗ: реализовано в v1.61.0-beta.2; уточнение #61 входит в v1.61.0-beta.3
|
||||
- Связано: room override #36; additive pools #19; compatibility registry #33;
|
||||
custom fill #56
|
||||
|
||||
@@ -14,7 +14,10 @@
|
||||
2. световой Glow как отдельный слой поверх этой заливки.
|
||||
|
||||
Пользователь может одновременно видеть LQI/освещённость/температуру/свой цвет
|
||||
и Glow. Модель геометрии комнат, распространения света и проёмов не меняется.
|
||||
и световые пятна Glow. Тёмная базовая подложка Glow применяется только когда
|
||||
effective data fill равен `none`, поэтому полезная заливка не затемняется и не
|
||||
меняет оттенок. Модель геометрии комнат, распространения света и проёмов не
|
||||
меняется.
|
||||
|
||||
## Границы этапа и зависимости
|
||||
|
||||
@@ -24,10 +27,10 @@
|
||||
- #19 может заменить обычную группу световых пятен на isolated additive group,
|
||||
но не блокирует модель и миграцию #55.
|
||||
|
||||
Порядок поставки: **#55 → (#36, #56)**; #36 и #56 могут выйти вместе с #55,
|
||||
если их schema/UI/tests входят в тот же beta gate. Пока #56 не реализована,
|
||||
frontend и backend #55 не принимают `fill_mode:'custom'`: будущий enum нельзя
|
||||
открывать частично.
|
||||
Порядок поставки: **#55 → (#36, #56)**. Базовая часть #55 опубликована в
|
||||
`v1.61.0-beta.2`; #56 реализована в текущей локальной итерации целиком — enum,
|
||||
schema, UI и проверки добавлены вместе. Частично открывать будущий enum до
|
||||
готовности всего этого вертикального среза по-прежнему запрещено.
|
||||
|
||||
## Persisted model и effective projection
|
||||
|
||||
@@ -150,7 +153,8 @@ Preview показывает число затронутых пространс
|
||||
|
||||
1. paper/backdrop;
|
||||
2. resolved data/static room fill и matching data fill внутреннего тоннеля;
|
||||
3. Glow base для effective-Glow rooms и соответствующих частей тоннеля;
|
||||
3. Glow base только для effective-Glow rooms с effective fill `none` и
|
||||
соответствующих частей тоннеля;
|
||||
4. tunnel light sectors и radial pools;
|
||||
5. sun и interactive layers по текущему контракту.
|
||||
|
||||
@@ -160,30 +164,31 @@ Glow base и pools pointer-transparent. Room hover, tooltip и editor hit target
|
||||
### Нормативное смешивание Glow base
|
||||
|
||||
Glow base — отдельная SVG-геометрия с обычным `source-over`/`normal`
|
||||
композитингом. `multiply`, `screen`, CSS filter и дополнительная групповая
|
||||
opacity не применяются.
|
||||
композитингом, которая создаётся только при
|
||||
`effectiveGlow == true && effectiveFill == none`. `multiply`, `screen`, CSS
|
||||
filter и дополнительная групповая opacity не применяются.
|
||||
|
||||
```text
|
||||
a = clamp(fill_colors.glow_base.a, 0, 1)
|
||||
Cout = Cglow_base * a + Cunderlay * (1 - a)
|
||||
```
|
||||
|
||||
`Cunderlay` — уже скомпозированный результат paper + data fill. Используется
|
||||
существующий пользовательский token `glow_base`; data fill color и alpha не
|
||||
мутируются. Для legacy `fill_mode:'glow'` под Glow base лежит paper, а геометрия
|
||||
`Cunderlay` — paper без data fill. Используется существующий пользовательский
|
||||
token `glow_base`. Для legacy `fill_mode:'glow'` под Glow base лежит paper, а геометрия
|
||||
base повторяет прежние room/tunnel shapes, поэтому при штатной палитре результат
|
||||
должен сохранять pixel parity старого режима. Для новых сочетаний temp+Glow и
|
||||
custom+Glow обязательны owner-reviewed golden baselines в light/dark theme;
|
||||
после принятия они становятся визуальным контрактом и не обновляются
|
||||
автоматически.
|
||||
должен сохранять pixel parity старого режима. Для сочетаний LQI/light/temp/custom
|
||||
с Glow обязательный контракт обратный: data/static fill сохраняет exact color и
|
||||
alpha, Glow base отсутствует, а radial pools продолжают рисоваться поверх.
|
||||
|
||||
Room с effective Glow on получает base даже при отсутствии источников света;
|
||||
radial pools тогда отсутствуют. Room с Glow off не получает base и исключается
|
||||
Room с effective Glow on и fill `none` получает base даже при отсутствии
|
||||
источников света; radial pools тогда отсутствуют. Room с любым другим fill или
|
||||
Glow off не получает base. Glow-off room исключается
|
||||
из визуальных clip pools, но это не меняет физический transport через неё по
|
||||
#36. Если Glow off у всех комнат, overlay не создаёт пустые SVG layers.
|
||||
|
||||
Тоннель сначала повторяет resolved data fill своей стороны, затем получает тот
|
||||
же Glow-base overlay только со стороны effective-Glow room. Геометрия световых
|
||||
Тоннель сначала повторяет resolved data fill своей стороны. Glow-base overlay
|
||||
получает только сторона с effective Glow и fill `none`; сторона с любой
|
||||
data/static заливкой сохраняет её точный цвет. Геометрия световых
|
||||
секторов, отсечение откосами и проникновение через двери/ворота не меняются.
|
||||
|
||||
### Radial pools
|
||||
@@ -197,7 +202,7 @@ radial pools тогда отсутствуют. Room с Glow off не получ
|
||||
Статическая карточка использует тот же effective resolver и показывает:
|
||||
|
||||
- data/static fill;
|
||||
- Glow base поверх него для effective-Glow rooms;
|
||||
- Glow base поверх него только для effective-Glow rooms с fill `none`;
|
||||
- matching базовую заливку поддерживаемых тоннелей.
|
||||
|
||||
Live radial pools и tunnel light sectors в статической карточке не рисуются —
|
||||
@@ -251,7 +256,7 @@ review артефактов.
|
||||
соответствующая страница существует;
|
||||
- compatibility registry/audit #33;
|
||||
- скриншот новых независимых controls;
|
||||
- owner-reviewed golden matrix temp+Glow/custom+Glow и static-card state.
|
||||
- owner-reviewed golden matrix temp+Glow/custom+Glow без base и static-card state.
|
||||
|
||||
Release body выделяет независимый Glow как пользовательскую функцию; чисто
|
||||
технические детали группируются по общему release-правилу.
|
||||
@@ -265,9 +270,9 @@ Release body выделяет независимый Glow как пользов
|
||||
3. Обычный Save, заменяющий legacy token, атомарно материализует effective Glow;
|
||||
untouched Save, Cancel и reload не создают silent migration.
|
||||
4. Optimize preview/apply/undo идемпотентен и сохраняет future fields.
|
||||
5. Старый config до migration имеет pixel parity; normal source-over formula и
|
||||
layer order проверены DOM/style unit-тестами.
|
||||
6. Golden: dark/light, temp+Glow, custom+Glow, mixed room overrides, no-source,
|
||||
5. Старый config до migration имеет pixel parity; normal source-over formula,
|
||||
отсутствие base поверх data/static fill и layer order проверены DOM/style unit-тестами.
|
||||
6. Golden: dark/light, temp+Glow без base, custom+Glow без base, mixed room overrides, no-source,
|
||||
tunnel и hover; baseline принят владельцем до merge.
|
||||
7. `houseplan-space-card` совпадает по data/base projection и не рисует pools.
|
||||
8. Doors/gates, virtual/physical walls, nested holes, partitions/columns и
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
- Issue: https://github.com/Matysh/houseplan-card/issues/56
|
||||
- Приоритет: P2
|
||||
- Статус ТЗ: ready after security gate #21
|
||||
- Статус ТЗ: реализовано в v1.61.0-beta.3
|
||||
- Совместимо: независимый Glow #55
|
||||
|
||||
## Цель
|
||||
|
||||
@@ -51,9 +51,9 @@ GitHub Issues и GitHub Projects (v2) остаются единственным
|
||||
| [#11](https://github.com/Matysh/houseplan-card/issues/11) Vacuum source health | [011-vacuum-source-health.md](011-vacuum-source-health.md) | в реализации |
|
||||
| [#12](https://github.com/Matysh/houseplan-card/issues/12) Room cleaning highlight | [012-vacuum-room-cleaning-highlight.md](012-vacuum-room-cleaning-highlight.md) | готово к ревью |
|
||||
| [#13](https://github.com/Matysh/houseplan-card/issues/13) Golden open context tray | [013-golden-open-context-tray.md](013-golden-open-context-tray.md) | реализовано |
|
||||
| [#19](https://github.com/Matysh/houseplan-card/issues/19) Additive Glow blending | [019-glow-additive-blending.md](019-glow-additive-blending.md) | v1.61.0-beta.2 candidate; exact-SHA gate |
|
||||
| [#19](https://github.com/Matysh/houseplan-card/issues/19) Additive Glow blending | [019-glow-additive-blending.md](019-glow-additive-blending.md) | реализовано в v1.61.0-beta.2 |
|
||||
| [#20](https://github.com/Matysh/houseplan-card/issues/20) Glow through open doors | [020-glow-open-door-spill.md](020-glow-open-door-spill.md) | готово к реализации |
|
||||
| [#21](https://github.com/Matysh/houseplan-card/issues/21) Safe color CSS variables | [021-color-css-injection.md](021-color-css-injection.md) | готово к реализации |
|
||||
| [#21](https://github.com/Matysh/houseplan-card/issues/21) Safe color CSS variables | [021-color-css-injection.md](021-color-css-injection.md) | реализовано в v1.61.0-beta.1 |
|
||||
| [#36](https://github.com/Matysh/houseplan-card/issues/36) Room Glow override | [036-room-glow-override.md](036-room-glow-override.md) | черновик продуктового решения |
|
||||
| [#37](https://github.com/Matysh/houseplan-card/issues/37) Room scale system | [037-room-scale-system.md](037-room-scale-system.md) | черновик migration semantics |
|
||||
| [#38](https://github.com/Matysh/houseplan-card/issues/38) Icon rule builder | [038-icon-rule-builder.md](038-icon-rule-builder.md) | черновик data model |
|
||||
@@ -66,8 +66,8 @@ GitHub Issues и GitHub Projects (v2) остаются единственным
|
||||
| [#51](https://github.com/Matysh/houseplan-card/issues/51) Custom decor images | [051-custom-decor-images.md](051-custom-decor-images.md) | черновик: security dependencies |
|
||||
| [#52](https://github.com/Matysh/houseplan-card/issues/52) Dimensions in View | [052-view-dimensions.md](052-view-dimensions.md) | готово к ревью |
|
||||
| [#54](https://github.com/Matysh/houseplan-card/issues/54) Zigbee topology overlay | [054-zigbee-topology-overlay.md](054-zigbee-topology-overlay.md) | research + adapter contract |
|
||||
| [#55](https://github.com/Matysh/houseplan-card/issues/55) Independent Glow overlay | [055-independent-glow-overlay.md](055-independent-glow-overlay.md) | v1.61.0-beta.2 candidate; exact-SHA gate |
|
||||
| [#56](https://github.com/Matysh/houseplan-card/issues/56) Static room color | [056-static-room-color.md](056-static-room-color.md) | готово после security gate #21 |
|
||||
| [#55](https://github.com/Matysh/houseplan-card/issues/55) Independent Glow overlay | [055-independent-glow-overlay.md](055-independent-glow-overlay.md) | реализовано в v1.61.0-beta.2; #61 — v1.61.0-beta.3 |
|
||||
| [#56](https://github.com/Matysh/houseplan-card/issues/56) Static room color | [056-static-room-color.md](056-static-room-color.md) | реализовано в v1.61.0-beta.3 |
|
||||
|
||||
## Правило актуализации
|
||||
|
||||
|
||||
Reference in New Issue
Block a user