Commit Graph
3629 Commits
Author SHA1 Message Date
claude[bot] 2fdafb5bef docs: review document for #665
Issue: #665
User-Visible: no
2026-09-26 13:14:50 +00:00
claude[bot] d06cca2c19 docs: review document for #665
Issue: #665
User-Visible: no
2026-09-26 13:02:12 +00:00
Claude 8ffbdf8a28 test(2.5d): drive the label-metrics smoke through the public zoom controls (#665)
Validate on c93b3a90 failed no-new-private-writes: the smoke moved the
camera by writing card._view. It now presses the header zoom buttons
(data-hp zoom-fit / zoom-in) until the label font has at least doubled
(14 -> 38 px on the demo stand) and reads the private camera state only to
wait for the transition. Same assertions; the mutant
iso-room-label-44-box-centres-name still turns it red
(gapMatchesFlatAtEveryZoom, gapIsZoomIndependent).

Issue: #665
User-Visible: no
2026-09-26 15:23:52 +03:00
Claude c93b3a90ef fix(2.5d): room metrics keep their distance from the name at every zoom (#665)
The raised room label in 2.5D View sized its own box to the 44 px touch
minimum (min-height + justify-content: center). The name therefore sat
centred in 44 px while the metrics row, placed absolutely from the label
bottom, hung (44 - name height) / 2 below it: 18.3 px at a 9 px name and
6.4 px at a 39 px one on the demo stand, against a constant 0.1 name
height on the flat plan.

The 44 x 44 px floor moves into an invisible ::before (the door-lock
pattern), z-index -1 inside the label stacking context; the label box is
sized by its text again.

demo/smoke_iso_room_label_metrics.mjs measures gap / name height at two
cameras (font x4) in Flat and 2.5D, and the 44 px floor and area-link hit
targets on labels no raised device covers. Mutant
iso-room-label-44-box-centres-name.

Screenshots: 11 frames pixel-identical, fingerprint only.

Issue: #665
User-Visible: yes
2026-09-26 15:16:14 +03:00
claude[bot] 72d49040bf docs(reviews): индекс после сдвига каталога (#666)
Issue: #666
User-Visible: no
2026-09-26 12:11:55 +00:00
claude[bot] 288b9b41ab docs: review document for #666
Issue: #666
User-Visible: no
2026-09-26 12:11:51 +00:00
Claude 3bdd3c5163 fix(header): the active editor tab highlight covers its close X (#666)
The accent fill of the active Plan/Devices/Decor tab is now a pseudo-element
stretched over the 2 px group gap and the fixed 24 px X slot of #660, so
the X sits inside the highlighted zone without any box moving: the tab,
the slot, the X and the header keep their geometry. The X takes the tab
text colour, and the keyboard focus ring moves to the same pseudo-element
so it outlines the whole zone instead of cutting it at the tab edge.
.modes becomes its own stacking context so the z-index:-1 fill paints above
the group background. On a phone the mode tabs, and the fill, stay hidden.

smoke_toolbar_stable_width: painted-pixel probes for the gap, the slot edge
and top, and the first pixel after the slot, in every editor at every width
above 480 px; the X colour equals the tab colour. The existing geometry
and hit checks are unchanged and green. Mutant
toolbar-active-highlight-stops-at-tab.

Screenshots: 11 frames pixel-identical, fingerprint only.

Issue: #666
User-Visible: yes
2026-09-26 14:36:14 +03:00
claude[bot] 42f437cafe docs: review document for #665
Issue: #665
User-Visible: no
2026-09-26 11:20:43 +00:00
claude[bot] 942b9ede67 docs(reviews): индекс после сдвига каталога (#664)
Issue: #664
User-Visible: no
2026-09-26 10:25:16 +00:00
claude[bot] e53f9d4f77 docs: review document for #664
Issue: #664
User-Visible: no
2026-09-26 10:25:12 +00:00
Claude 40b73cc599 fix(space-card): nothing in the static schematic is hit-testable (#664)
The stage is pointer-events:none, but that is not an inherited ban: the
shared marker styles opt the 44 px floor (.dev::before) and the painted
capsule (.device-shell-frame) back in for the interactive plan (#564).
The static card imports them whole, so since v1.76.0-beta.2 it showed a
hand cursor over every marker and swallowed clicks that do nothing.

The card now closes every descendant opt-in (.hp-static-stage *, ::before,
::after). smoke_space_card asserts the browser hit test itself
(elementFromPoint over the marker and a 9x9 grid across the stage) and
the cursor, not the stage computed style that stayed green through the
regression. Mutant static-card-descendants-hit-testable.

Screenshots: 11 frames pixel-identical, fingerprint only
(npm run docs:accept -- --identical).

Issue: #664
User-Visible: yes
2026-09-26 13:02:51 +03:00
Sergey Matyunin 6cdcb1ea47 Release v1.78.0-beta.4 candidate refresh 2
Проверка (CI) / Классификация изменённых файлов (push) Successful in 24s
Проверка (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 52s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 34s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 34s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 48s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 34s
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Failing after 36s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 8m43s
Проверка (CI) / Бандл головы dev для стенда (push) Skipped
Проверка (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 20s
Повторная сборка кандидата после починки предрелизных unit- и mutation-гейтов.

Issue: #651
Issue: #654
Issue: #656
Issue: #657
Issue: #660
User-Visible: no
Release: v1.78.0-beta.4
v1.78.0-beta.4
2026-09-26 12:42:03 +03:00
Sergey Matyunin 85119fd9a2 test: восстановить защиту перехода редактора (#660)
Предрелизный гейт снова держит лимит монолитного файла, а защитный мутант #648 привязан к новой формуле общего бюджета сцены и панели. Мутант предметно краснит smoke_sections_resize.

Issue: #660
User-Visible: no
2026-09-26 12:42:03 +03:00
Sergey Matyunin f11c2a4c5d Release v1.78.0-beta.4 candidate refresh
Повторная сборка кандидата после исправления предрелизного smoke-гейта.

Issue: #651
Issue: #654
Issue: #656
Issue: #657
Issue: #660
User-Visible: no
Release: v1.78.0-beta.4
2026-09-26 12:35:19 +03:00
Sergey Matyunin bae6378006 fix: плавно менять высоту плана при входе в редактор (#660)
Переход снова интерполирует общий бюджет сцены и панели инструментов вместо измерения скрытого исходного кадра. Документационные кадры попиксельно не изменились.

Issue: #660
User-Visible: yes
2026-09-26 12:35:18 +03:00
Sergey Matyunin 467eaf873a chore(golden): эталоны beta.4 после 2.5D и панели
Приняты ровно 58 изменившихся сцен из Linux Validate; 117 остальных эталонов остались без изменений.

Issue: #651
Issue: #654
Issue: #660
User-Visible: no
Release: v1.78.0-beta.4
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/36231891190
2026-09-26 12:17:29 +03:00
Sergey Matyunin 698f638969 docs: принять неизменные скриншоты для beta.4
Issue: #660
User-Visible: no
Release: v1.78.0-beta.4
2026-09-26 12:08:51 +03:00
Sergey Matyunin 3e48002c92 Release v1.78.0-beta.4 candidate
Issue: #651
Issue: #654
Issue: #656
Issue: #657
Issue: #660
User-Visible: yes
Release: v1.78.0-beta.4
2026-09-26 12:05:06 +03:00
claude[bot] 4c64189564 docs: review document for #663
Issue: #663
User-Visible: no
2026-09-26 09:04:16 +00:00
claude[bot] 9a19e17858 docs: review document for #662
Issue: #662
User-Visible: no
2026-09-26 08:56:02 +00:00
claude[bot] dc83a875f4 docs(reviews): индекс после сдвига каталога (#660)
Issue: #660
User-Visible: no
2026-09-26 08:51:15 +00:00
claude[bot] 5321c32ddc docs: review document for #660
Issue: #660
User-Visible: no
2026-09-26 08:51:15 +00:00
Sergey Matyuninandclaude[bot] 8906675879 test: вести smoke редакторов через публичный фасад (#660)
Issue: #660
User-Visible: no
2026-09-26 08:51:15 +00:00
Sergey Matyuninandclaude[bot] d3c88f06f9 feat: отполировать главную панель редакторов (#660)
Issue: #660
User-Visible: yes
2026-09-26 08:51:15 +00:00
claude[bot] cff83e43ec docs: review document for #663
Issue: #663
User-Visible: no
2026-09-26 08:47:57 +00:00
claude[bot] 422221fe93 docs: review document for #662
Issue: #662
User-Visible: no
2026-09-26 08:37:45 +00:00
claude[bot] 27517db8a4 docs: review document for #661
Issue: #661
User-Visible: no
2026-09-26 08:12:01 +00:00
claude[bot] 1ecf96d596 docs: review document for #660
Issue: #660
User-Visible: no
2026-09-26 07:43:22 +00:00
claude[bot] d65b9e39d5 docs: review document for #660
Issue: #660
User-Visible: no
2026-09-26 07:35:07 +00:00
claude[bot] 563fbe0759 docs: review document for #657
Issue: #657
User-Visible: no
2026-09-26 07:28:24 +00:00
Claudeandclaude[bot] b856dd33c8 infra(process): fast-forward merge rebuilds the review index too (#657 r1 H1)
The task branch no longer carries docs/reviews/INDEX.md (1b), and
merge-candidate rebuilt it only inside rebaseOnto. When dev did not move
the fast-forward pushed the stale index and reviews_index would turn dev
red. freshIndex(tip) commits the rebuilt index on top of the material
before the push; the merge stays a fast-forward.

Real-git test: fast-forward, then reviews-index --check on the dev head
is green. Mutant merge-ff-skips-review-index.

Issue: #657
User-Visible: no
2026-09-26 07:28:24 +00:00
claude[bot] 78d4da4abe docs: review document for #657
Issue: #657
User-Visible: no
2026-09-26 07:28:24 +00:00
Claudeandclaude[bot] 88c4e4e9ae infra(process): bundle and review index change only on the way to dev (#657)
Решения владельца: 1б — индекс ревью не пересобирается в ветке задачи,
только коммитами, идущими в dev; 2б — бандл меняет только кандидат
беты/релиза, стенд dev берёт его из артефакта Validate.

- scripts/bundle-policy.mjs: коммит, трогающий dist/** или
  custom_components/houseplan/frontend/**, обязан нести Release:
  (хук commit-msg и история в CI через validate-commit-provenance;
  коммиты с датой автора до 2026-09-27 не судятся); --verify судит
  целостность свежей сборки всегда, побайтовую сверку с закоммиченной
  копией — только на коммите, меняющем бандл, или кандидате; --clean.
- release-prerelease: публикация отказывает, если отпечаток исходников
  в закоммиченном манифесте не равен отпечатку дерева (хотфикс поверх
  кандидата без пересборки).
- bundle-sync: по умолчанию только demo/srv/assets; --release
  (npm run bundle:release) — ещё и custom_components.
- rebase-on-dev: конфликт в бандле берёт копию dev, без пересборки
  и amend.
- validate.yml: job dev_build публикует card-bundle головы dev в
  сиротскую ветку dev-build (scripts/dev-build.mjs); стенд накладывает
  её demo/stand/update-dev-bundle.sh.
- _process.yml: индекс ревью больше не пересобирается при приведении
  к dev и при публикации документа в ветку задачи.
- golden-wsl-artifact/golden-container: сборка перед съёмкой не
  считается правкой источника, после — bundle:clean.
- test/bundle-tree-committed: судит закоммиченный снимок, не диск.
- 11 мутантов в реестре; PROCESS/AGENTS/DEVELOPMENT/AUTHOR/REVIEWER.

Issue: #657
User-Visible: no
2026-09-26 07:28:23 +00:00
claude[bot] 4b8a82c08a docs: review document for #660
Issue: #660
User-Visible: no
2026-09-26 07:23:13 +00:00
claude[bot] 54f197209d docs: review document for #656
Issue: #656
User-Visible: no
2026-09-26 07:19:32 +00:00
Sergey Matyunin 43fab645b0 fix(ci): fail closed on newest full release proof (#656)
Issue: #656
User-Visible: no
2026-09-26 10:02:40 +03:00
claude[bot] 9287f798b3 docs: review document for #654
Issue: #654
User-Visible: no
2026-09-26 06:39:45 +00:00
Sergey Matyunin f5c6d70b7c fix: stabilize cold 2.5D first frame
Issue: #654
User-Visible: yes
2026-09-26 09:05:20 +03:00
claude[bot] 6d3738adef docs: review document for #654
Issue: #654
User-Visible: no
2026-09-26 05:29:35 +00:00
claude[bot] 6297af6701 docs: review document for #654
Issue: #654
User-Visible: no
2026-09-26 05:22:56 +00:00
claude[bot] 803c0f0eaa docs: review document for #651
Issue: #651
User-Visible: no
2026-09-26 01:54:48 +00:00
Sergey Matyunin e73e56dd94 test(2.5D): cover rigid group boundaries and fallback
Issue: #651
User-Visible: no
2026-09-26 04:34:49 +03:00
claude[bot] 7cc5423efe docs: review document for #651
Issue: #651
User-Visible: no
2026-09-26 01:30:54 +00:00
Sergey Matyunin c40266431c test(2.5D): retire superseded zoom mutant
Issue: #651
User-Visible: no
2026-09-26 03:54:57 +03:00
Sergey Matyunin 4ab7ecb4a2 fix(2.5D): keep device overlays stable while zooming
Issue: #651
User-Visible: yes
2026-09-26 03:41:32 +03:00
claude[bot] c6937f9fc7 docs: review document for #651
Issue: #651
User-Visible: no
2026-09-26 00:21:46 +00:00
claude[bot] 9d4f68a4ee docs: review document for #651
Issue: #651
User-Visible: no
2026-09-26 00:14:38 +00:00
Sergey Matyunin ec2b8c1522 fix(2.5D): preserve geometry on settings toggle
Проверка (CI) / Классификация изменённых файлов (push) Successful in 3m7s
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Failing after 6m52s
Проверка (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) / HACS: валидация репозитория (push) Failing after 29s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 57s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 16s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 1m25s
Проверка (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 1m32s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 5m6s
Проверка (CI) / Доказательство выполненных проверок (push) Failing after 18s
Issue: #649
User-Visible: no
v1.78.0-beta.3
2026-09-25 23:33:07 +03:00
Sergey Matyunin 8703727951 fix(2.5D): make floor shadow twins geometry-only
Render only the core and value-badge geometry needed by the common floor-shadow layer. Avoid mounting hidden icons, activity indicators and satellites for every 2.5D marker.

Issue: #649
User-Visible: no
2026-09-25 23:05:56 +03:00
Sergey Matyunin cc04d341d4 fix(2.5D): reuse projection snapshot during settings toggle
The beta performance gate exposed a duplicate 2.5D scene resolution in one
Lit update: willUpdate built the projection snapshot and immediately cleared
it before render. Invalidate first so the computed snapshot is reused.

Issue: #649
User-Visible: no
2026-09-25 22:44:37 +03:00