Commit Graph
3606 Commits
Author SHA1 Message Date
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
Sergey Matyunin 8501d10988 chore(golden): эталоны визуальных изменений beta.3
Съёмка — Linux CI, Validate 36177319720 на 142340ee; приёмка — Windows
владельца с HP_ALLOW_FOREIGN_CAPTURE (#455).

Приняты ровно 52 заявленных изменения: публичный 2.5D, мобильная шапка и
стабильная панель редактора; необъявленных расхождений нет.

Issue: #616
Issue: #647
Issue: #649
User-Visible: no
Release: v1.78.0-beta.3
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/36177319720
2026-09-25 22:17:43 +03:00
Sergey Matyunin 142340ee1c Release v1.78.0-beta.3 candidate
Issue: #616
Issue: #626
Issue: #628
Issue: #638
Issue: #647
Issue: #648
Issue: #649
Issue: #650
User-Visible: yes
Release: v1.78.0-beta.3
2026-09-25 22:03:17 +03:00
claude[bot] 0e8e87303e docs: review document for #649
Проверка (CI) / Классификация изменённых файлов (push) Successful in 22s
Проверка (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 48s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 23s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 24s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 46s
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Failing after 34s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 44s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 8m29s
Проверка (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 19s
Issue: #649
User-Visible: no
2026-09-25 16:51:38 +00:00
Claude 106fdc096d fix(2.5D): prove the sun beam is cut by bodies; review r1 lows (#649)
CODE-REVIEW-649-r1 M1: the 2.5D beam's cut by physical bodies (AC7) had no
witness. Unit: a column in the beam leaves the floor between window and
column lit and shades it behind the column; smoke: a Solid partition across
the south beam removes floor from the rendered wash. Mutants: occluders
extruded toward the sun, occluders ignored, card drops occluders.

Lows: L1 stale alpha wording (DEVELOPMENT, ARCHITECTURE, card comment,
benchmark); L3 dark-theme state edges computed per theme; L4 Alert beats a
plain Hover and a plain Selected; L5 a virtual marker has no dashed ring;
L6 tiles and shadows stay without walls (show_borders off).

Issue: #649
User-Visible: no
2026-09-25 18:55:28 +03:00
claude[bot]andClaude e1f1c7d908 docs: review document for #649
Issue: #649
User-Visible: no
2026-09-25 18:55:27 +03:00
Claude 2ed050311b test(mutants): stage3-w12 guard follows the renamed #649 contract test
The guard pattern "Labs iso is presentation-only" matched no test after #649
renamed it, so node --test ran the file with zero subtests and the mutant
survived (Validate 36151140394, shard 3/6). Point it at the test that still
asserts params.getAll('hp_alpha').

Issue: #649
User-Visible: no
2026-09-25 18:55:15 +03:00
Claude e5ab4659f6 feat: 2.5D stage 6 — public setting, raised tiles, soft sun, theme-free walls (#649)
- settings.volumetric_view (General settings › Display, third switch) replaces
  the alpha entry, the header projection toggle and the phone-menu item; one
  rule for card, sidebar page and kiosk; editors stay Flat; backend accepts
  only a boolean, support package copies it.
- Raised tiles in 2.5D View: no ring, rounded body min(0.275 D, 0.3 h), edge
  0.1 D with the lab filters, ×1.12 size also in layout/collision, lift
  0.075 D, one floor-shadow layer under all markers (theme × floor table),
  frames hugging tile and edge (Alert > Focus > Selected > Hover), forced
  colours without edge and shadow (src/iso-tiles.ts, styles/iso-tiles).
- Soft sun wash instead of projected Flat wedges (src/iso-sun.ts): same gates
  and windows as sun_rays, length from elevation, parallelogram along the sun,
  tone and streaks by floor lightness, sill line.
- Walls take the user's wall colour (top opaque, sides × .77/.68/.60); theme
  rules for walls/openings/labels removed; furniture uses the Flat stroke rule.
- Smokes smoke_iso_tiles/iso_sun/iso_theme_walls/volumetric_setting, 16 new
  mutants, acceptance scenes STAGE6_ACCEPTANCE_SCENARIOS (golden with their
  Linux CI baselines), ACCEPTANCE.md side by side.

Issue: #649
User-Visible: yes
2026-09-25 18:55:14 +03:00
claude[bot] 11a8b623a2 docs: review document for #650
Issue: #650
User-Visible: no
2026-09-25 15:51:12 +00:00
Claude 43459bcbe0 ci(mutants): an unmatched --test-name-pattern is setup-failure, not survived (#650)
A name-filtered `node --test` that matches no test exits 0 and TAP reports
only the file itself. The clean run took that for a healthy witness and the
mutant run for `survived`, although no assertion ran either time — as in
Validate 36151140394 on #649, where a renamed test left a guard pattern empty.

- mutation-guard-outcome: nodeTestSelection/executedTestNames/
  emptyTestSelection; a green oracle with a name filter and zero executed
  named tests is `setup-failure` (clean run: «FAIL чистая подготовка»,
  diff mode: attributed like any setup failure, #568).
- mutation-gate --check: staticTestSelectionProblems — every pattern must
  match a literal test(/it(/describe( name in the guard's files; files with
  ${…} names only warn. POSIX quoting keeps \( inside "…".
- Registry today: 349 unique name-filtered commands run on dev, all execute
  ≥ 1 test; --check: 0 errors, 3 warnings (dynamic names).
- Tests: 6 new in test/mutation-guard-outcome.test.mjs (incl. the installed
  node's real TAP and a registry-wide static check); 3 mutants.
- Docs: TESTING.md pointer, testing-notes/infrastructure.md section.

Issue: #650
User-Visible: no
2026-09-25 18:31:17 +03:00
claude[bot] a55f564498 docs: review document for #648
Issue: #648
User-Visible: no
2026-09-25 13:33:26 +00:00
claude[bot] 4168b1cfce docs(reviews): индекс после сдвига каталога (#648)
Issue: #648
User-Visible: no
2026-09-25 13:11:44 +00:00
Sergey Matyuninandclaude[bot] 8f13325c52 test: проверять минимум Sections на RU и DE (#648)
Issue: #648
User-Visible: no
2026-09-25 13:11:44 +00:00
claude[bot] 180239f44c docs: review document for #648
Issue: #648
User-Visible: no
2026-09-25 13:11:44 +00:00
Sergey Matyuninandclaude[bot] b9fe916662 test: детерминировать transition-smoke Sections (#648)
Issue: #648
User-Visible: no
2026-09-25 13:11:44 +00:00
Sergey Matyuninandclaude[bot] dc0a5ccc5a test: ловить viewport-регрессии Sections (#648)
Issue: #648
User-Visible: no
2026-09-25 13:11:44 +00:00
Sergey Matyuninandclaude[bot] 2452c51d00 feat: вертикальный resize карточки в Sections (#648)
Issue: #648
User-Visible: yes
2026-09-25 13:11:44 +00:00
claude[bot] 230813b355 docs: review document for #648
Issue: #648
User-Visible: no
2026-09-25 13:11:44 +00:00
claude[bot] 7372e977b8 docs: review document for #649
Issue: #649
User-Visible: no
2026-09-25 12:48:25 +00:00
claude[bot] f68878cc44 docs: review document for #649
Issue: #649
User-Visible: no
2026-09-25 12:34:36 +00:00
claude[bot] b7079ead80 docs: review document for #616
Issue: #616
User-Visible: no
2026-09-25 11:49:20 +00:00
Claude 255330b9bc Шапка на телефоне: одна строка — вкладки, масштаб и шестерёнка с меню остального (#616)
На окне не шире 480 px шапка карточки и страницы бокового меню занимает одну
строку ≤ 56 px: вкладки пространств (без шестерёнок и «+», прокрутка вбок,
текущая вкладка докручивается в видимую область), масштаб, одна шестерёнка
«Действия и настройки» и у админа слот крестика #647. Заголовок скрыт.

Меню шестерёнки (src/header-menu.ts): редакторы, настройки и добавление
пространства, общие настройки, PDF, помощь, сводная панель и объёмный вид
(alpha) — в фиксированном порядке и с теми же условиями и действиями, что у
прежних кнопок. Пункт закрывает меню; Escape возвращает фокус на шестерёнку;
касание вне меню поглощается прозрачной подложкой. На > 480 px шапка прежняя,
в киоске меню нет.

- три кнопки шапки вынесены в renderHeaderActions — шапка карточки не растёт;
- сводная панель отдаёт свои пункты методом menuItems();
- i18n: title.header_menu (en/ru/de/fr);
- потолок initial View 291 000 → 292 600 (замер 291 635), база bundleBytes;
- смок smoke_mobile_view_header, юнит header-menu, 10 мутантов; смоки
  support_feedback, gear_tabs, modes, toolbar_stable_width переведены на
  меню на ≤ 480 px; подпись вкладки в span.tabtitle без pointer-events;
- USER-GUIDE.ru, UX-MODES, TOUCH-SUPPORT, STYLING-HOOKS, data-hp-contract,
  оба changelog.

Issue: #616
User-Visible: yes
2026-09-25 14:22:36 +03:00
claude[bot] dc6018ed5a docs: review document for #626
Issue: #626
User-Visible: no
2026-09-25 11:20:33 +00:00
Sergey Matyunin b80193f726 test: restore default upload ACL coverage
Issue: #626
User-Visible: no
2026-09-25 14:09:07 +03:00