Commit Graph
409 Commits
Author SHA1 Message Date
Claude 9d1d27325d docs: refresh screenshot fingerprint for v1.78.0-beta.1
Проверка (CI) / Классификация изменённых файлов (push) Successful in 44s
Проверка (CI) / Мутанты по диффу (1/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (2/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (3/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (4/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (5/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (6/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Failing after 1m4s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 23s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 41s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 1m12s
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Failing after 45s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 2m28s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 8m57s
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Skipped
Проверка (CI) / Смоки: все шарды зелёные (push) Skipped
Проверка (CI) / Golden-кадры против принятых эталонов (push) Skipped
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Skipped
Проверка (CI) / Доказательство выполненных проверок (push) Failing after 46s
Все 11 документационных сцен после сборки кандидата попиксельно совпали с принятыми кадрами. Обновлён только source fingerprint; PNG, их хеши и принятый Chromium не менялись.

Release: v1.78.0-beta.1
Issue: #607
Issue: #608
Issue: #609
Issue: #610
Issue: #611
Issue: #612
Issue: #613
Issue: #614
Issue: #619
Issue: #621
Issue: #624
Issue: #625
Issue: #635
Issue: #636
Issue: #637
Issue: #639
Issue: #640
Issue: #641
User-Visible: no
2026-09-23 21:54:11 +03:00
Claudeandclaude[bot] 959dda9e48 test(golden): проверить видимость иконки dishwasher (#640)
Issue: #640
User-Visible: no
2026-09-23 15:49:45 +00:00
Claudeandclaude[bot] de8482fde0 test(golden): показать ряд техники в палитре (#640)
Issue: #640
User-Visible: no
2026-09-23 15:49:45 +00:00
Claudeandclaude[bot] 5315ad297d feat(furniture): обновить иконку посудомоечной машины (#640)
Issue: #640
User-Visible: yes
2026-09-23 15:49:45 +00:00
Claude 2cfb6d2169 fix: protect View config recovery (#612)
Issue: #612
User-Visible: yes
2026-09-23 10:34:09 +03:00
Claudeandclaude[bot] 1dba818581 fix: clarify unsaved-settings confirmation (#610)
Issue: #610
User-Visible: yes
2026-09-23 06:36:39 +00:00
Claude 8a4ecdea63 fix: commit slider-number input atomically (#608)
Issue: #608
User-Visible: yes
2026-09-23 07:37:30 +03:00
Claude 4c9e013276 fix(dialog): align HA settings form shell (#609)
Use Home Assistant's public dialog tokens for the reviewed 560 px canvas, height cap, single scroller and mobile fullscreen layout. Keep generic dialogs and the native fallback unchanged, with authentic-HA evidence and mutation witnesses.

Issue: #609
User-Visible: yes
2026-09-23 03:18:37 +03:00
Claude 9bbf6fb248 fix(dialog): restore HA modal after rejected close (#607)
Issue: #607
User-Visible: yes
2026-09-23 02:00:48 +03:00
Claude 20457660fa fix(furniture): correct exercise and shelf artwork (#606)
Publish corrected 0.4.1 pack, preserve old cactus objects as a read-only alias, and cover the catalog, renderers, editor, PDF and visual scene.

Issue: #606
User-Visible: yes
2026-09-21 15:01:18 +03:00
Claude 813554253a chore(docs): accept updated dialog screenshots (#603)
Reviewed three changed switch frames from Linux Docs screenshots run 35566543872; eight unchanged frames witness the capture environment.

Issue: #603
User-Visible: no
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/35566543872
2026-09-21 09:02:00 +03:00
Claude c69d73f1f2 docs: accept refreshed settings screenshots (#602)
Issue: #602
User-Visible: no
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/35534819172
2026-09-20 23:16:39 +03:00
Claude fb9a245949 docs: обновить отпечаток скриншотов после правок r1 (#600)
`npm run docs:accept -- --identical` (#512) после 8dc60aec и ec97fd95: все
11 документационных сцен попиксельно совпали с закоммиченными, принят только
отпечаток исходников. Ту же вершину снял Linux Docs Screenshots 35515141317 —
артефакт docs-screenshots лежит для сверки.

Issue: #600
User-Visible: no
2026-09-20 17:09:05 +03:00
Claude fa12045271 docs: принять три кадра диалогов настроек (#600)
Linux Docs Screenshots 35506234074 снял ветку после исправления скроллера.
Просмотрены space-create, device-editor и device-display-preview; кадр preview
отличается от обычного и показывает блок Display preview. Остальные восемь
сцен совпали побайтово.

Issue: #600
User-Visible: no
2026-09-20 13:54:24 +03:00
Claude 6cee9504b4 Prepare v1.77.0-beta.2
Проверка (CI) / Классификация изменённых файлов (push) Successful in 34s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 25s
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Failing after 1m11s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 1m14s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 1m39s
Проверка (CI) / Мутанты по диффу (2/6): затронутые свидетели краснеют (push) Failing after 5m38s
Проверка (CI) / Мутанты по диффу (4/6): затронутые свидетели краснеют (push) Failing after 31s
Проверка (CI) / Мутанты по диффу (6/6): затронутые свидетели краснеют (push) Failing after 1s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 1s
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Skipped
Проверка (CI) / Смоки: все шарды зелёные (push) Skipped
Проверка (CI) / Golden-кадры против принятых эталонов (push) Skipped
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Skipped
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Failing after 1s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 2s
Проверка (CI) / Мутанты по диффу (5/6): затронутые свидетели краснеют (push) Failing after 59s
Проверка (CI) / Мутанты по диффу (1/6): затронутые свидетели краснеют (push) Failing after 6m55s
Проверка (CI) / Мутанты по диффу (3/6): затронутые свидетели краснеют (push) Failing after 7m17s
Проверка (CI) / Доказательство выполненных проверок (push) Failing after 31s
Package the reviewed settings-dialog redesign, furniture pack and
value-plus-static-icon mode. Hidden 2.5D refinement and process/tooling fixes
ride along internally.

Release: v1.77.0-beta.2
Issue: #576
Issue: #585
Issue: #588
Issue: #589
Issue: #592
Issue: #593
Issue: #594
Issue: #595
Issue: #596
Issue: #597
Issue: #598
User-Visible: yes
2026-09-20 03:35:39 +03:00
Claude 8769905b4e docs: обновить отпечаток после perf-фикса #585
Linux Docs Screenshots 35476979319 подтвердил, что все 11 документационных сцен пиксельно неизменны.

Issue: #585
User-Visible: no
2026-09-20 02:47:52 +03:00
Claude 4e9f69c467 docs: принять неизменившиеся сцены для #585
Linux Docs Screenshots 35476276726 подтвердил отсутствие визуальных изменений во всех 11 сценах; обновлён только fingerprint исходников.

Issue: #585
User-Visible: no
2026-09-20 02:32:17 +03:00
Claude 630ae32a64 docs: обновить отпечаток скриншотов (#585)
Linux Docs Screenshots 35475246943: все 11 кадров побайтно совпали; обновлён только отпечаток исходников.

Issue: #585
User-Visible: no
2026-09-20 02:10:08 +03:00
Claude 1a3c36c366 docs: обновить отпечаток скриншотов (#585)
Linux Docs Screenshots 35474504494: все 11 кадров побайтно совпали; обновлён только отпечаток исходников.

Issue: #585
User-Visible: no
2026-09-20 01:53:52 +03:00
Claude 3c2ab9b764 docs: обновить отпечаток скриншотов (#585)
Linux-съёмка 35472172033 подтвердила, что все 11 кадров остались пиксельно идентичны после оптимизации поиска границы.

Issue: #585
User-Visible: no
2026-09-20 01:04:47 +03:00
Claude 1385a5f2e8 docs: обновить отпечаток скриншотов (#585)
Linux-прогон 35470336625 подтвердил: все одиннадцать кадров побайтно совпали, изменился только отпечаток исходников.

Issue: #585
User-Visible: no
2026-09-20 00:27:13 +03:00
Claude 619352509e docs: принять накопленные form-kit кадры (#585)
Строгий docs-гейт #585 обнаружил отложенную визуальную дельту уже
смёрженного #598: карточки групп в диалогах пространства и устройства.
Все три кадра просмотрены; остальные восемь Linux-сцен совпали побайтно.

Съёмка и проверка воспроизводимости:
https://github.com/Matysh/houseplan-card/actions/runs/35465854646

Issue: #585
User-Visible: no
2026-09-19 23:00:24 +03:00
Claude acf179e448 docs: обновить отпечаток скриншотов после правки диалогов (#598)
`scripts/check-docs.mjs` считает отпечаток от всего `src/**`, поэтому правка
трёх диалогов его состарила, хотя ни один из десяти сценариев `demo/docs`
диалоги настроек не открывает.

`npm run docs:accept -- --identical`: все 11 кадров совпали попиксельно,
принят только отпечаток исходников (81fa92d2). Переснятых кадров нет.

Issue: #598
User-Visible: no
2026-09-19 19:21:22 +03:00
Claude c22a1f43db feat(editors): три диалога настроек собраны в карточки-группы
«Общие настройки», «Пространство» и «Устройство на плане» были плоскими
столбцами. В «Общих» девять подписей-заголовков шли вперемешку с рядами и
абзацами; в «Устройстве» на 760 строк формы не было ни одного деления, и
«Название» лежало в одном списке с «Дополнительными действиями».

Теперь это карточки общего набора: семь в «Общих», четыре в «Пространстве»,
пять в «Устройстве». Набор взят как есть — он поднят в #594 и доказан на диалоге
комнаты и редакторе панели (#597).

Шесть пояснений переехали под «?» к своему заголовку, подзаголовку или строке;
текст не переписан. Два сообщения о СОСТОЯНИИ остались на виду — решение
владельца: `gs.sun_missing` и `marker.run_target_gone` говорят, что настройка
сломана прямо сейчас, а второе ещё и называет пропавшую цель подстановкой,
которой в статической подсказке взяться неоткуда.

`gs.hint` при этом переехал из ленивого support-словаря в основной: «?» читает
текст через `_t`, а не `supportT`. Тест мёртвых ключей сливает оба словаря, так
что копия в support удалена во всех четырёх локалях.

Классы-опоры сохранены намеренно: `.srcrow`, `.dispsection`, `.gsrow`,
`.colorrow`, `.namein`, `.areasel`, `.tempin` остались на своих элементах, а
карточки добавились вокруг. За эти имена держатся одиннадцать смоков, и потеря
любого превратила бы ревью в чтение переписанных свидетелей.

Изменён ровно один смок — `smoke_general_settings`, и изменён в сторону
строгости: вместо одного списка подписей он снимает теперь два (заголовки
карточек и подзаголовки внутри), требует непустоты каждой карточки, проверяет
что радиус свечения лежит ВНУТРИ карточки свечения (подпись такой границей не
была), что четыре переехавших пояснения доступны кнопкой и что их абзацев в
форме не осталось.

`src/houseplan-onboarding-runtime.ts` затронут двумя строками: он второй
потребитель переименованных ключей `space.hide_*_tip` → `space.hide_*.help`.
Один текст — один ключ; дублировать его ради неприкосновенности файла хуже.

Потолок стартового графа поднят 291 400 → 292 500. Выросли СТРОКИ, а не код:
12 новых ключей в четырёх локалях плюс переехавший `gs.hint`. Разметка диалогов
как была в ленивом редакторском графе, так там и осталась.

Свидетели: `state-callout-hidden-under-help` прячет сообщение о состоянии под
«?» и краснит новый блок `smoke_tap_run`; `dialog-card-loses-its-heading`
обнуляет заголовок карточки и краснит `smoke_general_settings` — карточка без
заголовка это снова плоский список, только с рамкой.

Issue: #598
User-Visible: yes
2026-09-19 17:52:49 +03:00
Claudeandclaude[bot] 57817b3c91 docs: обновить отпечаток скриншотов после правки стилей (#597)
`node scripts/check-docs.mjs` краснел на материале ревью: диф трогает два файла
`src/**`, а отпечаток скриншотов считается от всего `src/**` и устарел. PROCESS.md
§8 называет этот гейт безусловным при любом диффе по `src/**`, и пропуск уже
стоил инцидента — #230, #234 оставили `dev` с красным job `docs` до #237.

Расхождения пиксельного нет и быть не могло: стили панели собираются побайтово
тем же текстом.

    npm run docs:accept -- --identical
    Все 11 кадров попиксельно совпали с закоммиченными:
    принят только отпечаток исходников (f561ec99).

Issue: #597
User-Visible: no
2026-09-19 14:19:54 +00:00
Codex fc4d55c7cd docs: отпечаток скриншотов после правки комментария рантайма (#593)
Правка заголовочного комментария `src/furniture-art-runtime.ts` (коммит
`0565c7ad`) входит в корпус отпечатка исходников, поэтому предполёт кандидата
объявил индекс скриншотов устаревшим — строгий режим работает с #586.

Снято локально в каноническом Chromium 151.0.7922.34 через
`docs-accept --identical`: **все одиннадцать кадров совпали попиксельно**,
принят только отпечаток (047e917c). Ровно то, что предписывает ТЗ §9:
комментарий ничего не рисует, и кадры это подтверждают.

`check-docs --strict` зелёный.

Issue: #593
User-Visible: no
2026-09-19 15:06:14 +03:00
Claude 7df2740f1c feat(furniture): пакет 0.4.0 — 60 дизайнерских символов вместо 44 плюс 12 примитивов
Встроенная библиотека мебели была смешанной: 44 предмета рисовал дизайнер, а
12 — код, прямоугольниками и эллипсами в unit box. Они выбивались из стиля, и
три категории меню (`computer`, `hood`, `oven`) вообще не открывались, потому
что вида сверху для них не было.

Пакет 0.4.0 перерисовывает все 56 существующих публичных ID и добавляет четыре
новых: `computer`, `hood`, `oven`, `cactus`. Каталог становится равен поставке:
60 символов, 32 непустые категории.

Совместимость. Ни один сохранённый план не мигрирует: положение, размер,
поворот, отражение, цвет, прозрачность и толщина линии не трогаются, а
default-размеры всех 56 прежних ID совпадают со старыми до числа — таблица
зашита в `test/furniture.test.mjs`, чтобы сдвиг было видно тестом, а не глазами.

Ловушка, ради которой примитивы удалены целиком. Библиотека собиралась союзом
каталога и `LEGACY_FURNITURE`, и обе половины несли ОДНИ И ТЕ ЖЕ публичные ID.
`BY_ID` — это `Map`, она оставляет последнюю запись, поэтому примитив молча
побеждал дизайнерский рисунок, который его заменял: задача выглядит выполненной,
12 предметов не обновились, ни один существующий тест этого не видит. Поэтому
`LEGACY_FURNITURE`, `RETAINED_IDS`, тип `Prim`, `box()` и `primitivePathD`
удалены, а на дубликаты в каталоге стоит тест и мутант.

Два продуктовых решения владельца (#593):

- `cactus` живёт в категории `plant`, а не `exercise`, как предлагал пакет:
  плитка «Тренажёр» рисует тренажёр, и открывать её на кактус — врать о
  содержимом палитры. `exercise` остаётся скрытой пустой категорией, непустых
  становится 32, а не 33;
- при отказе ленивого чанка с рисунками не рисуется НИЧЕГО. Прежде 12
  примитивов рисовались всегда, и `docs/FURNITURE.md` это обещал; обещание
  снято. Это единственное место, где задача ухудшает наблюдаемое поведение, и
  оно проверяется смоком, а не словом.

Бюджеты. Ревью ТЗ показало, что «бюджет ленивого графа защищён» было
заявлением без гейта: размеры печатались в отчёт и ни с чем не сравнивались.
Добавлены `lazyGraphCeilingViolation` и два настоящих потолка со своим мутантом.
Стартовый граф ушёл ниже полосы, поэтому `INITIAL_VIEW_GZIP_CEILING` опущен
292 400 → 291 400 — вторая половина храповика, без которой выигрыш отыграется.

Провенанс. Документ пакета воссоздан под 0.4.0: грант владельца, имя архива и
его SHA-256. Это единственная исполнимая защита от повторения истории #159, и
она не ослаблена — число проверок в тесте не уменьшилось, а мутант подменяет
хеш и обязан её покраснить.

Свидетели: пять новых мутантов, новая golden-сцена `furniture-new-symbols-light`
для четырёх новых ID, матрица 63 → 64. Шестой мутант правится, а не добавляется:
`furniture-placement-needs-art` ссылался на удалённое поле `g` и переставал
компилироваться — раннер честно отличал это от «пойман» и отчитывался
setup-failure. Ложь мутанта осталась прежней по смыслу, убрана только ветка про
примитив.

i18n: 7 ключей × 4 локали. `furn.cat_exercise` не добавлен — категория скрыта.

Issue: #593
User-Visible: yes
2026-09-19 13:38:49 +03:00
ClaudeandClaude 44c3f0ab63 test: закрыть отпечаток документации и добить свидетеля полей (#594)
Две находки код-ревью r1 из трёх; третья — эталоны — снаружи песочницы, см.
комментарий в issue.

**Отпечаток скриншотов.** `check-docs` краснел ожидаемо: отпечаток считается от
всего `src/**`, а диф его трогает. Прогнал `npm run docs:accept -- --identical`
— все одиннадцать кадров совпали с закоммиченными **попиксельно**, поэтому
принят только отпечаток исходников (`b678af43`), ни один PNG не переснят. Это
и есть доказательство среды по правилу #334/#401: снимать можно где угодно,
принять получится лишь там, где кадры воспроизводятся.

**Свидетель полей.** Ревьюер прав: снимок черновика доказывал «пишет только
своё» для трёх полей из восьми, а перетипизированный `FILL_CHOICES` и выбор
зоны исполнимого oracle не имели вовсе. Добавлены две проверки по образцу
соседних: смена зоны меняет только `_areaSel`, смена режима заливки — только
`_roomFill`. Зона переключается на «Без зоны»: свободных зон в фикстуре может
не остаться, а этот вариант есть всегда, и имя уже заполнено, поэтому
автоподстановка имени по зоне в игру не вступает.

Issue: #594
User-Visible: no
2026-09-19 11:08:05 +03:00
Claude a6185e295d Prepare v1.77.0-beta.1
Package the reviewed furniture footprint fix with synchronized release metadata; the golden-manifest platform, composite CI proof, strict screenshot-freshness switch and stable Full Performance base ride along internally.

Release: v1.77.0-beta.1
Issue: #571
Issue: #573
Issue: #584
Issue: #586
Issue: #587
User-Visible: yes
2026-09-18 09:32:55 +03:00
Codex f77bdaf52e docs: переснять индекс скриншотов после правки run.mjs (#571)
Разовая плата за провенанс: `demo/golden/run.mjs` входит в корпус отпечатка
исходников, поэтому правка объявила индекс скриншотов документации устаревшим.
Снято workflow «Скриншоты документации» (прогон 35270230061, ref — ветка
задачи). Все одиннадцать кадров совпали с закоммиченными **байт-в-байт**:
принят только отпечаток, картинки не менялись — сбор провенанса ничего не
рисует.

`check-docs --strict` зелёный.

Issue: #571
User-Visible: no
2026-09-17 23:23:37 +03:00
Codex 9bf41ec305 test: принять эталоны мебели и индекс скриншотов (#584)
Девять golden-кадров приняты с полного линуксового артефакта Validate (прогон
35144164510, `full=true` на материале задачи); остальные 163 сохранены без
изменений, свидетелей среды 107.

Каждый разошедшийся кадр просмотрен глазами и объяснён:

- шесть мебельных (`furniture-variants-*`, `furniture-placement-preview-light`,
  `furniture-plan-art-dark`, `furniture-transform-*`) — предметы занимают
  заявленный бокс целиком. Там же видна вторая правка: у значка «Журнальный
  стол, круглый» четыре ножки встали по местам внутри круга, а раньше две
  болтались у нижнего края — ровно тот механизм смещения деталей, который
  назван в шапке issue;
- два декоративных (`decor-over-opaque-hover-light`, `decor-over-glow-base-dark`)
  — в сцене стоит диван, его контур дорос до границ бокса; форма, цвет и
  положение прежние;
- `isometric-stage3-overlays-dark` — та же мебель в скрытом 2.5D-виде.

Посторонних изменений нет: расхождение 0,16–1,48 % пикселей кадра и целиком
внутри силуэтов мебели.

Индекс скриншотов документации переснят там же (прогон 35144241294): все
одиннадцать кадров совпали с закоммиченными байт-в-байт, принят только
отпечаток — мебель ни в один кадр документации не попадает.

Трейлер `Release:` называет ближайшую бету линейки по образцу #577 и #580;
если номер линейки окажется другим, он правится при подготовке кандидата.

Issue: #584
User-Visible: no
Release: v1.77.0-beta.1
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/35144164510
2026-09-16 23:11:44 +03:00
Codex 21923c344d docs: пересняты и приняты кадры документации (#586)
Долг, который копился ровно потому, что гейт свежести не включался. Последняя
приёмка (`1734b077`) была отпечаток-онли — `acceptance.lastWriteWasFingerprintOnly:
true`, — а сами картинки лежат с `15e0efe3`. С тех пор индекс разошёлся с
`src/**` и на кандидате обязан был краснеть, но краснеть ему было нечем.

Снято workflow «Скриншоты документации» (прогон 35137580137, `ref=dev`,
Chromium 151.0.7922.34, oxipng 10.2.0) — теми же, что и закоммиченный набор.
Семь кадров совпали с закоммиченными байт-в-байт: это и есть доказательство
среды по #401, порог свидетелей 2.

Разошлись четыре, и все четыре — подпиксельная кайма, а не содержимое:

| кадр | отличий всего | из них >10 | maxΔ |
|---|---|---|---|
| view-desktop | 177 (0,02 %) | 0 | 10 |
| view-touch | 83 (0,03 %) | 2 | 17 |
| room-card | 85 (0,17 %) | 0 | 10 |
| device-info | 137 (0,02 %) | 0 | 5 |

Посмотрел глазами при шестикратном увеличении: у `room-card` меняется свечение
красной подписи «35» на пару единиц канала, у `view-touch` — сглаживание
зелёного значка; геометрия, палитра, подписи и композиция те же.

Отдельно проверил, что это не шум съёмки: перезапустил тот же прогон вторым
заходом и сравнил артефакты — **все одиннадцать кадров совпали байт-в-байт**.
Харнесс детерминирован, значит расхождение принесено кодом, а не раннером, и
объявлять его декларацией — правильно, а не удобно.

`check-docs --strict` зелёный.

Issue: #586
User-Visible: no
2026-09-16 22:06:17 +03:00
Claude 1734b077af Prepare v1.76.0-beta.5
Package the reviewed sun-ray occlusion, room-colour inheritance and HA Companion day-cycle compositor fixes with synchronized release metadata; the hidden 2.5D refinement rides along internally.

Release: v1.76.0-beta.5
Issue: #580
Issue: #581
Issue: #582
Issue: #583
User-Visible: yes
2026-09-16 10:25:10 +03:00
Sergey Matyunin 54dc836dee fix: закрыть compositor-пути day-cycle (#582)
Issue: #582
User-Visible: no
2026-09-15 13:41:51 +03:00
Sergey Matyunin 2a8b5f1dcf fix: стабилизировать day-cycle при pinch в HA Companion (#582)
После первого движения камеры переносит фильтр контура на ограниченный размером viewport слой, сохраняя исходный статичный рендер без изменений.

Issue: #582
User-Visible: no
2026-09-15 12:20:44 +03:00
Claude 2bec03e6fa fix: «Как у пространства» забывает свой цвет комнаты (#581)
Режим заливки комнаты и её цвет — два поля конфига под одним переключателем.
«Как у пространства» снимало только режим; цвет оставался и продолжал
применяться, потому что `roomCustomFillOf` отдавал цвет комнаты независимо от
того, чей режим `custom` действует. Так возникало безымянное состояние «режим
наследую, цвет свой» — Cabinet на даче.

Теперь цвет комнаты участвует в раскраске только вместе с её собственным
`fill_mode: 'custom'` (одна функция — все поверхности: карточка, space-card,
PDF, черновик диалога). Диалог загружает цвет в черновик только при своём
режиме, обнуляет его при уходе с «Свой цвет» и показывает строку цвета только
под этим радио; сохранение пишет `custom_fill` только с `fill_mode: 'custom'`,
иначе удаляет — включая сироту от прежнего редактора. Чтение конфиг не
переписывает: застрявшие комнаты выздоравливают обновлением.

- `test/logic.test.mjs`: AC1 — сирота и любой чужой режим → цвет пространства
- `demo/smoke_room_settings.mjs` шаг 7: свой цвет → «Как у пространства» →
  ни режима, ни цвета, во View цвет пространства; сирота открывается как
  наследование, сохранение её удаляет (проверено красным на базе: 9 фактов)
- `demo/smoke_space_settings.mjs`: override с собственным режимом + сирота
- `demo/golden/harness.mjs`: `roomCustomFill` ставит комнате её режим —
  кадры `lighting-custom-glow-*` не меняются
- мутант `room-orphan-colour-wins-again`
- docs: ARCHITECTURE (#56), CONFIG-COMPATIBILITY, USER-GUIDE ru/en, TESTING;
  отпечаток скриншотов принят попиксельно (11 кадров)

Issue: #581
User-Visible: yes
2026-09-15 09:48:37 +03:00
Sergey Matyunin 0d1df78f5d test: применять внешний луч как глобальную настройку (#577)
Issue: #577
User-Visible: no
2026-09-15 00:58:06 +03:00
Sergey Matyunin a0e5fb1b3b test: закрепить внешний луч на толстой стене (#577)
Issue: #577
User-Visible: no
2026-09-15 00:47:40 +03:00
Sergey Matyunin 6f6a85a116 fix: типизировать настройку граней окна (#577)
Issue: #577
User-Visible: no
2026-09-15 00:17:41 +03:00
Sergey Matyunin db4b397e2e feat: выбор граней окон для солнечных лучей (#577)
Issue: #577
User-Visible: yes
2026-09-15 00:16:35 +03:00
Sergey Matyunin 216990e469 fix: keep SVG compositor stable during pinch (#579)
Issue: #579
User-Visible: yes
2026-09-14 22:28:09 +03:00
Sergey Matyunin 5790abaa1f fix: suppress device activation during touch pinch (#578)
Issue: #578
User-Visible: yes
2026-09-14 21:23:58 +03:00
Sergey Matyunin c22c04d647 Prepare v1.76.0-beta.2
Проверка (CI) / Классификация изменённых файлов (push) Successful in 1m20s
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Failing after 1m54s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 25s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 25s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 1m28s
Проверка (CI) / Мутанты по диффу (4/6): затронутые свидетели краснеют (push) Failing after 2m19s
Проверка (CI) / Мутанты по диффу (2/6): затронутые свидетели краснеют (push) Failing after 3m22s
Проверка (CI) / Мутанты по диффу (1/6): затронутые свидетели краснеют (push) Failing after 3m45s
Проверка (CI) / Мутанты по диффу (5/6): затронутые свидетели краснеют (push) Failing after 1m36s
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Failing after 38s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 21s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 2m36s
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Skipped
Проверка (CI) / Смоки: все шарды зелёные (push) Skipped
Проверка (CI) / Golden-кадры против принятых эталонов (push) Skipped
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Skipped
Проверка (CI) / Мутанты по диффу (6/6): затронутые свидетели краснеют (push) Failing after 2m40s
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Skipped
Проверка (CI) / Мутанты по диффу (3/6): затронутые свидетели краснеют (push) Failing after 14m19s
Проверка (CI) / Доказательство выполненных проверок (push) Failing after 15s
Package the validated beta candidate with the current S8 membership and synchronized release metadata.

Release: v1.76.0-beta.2
Issue: #556
Issue: #558
Issue: #560
Issue: #563
Issue: #564
Issue: #565
Issue: #566
Issue: #567
Issue: #568
Issue: #569
User-Visible: yes
2026-09-14 10:34:03 +03:00
Sergey Matyunin 412ca0f6ce docs: привязать кадры к исходникам #564
Issue: #564
User-Visible: no
2026-09-14 02:57:50 +03:00
Codex 03983946c5 Источники радара сравниваются по смыслу, а не по тексту
Гард `keepTwoPoint` решал, сохранять ли двухточечную калибровку, сравнением
`JSON.stringify`, то есть текста. Порядок ключей `sources` при этом меняет сам
билдер: `slots`/`ranges`/`zones`/`occupancy_entity`/`count_entity` он удаляет и
дописывает заново, а `availability_entity` остаётся на месте и уезжает в начало.
Конфиг, только что записанный этим же билдером, при следующем открытии
сравнивался неравным — и радар с `availability_entity` терял `refs` и `rms_cm`,
получая `method: manual`, при первом же обычном сохранении.

Сравнение стало каноничным по порядку ключей объектов и осталось чувствительным
к порядку элементов массивов: позиция слота — это его `target_N`. Проекция не
затронута — она считается от `mount`, `cell_cm` и `mirror`.

Issue: #567
User-Visible: no
2026-09-13 23:23:30 +03:00
Sergey Matyunin cc0b41ba61 test: восстановить запас bundle-ratchet для #563
Issue: #563
User-Visible: no
2026-09-13 18:53:06 +03:00
Sergey Matyunin aa13e2264e fix: блокировать нажатия устройств после pinch (#563)
Issue: #563
User-Visible: yes
2026-09-13 18:44:07 +03:00
Sergey Matyunin a1fac44d72 fix: не откатывать конфигурацию поздним reload (#543)
Issue: #543
User-Visible: yes
2026-09-12 22:29:16 +03:00
Sergey Matyunin 6502f516f9 fix: keep live pan edges covered (#544)
Issue: #544
User-Visible: yes
2026-09-12 20:44:05 +03:00
Claudeandclaude[bot] 1e1880f010 Tell the host when the version notice goes away with the element
The controller dropped its banner on disconnect without asking the host
to repaint. Lit renders neither on disconnect nor on reconnect, so the
markup produced before the detach outlived it: the notice stayed on
screen while the controller no longer owned one, and it left only when
some unrelated update happened to run. Correctness rested on a
coincidence.

Measured on the built module with a counter: the sequence mismatch ->
disconnect -> versions agree -> connect asked for exactly one repaint,
the one that showed the notice. It now asks for two, and the second is
the one that takes the notice away.

Nothing else about the teardown changes. The field is still cleared
because a detached element cannot deliver animationend, reconnect still
rebuilds the notice from the retained input, and a disconnect with no
notice still asks for nothing.

Issue: #536
User-Visible: no
2026-09-12 03:49:46 +00:00