Commit Graph
346 Commits
Author SHA1 Message Date
Claude 1950df608f docs: refresh the screenshots fingerprint before the v1.74.0-beta.1 candidate
The #500 adoption work changed src/** without touching any of the eleven
documented frames. The owner re-captured them in WSL — the canonical Linux
environment, because DirectWrite on native Windows never reproduces an
accepted frame — and `npm run docs:accept -- --identical` (#512) found zero
differing pixels, so only the source fingerprint moves:
48f770cf → ccbbfb4e. Frame bytes, their hashes and the capture-script guard
stay exactly as accepted.

Issue: #500
User-Visible: no
2026-09-10 16:01:58 +03:00
Codex 172d9d5a00 docs: refresh the screenshots fingerprint after the summary-panel fix
All 11 frames are pixel-identical (docs:accept --identical, #512); only
the source fingerprint moved with src/**.

Issue: #509
User-Visible: no
2026-09-10 11:35:26 +03:00
Codex 398281a93f fix: the summary panel's first paint no longer freezes or claims the sources are gone
Two halves of the same first paint. The panel showed «Source unavailable»
in every row until the lazy metrics chunk arrived, because value() could
not tell "not loaded yet" from "source is dead"; and metrics() ran inside
render, walking the HA registry and unioning the clean floor of every
space synchronously — 11 s on the large-house fixture.

- totalCleanFloorAreaM2 computes the space's masonry and junction
  topology once per SPACE and hands them to innerContourForRoom, which
  otherwise unions the whole space again for every room: 11 045 → 1 488 ms
  on that fixture, same 306.3 m². The card has always done this through
  its own _innerContour cache; the panel now does the same.
- Aggregates leave the render path: the first frame paints skeletons and
  the work starts right after the frame is shown (timeout → rAF →
  timeout, never requestIdleCallback, which under load would leave the
  skeleton up for seconds). Stale memo keeps the previous number on
  screen instead of flashing back to a skeleton.
- valueState() separates pending from unavailable; a pending row keeps
  the same plate, grid and height and carries a pulsing rectangle the
  height of the line, replaced by the value with a short fade. Reduced
  motion keeps the rectangle and drops the pulse.
- Panel enter/exit animation (#505, 190 ms) is now actually visible —
  the main thread is free — and the smoke witnesses it.

Mutants: summary-first-paint-shows-unavailable, summary-metrics-block-first-frame,
summary-area-recomputes-walls-per-room, summary-stale-metric-falls-back-to-skeleton.

Issue: #509
User-Visible: yes
2026-09-10 11:24:10 +03:00
Codexandclaude[bot] e38beed796 fix: the summary panel settings dialog scrolls in Home Assistant
In HA hp-dialog renders ha-dialog, whose own `.body` is the scroller and
is not a flex container; `.summary-editor` (overflow:auto,
overscroll-behavior:contain, min-height:0) therefore grew to its content
and became a scroll container that never scrolls — Chromium stops wheel
and touch scroll chaining at such a child, so nothing moved (reproduced
on ha.jbstudio.pro, HA 2026.9.1, and in an isolated Playwright page).
hp-dialog gains an opt-in `flex-content` attribute forwarded as
ha-dialog's `flexcontent`, which lays the body out as a flex column: the
editor is height-bound again and scrolls itself, header and footer stay,
exactly as the native branch already did. Only the summary dialog opts in.

Smoke demo/smoke_summary_dialog_scroll.mjs stubs ha-dialog after the HA
2026.9 contract: wheel on desktop, touch swipe on a phone, dialog within
the viewport, and a witness that the stub reproduces the bug without
flexcontent. Docs screenshots: 11/11 pixel-identical (docs:accept
--identical, #512), fingerprint refreshed.

Mutants: summary-dialog-drops-flex-content, hp-dialog-ignores-flex-content.

Issue: #508
User-Visible: yes
2026-09-09 19:49:18 +00:00
Codex b7d8b9e6ee test: displayed version through a seam; docs:accept --identical for pixel-identical screenshots
Golden frames carried the card version text (about, version banner,
support/export previews), so every beta bump re-accepted up to 20
baselines that had not visually changed. The version now reaches the DOM
and stand requests through displayVersion() (src/card-version.ts); the
golden harness pins window.__HP_VERSION_OVERRIDE__ = '0.0.0-golden'
before the card is created. CARD_VERSION literals stay where the release
contract reads them; cache-busting and the console banner keep the literal.

Docs screenshots: `npm run docs:accept -- --identical` re-captures
locally, compares decoded RGBA pixels with the committed frames inside
Chromium (scripts/png-identical.mjs) and, only when every frame is
identical, refreshes the manifest fingerprints and captureScriptSha256;
bytes stay, any difference refuses with a per-frame count. First run on
this tree: 11/11 identical, manifest refreshed.

Mutants: version-seam-ignores-override, docs-identical-accepts-any-frame.

Issue: #512
User-Visible: no
2026-09-09 18:53:38 +03:00
Codex 9d6ac98d3a fix: attach a warm summary runtime before the first render (#506)
Every card instance attached its summary-panel runtime through
import().then(), even when the chunk had loaded long ago. The first render
therefore measured a header without summary controls; the controls arrived
a beat later, the stage shrank, the deferred refit opened a `stage-resize`
continuity candidate and the first HA tick paid three extra render passes
(Full Performance: blend stateUpdate1 50 → 130 ms, overlay 217 → 809 ms;
locally 4 performUpdate per tick instead of 1).

summary-runtime-loader.ts separates the summary code from its state: the
loaded factory is cached per page, every host builds its own runtime from
it (no shared preferences, drafts, subscriptions, timers or DOM). A warm
factory yields the runtime synchronously in connectedCallback, before the
first Lit render; a cold mount still pays one lazy import, concurrent cold
mounts share the pending import, a failed import is forgotten so the next
connection retries, and a disconnect cancels the pending attachment of that
connection. SummaryRuntimeSlot owns the per-host lifecycle so the card core
stays under its line ceiling.

Witnesses: loader unit tests (distinct instances, shared pending import,
cancelled attachment, retry after failure); demo/smoke_summary_warm_attach
(warm replacement and cold-key instance on a warm page own the runtime
before the first render, header/stage stable from the first frame, no
stage-resize, one performUpdate per geometry-neutral tick, a real viewport
resize still opens stage-resize); mutant summary-runtime-attaches-after-
first-render. smoke_summary_panel waited for `_summary` as a readiness
proxy; it now waits for the server config load, which stays asynchronous.

Local paired glow benchmarks (4× CPU throttle): blend 159.7 → 49.9 ms and
overlay 326.7 → 120.4 ms at stateUpdate1 with renders 4 → 1; the isometric
load loses the three summary-owned long tasks.

Docs screenshots: all 11 frames decode pixel-identical to the committed
ones; the manifest carries only the new source fingerprint. Initial View
ceiling recentred 299 100 → 299 600 for the +299 B loader.

Issue: #506
User-Visible: yes
2026-09-09 13:57:53 +03:00
Matysh ab71f27298 Release v1.73.0-beta.8 candidate
Accept complete Linux documentation capture 34323466079 after personal review: four expected header/control changes, seven byte-identical witnesses. Unrelated dialog footer dimensions restored. Scope: independently accepted #495, #498 and #505.

Issue: #495
Issue: #498
Issue: #505
User-Visible: no
Release: v1.73.0-beta.8
2026-09-09 10:25:00 +03:00
Sergey Matyunin 8721d7d911 docs: refresh fixed warm-remount screenshot fingerprint (#437)
Issue: #437
User-Visible: no
2026-09-09 06:45:49 +03:00
Sergey Matyunin a56df6eb8e docs: refresh warm-remount screenshot fingerprint (#437)
Issue: #437
User-Visible: no
2026-09-09 06:27:36 +03:00
Matysh ca25e91087 test: keep radar bundle ratchet outside gzip noise
Проверка (CI) / Классификация изменённых файлов (push) Successful in 1m36s
Проверка (CI) / Предполётные проверки: документация, провенанс, процесс (push) Failing after 3m42s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 1m4s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 20s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 20s
Проверка (CI) / Мутанты по диффу (1/3): затронутые свидетели краснеют (push) Failing after 11m19s
Проверка (CI) / Мутанты по диффу (3/3): затронутые свидетели краснеют (push) Failing after 12m16s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 13m34s
Проверка (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) / Бэкенд: pytest в Home Assistant (push) Failing after 9m19s
Проверка (CI) / Мутанты по диффу (2/3): затронутые свидетели краснеют (push) Successful in 1h36m17s
Issue: #485
User-Visible: no
2026-09-09 04:01:00 +03:00
Sergey Matyunin 3434747d1c build: prepare v1.73.0-beta.7 candidate
Проверка (CI) / Классификация изменённых файлов (push) Successful in 58s
Проверка (CI) / Предполётные проверки: документация, провенанс, процесс (push) Failing after 14m42s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 1m20s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 24s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 24s
Проверка (CI) / Мутанты по диффу (1/3): затронутые свидетели краснеют (push) Failing after 12m28s
Проверка (CI) / Мутанты по диффу (3/3): затронутые свидетели краснеют (push) Failing after 12m22s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 13m36s
Проверка (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) / Мутанты по диффу (2/3): затронутые свидетели краснеют (push) Failing after 16m48s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 10m4s
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34294899732
Issue: #437
Issue: #489
Issue: #490
Issue: #491
Issue: #492
Issue: #493
Issue: #499
User-Visible: yes
Release: v1.73.0-beta.7
2026-09-09 03:38:16 +03:00
Sergey Matyunin 15e0efe3bf docs: accept data-hp contract screenshots (#489)
Issue: #489
User-Visible: no
2026-09-08 21:30:58 +03:00
Matysh 68462b81e0 docs: refresh screenshot provenance after rebase
All eleven documented frames remain byte-identical in the canonical Linux capture after combining #487 with current dev.

Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34201357630
Issue: #487
User-Visible: no
2026-09-08 10:54:17 +03:00
Codex 2b2fc94479 docs: refresh screenshot provenance for the panel mount fix
Fingerprint-only: the panel change does not alter any documented frame
(the docs harness already gave the panel host the viewport height), so the
committed images stay and only the source provenance moves.

Issue: #488
User-Visible: no
2026-09-08 10:10:20 +03:00
Matysh 8bf30947fa docs: refresh screenshot provenance for House Plan panel
Issue: #486
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34166114162
User-Visible: no
2026-09-08 01:19:59 +03:00
Matysh 7b826c19a7 docs: refresh screenshot fingerprint for PDF fix
Issue: #484
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34150593861
User-Visible: no
2026-09-07 21:14:58 +03:00
Matysh ae03ad4219 docs: refresh PDF export screenshot
Issue: #482
User-Visible: no
2026-09-07 11:27:34 +03:00
Matysh 3be3e46a5d docs: refresh compact header screenshot
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34075005646
Issue: #53
User-Visible: no
2026-09-07 05:06:48 +03:00
Matysh b88233cfac docs: refresh PDF cache fingerprint
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34074100695
Issue: #53
User-Visible: no
2026-09-07 04:48:47 +03:00
Matysh 008efbe920 docs: refresh responsive PDF screenshot
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34073461748
Issue: #53
User-Visible: no
2026-09-07 04:37:44 +03:00
Matysh 66bce93b28 docs: refresh PDF screenshot fingerprint
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34072334310
Issue: #53
User-Visible: no
2026-09-07 04:16:20 +03:00
Matysh e86b689d65 docs: accept PDF export screenshots
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34071499278
Issue: #53
User-Visible: no
2026-09-07 04:03:09 +03:00
Codexandclaude[bot] c2913b2866 docs: refresh screenshot source fingerprint
source-fingerprint.mjs входит в корпус отпечатка; пиксели не менялись.

Issue: #481
User-Visible: no
2026-09-06 21:00:39 +00:00
Matyshandclaude[bot] 04f4cd10e1 docs: refresh screenshot source fingerprint
Issue: #477
User-Visible: no
2026-09-06 17:52:05 +00:00
Matysh 0c670a9862 docs: accept corrected room contour capture
Issue: #478
User-Visible: no
2026-09-06 18:50:46 +03:00
Matysh 0b577be59b docs: accept room contour screenshot for #478
Issue: #478
User-Visible: no
2026-09-06 17:53:14 +03:00
Codex 605a9a1c78 docs: ленивый арт мебели — ARCHITECTURE, FURNITURE, отпечаток скриншотов
Issue: #474
User-Visible: no
2026-09-06 16:10:53 +03:00
Sergey Matyuninandclaude[bot] cb298b10f9 docs: refresh screenshot fingerprint
Issue: #476
User-Visible: no
2026-09-06 12:56:14 +00:00
Matyshandclaude[bot] 2b80641db8 docs: refresh screenshot source fingerprint
Accept the reproducible Linux CI capture for the issue 471 source tree. All ten documentation screenshots are byte-identical; only their source fingerprint changes.

Issue: #471
User-Visible: no
2026-09-06 11:23:52 +00:00
Sergey Matyunin 615045cb18 docs: refresh screenshot source fingerprint
Проверка (CI) / Классификация изменённых файлов (push) Successful in 28s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 49s
Проверка (CI) / Предполётные проверки: документация, провенанс, процесс (push) Failing after 1m5s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 26s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 33s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 4m40s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 6m59s
Проверка (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
Issue: #160
User-Visible: no
2026-09-06 10:30:05 +03:00
Sergey Matyunin 9d2256c090 docs: refresh screenshot source fingerprint
Issue: #160
User-Visible: no
2026-09-06 09:43:10 +03:00
Sergey Matyunin c41292d49f docs: refresh screenshot fingerprint after isometric optimization
Issue: #160
User-Visible: no
2026-09-06 09:23:49 +03:00
Sergey Matyunin 8c12474531 docs: refresh screenshot fingerprint for stage 3
Issue: #160
User-Visible: no
2026-09-06 07:51:14 +03:00
Matysh 87cab133ac Refresh documentation screenshot fingerprint
Issue: #464
User-Visible: no
2026-09-06 01:29:01 +03:00
Matysh 276bf193a2 Refresh documentation screenshot fingerprint
Issue: #464
User-Visible: no
2026-09-06 00:58:05 +03:00
Matysh 23c65e449e test: accept corrected dialog baselines
Issue: #463
User-Visible: no
Release: v1.72.0-beta.5
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/33973294353
2026-09-05 18:05:19 +03:00
Matysh 12e5728a17 docs: accept final screenshot capture
Issue: #462
User-Visible: no
2026-09-05 16:35:53 +03:00
Matysh 21a1993015 docs: accept unchanged screenshot capture
Issue: #462
User-Visible: no
2026-09-05 16:15:27 +03:00
Sergey Matyunin 34d53bf2d1 docs: refresh screenshot source fingerprint
Issue: #461
User-Visible: no
2026-09-05 14:14:35 +03:00
Sergey Matyunin dfb4efaa1c docs: refresh screenshot source fingerprint
Issue: #460
User-Visible: no
2026-09-05 12:15:43 +03:00
Codex ba47395337 docs: обновить отпечаток источника скриншотов
User-Visible: no
Issue: #459
2026-09-05 11:15:26 +03:00
Codex b4898583d7 feat: подсказка к настройке связей Zigbee
User-Visible: yes
Issue: #459
2026-09-05 11:10:44 +03:00
Sergey Matyunin d80805acec docs: refresh Zigbee route review fingerprint
Issue: #457
User-Visible: no
2026-09-05 10:52:55 +03:00
Sergey Matyunin da22b87fe1 docs: refresh optimized source fingerprint
Issue: #457
User-Visible: no
2026-09-05 10:50:19 +03:00
Sergey Matyunin 58b1651570 docs: refresh screenshot source fingerprint
Issue: #457
User-Visible: no
2026-09-05 10:50:19 +03:00
Sergey Matyunin 6dd9fb03c3 docs: refresh screenshot source fingerprint
Issue: #456
User-Visible: no
2026-09-05 09:25:08 +03:00
Sergey Matyunin 5bd0c4a033 docs: refresh screenshot fingerprint for #451
Проверка (CI) / Классификация изменённых файлов (push) Successful in 34s
Проверка (CI) / HACS: валидация репозитория (push) Skipped
Проверка (CI) / Hassfest: манифест интеграции (push) Skipped
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Skipped
Проверка (CI) / Предполётные проверки: документация, провенанс, процесс (push) Failing after 45s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 41s
Проверка (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) / Бэкенд: pytest в Home Assistant (push) Skipped
Issue: #451
User-Visible: no
2026-09-05 02:18:50 +03:00
Sergey Matyunin 07ba2ffbd1 docs: refresh screenshot fingerprint for #451
Issue: #451
User-Visible: no
2026-09-05 01:49:27 +03:00
Sergey Matyunin 444562e47c docs: refresh screenshot fingerprint for #451
Issue: #451
User-Visible: no
2026-09-05 00:44:37 +03:00
Sergey Matyunin a7bee0f5fb docs: refresh screenshot fingerprint for #451
Issue: #451
User-Visible: no
2026-09-05 00:19:16 +03:00