Files
houseplan-card/docs/reviews/CODE-REVIEW-585-r2.md
T
claude[bot] 81e0328489
Проверка (CI) / Классификация изменённых файлов (push) Successful in 35s
Проверка (CI) / HACS: валидация репозитория (push) Skipped
Проверка (CI) / Hassfest: манифест интеграции (push) Skipped
Проверка (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) Skipped
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Failing after 50s
Проверка (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) Skipped
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Skipped
Проверка (CI) / Доказательство выполненных проверок (push) Failing after 1s
docs: review document for #585
Issue: #585
User-Visible: no
2026-09-20 00:24:33 +00:00

14 KiB
Raw Blame History

CODE-REVIEW-585-r2

Материал: d549bac63d86bc44b8395ef01ca69b025b823452 (рабочая копия, HEAD detached), диапазон origin/dev..HEAD. Заход r2, блокирующих циклов израсходовано 0 из 4.

Скоуп раунда

r1 (заход r1, документ docs/reviews/CODE-REVIEW-585-r1.md, материал 8769905b) вынес жёлтый вердикт с единственной находкой — Medium в скоупе: docs/STATUS.md после получения зелёного golden/performance evidence на точном SHA продолжал утверждать «Linux golden/performance evidence is still required before merge», а сам хендофф со ссылками на прогоны (ТЗ §12.5) не был оставлен в issue.

Дельта r1→r2 — ровно два коммита:

git log --oneline 8769905b..d549bac6
d549bac6 docs: зафиксировать evidence реализации #585
4bd279b0 docs: review document for #585

4bd279b0 — публикация самого документа CODE-REVIEW-585-r1.md в репозиторий (механический шаг конвейера, не правка автора). Единственное содержательное изменение — d549bac6: одна строка docs/STATUS.md. Продуктовый код (src/iso-overlays.ts, src/iso-scene-render.ts), тесты, golden-эталоны, performance-бюджеты и сгенерированные dist/custom_components/.../frontend между r1 и r2 не менялись — git diff 8769905b..d549bac6 -- src test demo dist custom_components пуст.

Дельта локальна (чистая документация, ноль строк продукта/тестов/гейтов) — основания для полного разбора (ребейз на ушедший dev, смена контракта, новая подсистема, объём дельты сопоставимый с задачей) отсутствуют. Разбор этого раунда ограничен закрытием находки r1 и проверкой, что фикс не потянул за собой ничего нового.

