Issue: #585 User-Visible: no
14 KiB
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 и проверкой, что фикс не потянул
за собой ничего нового.
Как проверялось
- Прочитан вердикт r1 и полный документ
docs/reviews/CODE-REVIEW-585-r1.md(жёлтый, High 0, Medium 1). - Прочитаны комментарии issue #585 целиком (5 штук): аналитика → зелёный spec-review r1 → «Взял» → жёлтый вердикт code-review r1 → комментарий автора «Исправление замечания code review r1» с хендоффом.
git diff 8769905b..d549bac6 --stat— подтверждён состав дельты (толькоdocs/STATUS.md+ публикация ревью-документа r1).git show d549bac6— построчно сверен новый текстdocs/STATUS.mdсо старым: фраза «Linux golden/performance evidence is still required before merge» заменена на «the reviewed Linux golden (86dffbc7, run35470468142) and exact-SHA Full Performance (35477092908) evidence are green».- Сверены run id и коммиты, названные в новой строке STATUS и в комментарии
автора, с теми, что r1 уже независимо проверял сам (не со слов автора):
r1 самостоятельно нашёл и прочитал зелёный прогон
performance.ymlrun35477092908на точном SHA8769905b(раздел «Как проверялось», п.7 r1) и зелёную приёмку golden86dffbc7/35470468142(раздел «Проверено и корректно», AC2 r1). Числа в фиксе совпадают с уже проверенными r1 — это не новая непроверенная претензия автора, а формулировка уже установленного факта. - Проверено, что комментарий-хендофф в issue (2026-09-20T00:13:47Z) содержит
все четыре ссылки, требуемые ТЗ §12.5/AC7: Linux golden capture run
35470468142+ acceptance-коммит86dffbc7, Full Performance run35477092908на точном SHA8769905b, Full Validate run35477091271(attempt 2) на том же SHA, и коммит документационного фиксаd549bac6. - Проверены трейлеры
d549bac6:Issue: #585,User-Visible: no— верно, правка чисто документационная, скрытый экспериментальный вид пользователю не виден. - Перепроверено по коду, что дельта не касается
src/**,test/**,demo/performance/**,demo/golden/**,dist/**,custom_components/**:git diff 8769905b..d549bac6 -- src test demo dist custom_components— пусто. Значит AC1–AC7 не могли регрессировать этой правкой, и повторно доказывать их не требуется по §2.10 п.4. - Сам 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, run35470468142), синтетический 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.ymlrun35477092908на SHA8769905b, оба полных изометрических профиля прошли с допусками 150/60/75; - AC7 (обычные гейты) — Validate зелёный на
8769905b(run35477091271),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(ссылка в вводных к задаче на ревью, run35478345813), включает все три команды.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— ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет. - Дерево материала:
c2b7b73ecd39a0cf640d1f976d3c2ccb932bd8cbgit log --all --format='%H %T' | grep c2b7b73ecd39 - Тело issue:
7e85ec65b07414bb734b5f19ffb10510ee60b3af4fdb52ed429df29d2593ebc8 - Вердикт конвейера:
green· High 0