Commit Graph
1428 Commits
Author SHA1 Message Date
claude[bot]andCodex 58c096cef1 docs: review document for #302
Issue: #302
User-Visible: no
2026-08-25 17:34:19 +03:00
Codex e88abcb138 docs: list the junction tooling in the wall-thickness testing map (#302)
Заодно даёт CI прогон с валидным before-SHA: предыдущий пуш был вынужденно
форсовым после ребейза на #265, и process-gate на CI не смог вычислить
диапазон от затёртой вершины.

Issue: #302
User-Visible: no
2026-08-25 17:34:19 +03:00
Codex 9dbdbec03d build: rebundle and mend the baseline manifest after the rebase onto #265 (#302)
Ребейз на свежий dev (#265 import seam + его эталон) слил baselines-index из
двух источников; поштучное слияние потеряло `matrixVersion: 45` и держало
хэши двух сцен, чьи PNG пришли из dev. Индекс поправлен по фактическим
файлам, `golden:verify` — 126/126 с валидным манифестом. Бандл и отпечаток
скриншотов пересобраны из объединённых исходников (`npm test` 1303/1303).

Issue: #302
User-Visible: no
Release: v1.68.0-beta.1
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/32848447191
2026-08-25 17:34:19 +03:00
Codex c179a89876 test: report raw pixel-diff numbers in the grid-scale smoke (#302)
Шард 3 упал на CI по darkViewPixelsMatch, локально смок стабильно зелёный
(3/3, changed=69 при пороге 150), и тот же фон 69 воспроизводится на чистом
dev. Смок печатал только булевы вердикты — добавлен диагностический вывод
сырых дифф-метрик, чтобы прогон CI показал фактическую величину дрейфа.

Issue: #302
User-Visible: no
2026-08-25 17:34:19 +03:00
Codex df38c5c93b chore: re-run CI for the flaky grid-scale shard (#302)
Пустой коммит: локально смок grid_scale_invariance стабильно зелёный (3/3,
darkView changed=69 при пороге 150), и тот же дифф-фон 69 воспроизводится на
чистом dev — падение шарда на прошлом прогоне похоже на средовую
вариативность раннера, а прав на rerun-failed-jobs у токена нет.

Issue: #302
User-Visible: no
2026-08-25 17:34:19 +03:00
Codex b6f80c56f0 test: accept the decision-#5 junction baselines
Шесть сцен, изменившихся законно при переходе на полный mitre (решение №5):
`junction-y-60-equal50-dark` (вырез исчез), `junction-acute30-mixed-dark`
(рожок фаски ушёл, остался законный торец перехода толщин 15→70),
`junction-splay10-170-dark`, `junction-owner-repro-dark` (репро владельца:
стык сомкнут полностью) и `safe-resize-handles-clamp-{light,dark}`, где
вершина ромбовидной комнаты в узле теперь сомкнута веером вместо прежнего
зазора. Остальные 120 сцен совпали; шумовая пересъёмка `accept` возвращена к
прежним байтам вместе с хэшами (практика #230).

Принято `npm run golden:accept -- --reviewed` по полному локальному
Linux-прогону; после отката шумовых verify чист (126/126). Каждая сцена
осмотрена.

Issue: #302
User-Visible: no
Release: v1.68.0-beta.1
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/32840836354
2026-08-25 17:34:19 +03:00
Codex aac501516e feat: full mitre at every node — the #249 chamfer retires (#302, decision #5)
Владелец, осмотрев первые эталоны сета, отменил дневное решение о сохранении
фаски: `junction-y-60-equal50` показывал вырез, `junction-acute30-mixed` —
торчащие углы. По визуальному сравнению трёх вариантов принято: узлы
смыкаются полным mitre, как обычное пересечение стен на чертеже.

Итоговое правило веера (одно на все случаи):

- mitre принимается, когда он В СЕКТОРЕ пары (вперёд по лучам для обычной
  пары, назад — для рефлексной: наружный угол между крайними лучами, где и
  жил вырез Y-60), в пределах классического `MITRE_LIMIT` и не дальше конца
  толстого саппорта (#271);
- рефлекс без валидного mitre замыкается плоской хордой между гранями;
- обычная пара без mitre — локальный бевел: ход по граням ограничен толстым
  саппортом, лимитом и двойной толщиной пары, чтобы хорда осталась деталью
  угла. Гигантские бевел-«бабочки» и mitre вне сектора — две реальные ошибки
  промежуточных версий, обе пойманы на сценах сета до пуша.

Слой `bevelMultiWallBody` сохранён только как АДРЕСНЫЙ латеральный трим для
узлов с вырожденно-коротким толстым саппортом (#271); все прочие узлы — чисто
аддитивные, следы трима на них исчезли. `bevelMultiWallPaper` из бумаги
удалён. Обе записи CHANGELOG приведены к финальному контракту.

Тесты: юниты §302 усилены; площадь фикстуры #197 +0.6 юнита²; мутанты
переякорены, краснота каждого проверена исполнением.

Issue: #302
User-Visible: yes
2026-08-25 17:34:19 +03:00
Codex 8af5ebefd2 test: multiwall smoke follows the strip-safe chamfer contract (#302)
Смок `smoke_multiwall_junction` держал старый контракт «клин за фаской пуст» —
его проба лежит в перекрытии двух полос узла и по strip-safe правилу #302
обязана остаться заполненной. Пропущен в первом прогоне AC9, пойман CI.

Issue: #302
User-Visible: no
2026-08-25 17:34:19 +03:00
Codex ef22c2c6fd build: rebundle after the rebase onto #301/#303 (#302)
Ребейз на свежий dev (поиск в селекторах проёмов #301, честная подсветка
толщины #303) объединил исходники; бандл и отпечаток скриншотов пересобраны
из результата. Обе копии бандла байт в байт; `check-docs` passed; полный
`npm test` 1298/1298 и golden verify 126/126 на объединённом коде.

Issue: #302
User-Visible: no
2026-08-25 17:34:19 +03:00
Codex a6ef664bef test: accept the #302 junction close-up baselines
Шестнадцать новых сцен стыков крупным планом (звёзды лучей: T/X/Y, острые
15°/30°, почти коллинеарные, смешанные толщины, виртуальные участки, колонна,
черновик) плюс сцена-репро владельца. Только новые файлы: все 110 существующих
сцен на этом коде прошли verify побайтно — переработка узлов не изменила ни
одну старую картинку, что и требовал AC3. Пересъёмка шумовых копий,
оставленная `accept` на прочих сценах, возвращена к прежним байтам вместе с
хэшами в индексе (практика #230).

Принято `npm run golden:accept -- --reviewed` по полному локальному
Linux-прогону (126/126), после принятия verify чист. Каждая новая сцена
осмотрена; кладка узлов сплошная, фаски #249 на месте.

Baseline-Reviewed указывает на зелёный прогон Validate этой ветки
(ревьюированное ТЗ, SHA 3b19111) — прогона CI с этими эталонами до этого пуша
не существует; job `golden` на них выполнится в прогоне этого же пуша.

Issue: #302
User-Visible: no
Release: v1.68.0-beta.1
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/32819360269
2026-08-25 17:34:19 +03:00
Codex 76d60b3e1b feat: junction nodes — detector, fans over the approved chamfer, scene set (#302)
Вторая половина переработки узлов поверх ядра из прошлого коммита:

- `junctionContractHoles` — объективный инвариант «тело ⊇ полосы ∪ веера в
  фасадной границе» как экспортная чистая функция; самопроверка на заведомо
  дырявой фикстуре входит в юниты. Первая формулировка детектора из ТЗ
  («окружено кладкой с ≥5 из 8 сторон») уточнена в §8.4 по факту измерения:
  она ложно флагует легитимный пол комнаты в острых внутренних углах.
- `junctionNodeBound` — «гладкая» фасадная граница (конверт с обычными углами)
  экспортирована: ею клиппуются куски узла и ею же пользуются тесты.
- юниты #302: веера/рефлекс/короткий толстый саппорт/детектор/репро
  end-to-end; хелпер тестов старого контракта переведён на strip-safe
  семантику по саппортам и фасадной границе.
- смок `smoke_junction_holes`: контрактные пробы считаются в node из той же
  фикстуры и проверяются в браузере по реальному `d`-пути карточки.
- сет из 16 golden-сцен стыков крупным планом (звёзды лучей: T/X/Y/острые/
  почти коллинеарные/виртуальные/колонна/черновик) + сцена-репро владельца;
  билдер сцен и `zoomCenter` в harness. Контракт сцены
  `multiwall-junction-bevel-view-dark` инвертирован по решению владельца:
  проба в перекрытии полос обязана быть ЗАПОЛНЕНА (strip-safe), а не пустой.
- семь мутантов §14, включая слепоту детектора и невозврат саппортов.
- фикстура #197: площадь кладки выросла на 0.2 юнита² — слайвер вееров вдоль
  хорд фаски; константа обновлена с комментарием.

Эталоны новых сцен идут отдельным коммитом с положенными трейлерами.

Issue: #302
User-Visible: yes
2026-08-25 17:34:19 +03:00
Codex a1361974a3 feat: junction node gets back what a chamfer must never eat (#302, wip)
Ядро переработки узлов. Слой фаски #249 (`bevelMultiWallBody`) остаётся как
утверждённый вид, но после него узел аддитивно получает обратно:

- точные саппорт-квады своих лучей (каждый ограничен собственной конечной
  длиной — обрезанный латеральный фантом #271 вернуться не может);
- по вееру на каждую пару соседних по азимуту лучей (сектор ≤ 180°; рефлексные
  секторы — внешность выпуклого угла — пропускаются), mitre в пределах лимита
  узла, иначе bevel-хорда на том же радиусе, что и хорда фаски.

Куски клиппуются «гладкой» фасадной границей (`junctionNodeBound`: конверт с
обычными углами, без узловых засечек) — узел не может отрастить новый фасад
(контракт вогнутого Split), но и не теряет секторные веера, как терял бы при
клипе по засечённому конверту. Вырожденные кольца нулевой площади, которые
polyclip оставляет на совпадающих хордах, вычищаются.

Тесты старого контракта переведены на новый: клин за фаской заполнен, если
лежит в полосах узла (острый стык — сплошная кладка, сама починка #302), и
пуст вне полос (фаска #249 как была). Хелпер и точечные тесты #249/#271/#197 и
corner-Split обновлены; площадь фикстуры #197 выросла на 0.2 юнита² — слайвер
вееров вдоль хорд фаски.

Проверено исполнением: `npm test` 1286/1286; контракт «тело ⊇ полосы ∪ веера»
на репро владельца — 0 пропаж; клинья на скриншоте исчезли.

Issue: #302
User-Visible: no
2026-08-25 17:34:18 +03:00
Codex f1c76aa415 docs: record the owner's chamfer decision and the strip-safe cut contract (#302)
Issue: #302
User-Visible: no
2026-08-25 17:34:18 +03:00
claude[bot]andCodex 3df1dcf5a3 docs: review document for #302
Issue: #302
User-Visible: no
2026-08-25 17:34:18 +03:00
Codex eef4e0d6d4 docs: spec for #302 — additive junction node material
Issue: #302
User-Visible: no
2026-08-25 17:34:18 +03:00
claude[bot] 1575b1e890 docs: review document for #304
Issue: #304
User-Visible: no
2026-08-25 14:30:36 +00:00
Matysh e603c5496f test: accept reviewed plan-axis baselines
Accepted the complete 110-scene Linux artifact from Validate run 32854408646. Five scenes record the intended new Plan-axis layer in Resize and Opening; seven already-passing frames receive the canonical below-threshold raster refresh produced by the same exact capture.

Issue: #304
User-Visible: no
Release: v1.67.0-rc.3
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/32854408646
2026-08-25 17:12:33 +03:00
claude[bot] 33dcd1ce62 docs: review document for #304
Issue: #304
User-Visible: no
2026-08-25 14:09:15 +00:00
Matysh 7310ce0134 docs: refresh reviewed screenshots
Canonical Linux capture from workflow run 32854424829 at exact branch SHA a2b4d32b2d was reviewed as a complete ten-frame set.

Issue: #304
User-Visible: no
2026-08-25 16:43:20 +03:00
Matysh a2b4d32b2d fix(plan): keep wall axes across tools
Issue: #304
User-Visible: yes
2026-08-25 16:36:55 +03:00
claude[bot] 9c5e1e2749 docs: review document for #304
Issue: #304
User-Visible: no
2026-08-25 13:06:34 +00:00
Matysh 2143e88824 test: close import seam review gaps
Validate / reuse (push) Successful in 1m13s
Validate / hacs (push) Failing after 24s
Validate / hassfest (push) Failing after 33s
Validate / frontend (push) Successful in 6m16s
Validate / backend (push) Failing after 7m3s
Validate / smoke (3) (push) Failing after 18m38s
Validate / smoke (2) (push) Failing after 19m10s
Validate / golden (push) Failing after 23m1s
Validate / smoke (1) (push) Failing after 45m54s
Validate / smoke_done (push) Skipped
Validate / performance_smoke (push) Failing after 50m53s
Validate / process-workflow-sync (push) Successful in 34s
Validate / docs (push) Successful in 51s
Validate / provenance (push) Successful in 1m16s
Validate / process-gate (push) Failing after 1m16s
Validate / changes (push) Successful in 46s
Issue: #265
User-Visible: no
2026-08-25 15:16:40 +03:00
Matysh 1f83f35a66 test: accept reviewed import preview baseline
Issue: #265
User-Visible: no
Release: v1.67.0-rc.2
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/32844271523
2026-08-25 15:12:28 +03:00
claude[bot] e7f2f2c174 docs: review document for #265
Issue: #265
User-Visible: no
2026-08-25 12:05:54 +00:00
Matysh 9f54cbab75 test: cover nested import lineage in browser
Issue: #265
User-Visible: no
2026-08-25 14:48:29 +03:00
Matysh 51810164c2 refactor: unify import reference seam
Issue: #265
User-Visible: yes
2026-08-25 14:47:04 +03:00
claude[bot] 9c0b276f43 docs: review document for #265
Issue: #265
User-Visible: no
2026-08-25 11:14:32 +00:00
Matysh 26af611af1 docs: name real i18n verification
Issue: #265
User-Visible: no
2026-08-25 14:10:48 +03:00
claude[bot] 19f536f361 docs: review document for #265
Issue: #265
User-Visible: no
2026-08-25 11:09:33 +00:00
Matysh 67bcce8efb docs: address import seam spec review
Issue: #265
User-Visible: no
2026-08-25 14:03:49 +03:00
claude[bot] ab2f37aa4d docs: review document for #265
Issue: #265
User-Visible: no
2026-08-25 11:01:14 +00:00
Matysh 2cf47fc133 docs: specify import reference seam
Issue: #265
User-Visible: no
2026-08-25 13:51:10 +03:00
claude[bot] ca58f0e3eb docs: review document for #303
Issue: #303
User-Visible: no
2026-08-25 10:05:08 +00:00
Matysh 93cd45569d docs: refresh reviewed screenshots
Issue: #303
User-Visible: no
2026-08-25 12:51:30 +03:00
Matysh 36992d68bd fix: match wall thickness hover to masonry
Issue: #303
User-Visible: yes
2026-08-25 12:49:41 +03:00
claude[bot] 0f71d869e3 docs: review document for #301
Issue: #301
User-Visible: no
2026-08-25 09:39:16 +00:00
Matysh 56dbb48868 docs: refresh reviewed screenshots
Issue: #301
User-Visible: no
2026-08-25 12:24:06 +03:00
Matysh 13219307d5 fix: keep opening picker semantics accurate
Issue: #301
User-Visible: no
2026-08-25 12:20:33 +03:00
Matysh 8b4730df05 feat: search opening entity selectors
Issue: #301
User-Visible: yes
2026-08-25 12:17:30 +03:00
claude[bot] 19332a915d docs: review document for #301
Issue: #301
User-Visible: no
2026-08-25 08:55:50 +00:00
claude[bot] fd4fc801ef docs: review document for #301
Issue: #301
User-Visible: no
2026-08-25 08:44:48 +00:00
claude[bot] 6d094ca01b docs: review document for #301
Issue: #301
User-Visible: no
2026-08-25 08:33:33 +00:00
claude[bot] 65e55872e8 docs: review document for #303
Issue: #303
User-Visible: no
2026-08-25 08:10:51 +00:00
claude[bot] 68498e526e docs: review document for #301
Issue: #301
User-Visible: no
2026-08-25 08:09:22 +00:00
Sergey Matyunin 4b8f17bae5 build: prepare v1.67.0-rc.2 candidate
Validate / process-workflow-sync (push) Successful in 45s
Validate / process-gate (push) Failing after 45s
Validate / provenance (push) Successful in 54s
Validate / changes (push) Successful in 32s
Validate / reuse (push) Successful in 57s
Validate / hacs (push) Failing after 23s
Validate / hassfest (push) Failing after 22s
Validate / frontend (push) Successful in 8m43s
Validate / backend (push) Failing after 13m35s
Validate / smoke (3) (push) Failing after 18m13s
Validate / smoke (2) (push) Failing after 18m29s
Validate / golden (push) Failing after 20m44s
Validate / smoke (1) (push) Failing after 34m31s
Validate / performance_smoke (push) Failing after 26m6s
Validate / smoke_done (push) Skipped
Validate / docs (push) Failing after 39s
Package the accepted S8 work and refresh release metadata and bundles.

Issue: #294
Issue: #296
Issue: #298
Issue: #299
Issue: #300
User-Visible: yes
v1.67.0-rc.2
2026-08-25 00:06:18 +03:00
Sergey Matyunin 136e0cb773 test: align Optimize smoke with role-aware compaction
The full pre-release smoke still expected #198's T-node fixture to compact into one record. #299 intentionally preserves the outer/shared ownership breakpoints, so the smoke now requires three canonical 22 cm role runs while retaining Preview, atomic Apply, Reload, and Undo coverage.

Issue: #299
User-Visible: no
2026-08-24 23:48:36 +03:00
Sergey Matyunin 641c4e199e test: accept reviewed #296 and #300 golden baselines
Canonical Linux artifact from Validate run 32775157799 was captured from the final combined dev SHA 8a3a115. All seven material changes were visually inspected: two hidden-wall diagnostic scenes expose axes and nodes, two resize scenes add the approved measurements and area labels, and three wall drawing/junction scenes expose the approved diagnostics. The complete 110-scenario artifact is accepted without partial replacement.

Issue: #296
Issue: #300
User-Visible: no
Release: v1.67.0-rc.1
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/32775157799
2026-08-24 23:45:08 +03:00
Sergey Matyunin 8a3a115f42 test: accept #299 documentation screenshots
Canonical Linux capture from workflow run 32774826636 checked out exact branch SHA 5696e274fe. All ten frames were reviewed against the current accepted set: nine are byte-identical, while 06-device-editor differs by one antialiasing pixel and remains visually unchanged.

Issue: #299
User-Visible: no
2026-08-24 23:39:42 +03:00
Sergey Matyunin 5526447070 Merge issue #299 into dev
Owner-approved review exception: the external reviewer is unavailable. The exact branch SHA passed typecheck, 1287 unit tests, bundle parity, targeted browser smokes, six 24-step edit walks, late traces, mutation testing, performance comparison, and the canonical Linux documentation capture. The merge also removes one trailing blank line from the specification; product sources are unchanged from the validated branch.

Issue: #299
User-Visible: no
2026-08-24 23:39:25 +03:00
Sergey Matyunin 5696e274fe test: clear resolved wall geometry debts
Validate / docs (push) Failing after 23s
Validate / process-workflow-sync (push) Successful in 46s
Validate / provenance (push) Successful in 47s
Validate / process-gate (push) Failing after 45s
Validate / changes (push) Successful in 30s
Validate / hacs (push) Skipped
Validate / hassfest (push) Skipped
Validate / frontend (push) Skipped
Validate / reuse (push) Successful in 39s
Validate / smoke (1) (push) Skipped
Validate / smoke (2) (push) Skipped
Validate / smoke (3) (push) Skipped
Validate / smoke_done (push) Skipped
Validate / golden (push) Skipped
Validate / backend (push) Skipped
Validate / performance_smoke (push) Skipped
Issue: #299
User-Visible: no
2026-08-24 23:28:39 +03:00