Как проверялось

  1. Прочитан вердикт r1 и полный документ docs/reviews/CODE-REVIEW-585-r1.md (жёлтый, High 0, Medium 1).
  2. Прочитаны комментарии issue #585 целиком (5 штук): аналитика → зелёный spec-review r1 → «Взял» → жёлтый вердикт code-review r1 → комментарий автора «Исправление замечания code review r1» с хендоффом.
  3. git diff 8769905b..d549bac6 --stat — подтверждён состав дельты (только docs/STATUS.md + публикация ревью-документа r1).
  4. git show d549bac6 — построчно сверен новый текст docs/STATUS.md со старым: фраза «Linux golden/performance evidence is still required before merge» заменена на «the reviewed Linux golden (86dffbc7, run 35470468142) and exact-SHA Full Performance (35477092908) evidence are green».
  5. Сверены run id и коммиты, названные в новой строке STATUS и в комментарии автора, с теми, что r1 уже независимо проверял сам (не со слов автора): r1 самостоятельно нашёл и прочитал зелёный прогон performance.yml run 35477092908 на точном SHA 8769905b (раздел «Как проверялось», п.7 r1) и зелёную приёмку golden 86dffbc7/35470468142 (раздел «Проверено и корректно», AC2 r1). Числа в фиксе совпадают с уже проверенными r1 — это не новая непроверенная претензия автора, а формулировка уже установленного факта.
  6. Проверено, что комментарий-хендофф в issue (2026-09-20T00:13:47Z) содержит все четыре ссылки, требуемые ТЗ §12.5/AC7: Linux golden capture run 35470468142 + acceptance-коммит 86dffbc7, Full Performance run 35477092908 на точном SHA 8769905b, Full Validate run 35477091271 (attempt 2) на том же SHA, и коммит документационного фикса d549bac6.
  7. Проверены трейлеры d549bac6: Issue: #585, User-Visible: no — верно, правка чисто документационная, скрытый экспериментальный вид пользователю не виден.
  8. Перепроверено по коду, что дельта не касается src/**, test/**, demo/performance/**, demo/golden/**, dist/**, custom_components/**: git diff 8769905b..d549bac6 -- src test demo dist custom_components — пусто. Значит AC1–AC7 не могли регрессировать этой правкой, и повторно доказывать их не требуется по §2.10 п.4.
  9. Сам SHA материала (d549bac6) сверен командой git rev-parse HEAD непосредственно перед выводом (см. §2.7 требование сверки по факту) — совпадает с указанным в задаче на ревью.

Закрытие раунда r1

Находка r1 Чем закрыта Где это видно
Medium: docs/STATUS.md утверждает «evidence is still required», хотя оно уже зелёное Строка снапшота переписана: указаны конкретные reviewed golden (86dffbc7, run 35470468142) и exact-SHA Full Performance (35477092908) как уже зелёные git show d549bac6 -- docs/STATUS.md — единственная изменённая строка таблицы Current local cycle
Medium: хендофф со ссылками на run id не оставлен в issue (ТЗ §12.5) Комментарий автора 2026-09-20T00:13:47Z со всеми четырьмя ссылками (golden run+commit, perf run, Validate run, doc-фикс коммит) Issue #585, комментарий «Исправление замечания code review r1»

Обе части единственной Medium-находки закрыты одним атомарным коммитом (d549bac6) плюс синхронным комментарием — ровно то, что r1 предписал («Что нужно поправить», пп. 1–2).

Унаследовано из r1

Без повторной проверки в этом раунде приняты все выводы docs/reviews/CODE-REVIEW-585-r1.md (материал 8769905b4e0e872ef284570452924965a6b25c9a), так как дельта r1→r2 не касается ни одного файла, от которого зависят их доказательства:

  • AC1 (узкая щель, unit) — test/iso-overlays.test.mjs:139, red-witness подтверждён коммитом 6f226a5b;
  • AC2 (проблемная сцена, golden+unit) — golden isometric-large-warm-remount-dark принят (86dffbc7, run 35470468142), синтетический unit-свидетель той же топологии;
  • AC3 (сохранение контрактов: порядок/перестановка, макс. радиус, room/hole/wall safety, исключение room labels, fit-mode skip, degraded fallback) — весь набор тестов в test/iso-overlays.test.mjs;
  • AC4 (ограниченность поиска: O(периметра), не O(площади)) — доказано тестом на разреженность кандидатов и чтением addBoundaryCircle/localRefinementOffsets/resolveIsoOverlayCollisions;
  • AC5 (визуальная локальность) — построчный diff baselines-index.json, ровно один изменившийся хэш сцены;
  • AC6 (performance, Linux CI, точный SHA) — независимо найденный и прочитанный зелёный прогон performance.yml run 35477092908 на SHA 8769905b, оба полных изометрических профиля прошли с допусками 150/60/75;
  • AC7 (обычные гейты) — Validate зелёный на 8769905b (run 35477091271), tsc/test/build не перегонялись повторно по правилу сужения гейтов; check-docs входит в тот же зелёный Validate;
  • скоуп задачи — диапазон изменений origin/dev..8769905b строго соответствует заявленному в ТЗ (src/iso-overlays.ts, src/iso-scene-render.ts, тесты, один golden, два performance-budget файла, каноническая документация, сгенерированные артефакты); i18n/конфиг/ changelog не тронуты, User-Visible: no верно для скрытого вида.

Единственный пункт AC8, не унаследованный автоматически, — состояние docs/STATUS.md; он перепроверен заново в этом раунде (см. «Как проверялось», п.4–6) и теперь закрыт.

Проверено и корректно (этот раунд)

  • AC8 (документация, теперь полностью): docs/ISOMETRIC.md и docs/ARCHITECTURE.md уже были верны на момент r1 и не менялись в дельте. docs/STATUS.md в r2 корректно описывает снятие временного performance-исключения как свершившийся факт с именованными доказательствами — соответствует и AC8, и ТЗ §12.5.
  • Хендофф в issue содержит все ссылки, требуемые ТЗ §12.5/AC7 (см. п.6 выше).
  • Дельта не расширяет скоуп: изменена ровно одна строка docs/STATUS.md плюс публикация ревью-документа r1 — оба класса C (документация), issue #585 корректно указан в трейлере, User-Visible: no верно.

Чего не проверял и почему

  • npx tsc --noEmit, npm test, npm run build — не перегонял. Дельта r1→r2 не касается src/**/test/**; Validate зелёный на точном материале d549bac6 (ссылка в вводных к задаче на ревью, run 35478345813), включает все три команды.
  • npm run golden:verify, performance-профили, browser-смоки, инварианты геометрии, pytest tests_backend — не перегонял: ни один файл, к которому они применимы (src/**, demo/performance/**, demo/golden/**, custom_components/**/*.py), в дельте r1→r2 не изменился, а на всём материале задачи (по r1) они уже пройдены и не могли регрессировать нулевой правкой в продукте.
  • node scripts/check-docs.mjs — не перегонял отдельно: дельта не трогает src/** (только docs/**), правило «любая правка фронтенда обнуляет отпечаток» здесь неприменимо; отпечаток уже актуален и подтверждён зелёным Validate на 8769905b, а с тех пор src/** не менялся.
  • Правильность самих run id/URL по сети (переход по ссылкам GitHub Actions) — не выполнял отдельный сетевой запрос в этом раунде: те же run id (35477092908, 86dffbc7/35470468142, 35477091271) уже были самостоятельно найдены и прочитаны ревьюером r1 через gh run list/логи (не со слов автора) на предыдущем материале; в r2 автор лишь процитировал их в документации и хендоффе, не изменив.

Вердикт

Зелёный. High: 0, Medium: 0. Единственная находка r1 (Medium, в скоупе) закрыта одним документационным коммитом (d549bac6) плюс синхронным хендофф- комментарием в issue со всеми требуемыми ссылками. Продуктовый код, тесты, golden и performance-бюджеты между r1 и r2 не менялись — все выводы r1 по AC1–AC7 наследуются без повторной проверки (см. «Унаследовано из r1»); AC8 перепроверен заново и теперь полностью выполнен.


Материал раунда

  • Ветка: issue/585-iso-overlay-boundary-search, коммит d549bac63d86 — ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет.
  • Дерево материала: c2b7b73ecd39a0cf640d1f976d3c2ccb932bd8cb
    git log --all --format='%H %T' | grep c2b7b73ecd39
    
  • Тело issue: 7e85ec65b07414bb734b5f19ffb10510ee60b3af4fdb52ed429df29d2593ebc8
  • Вердикт конвейера: green · High 0