11 KiB
CODE-REVIEW-665-r2
Issue: #665 — «2.5D: показатели комнаты под названием «плавают» при зуме».
Этап: code-review, заход r2, лёгкий трек small, лимит циклов 2, потрачен 1.
Материал: ровно d06cca2c19a3b5a062b79b4073227e5682636c90, рабочая копия уже
на нём (git rev-parse HEAD совпадает). Fetch/checkout не выполнялись.
Скоуп
Дельта к материалу r1 (8ffbdf8a28f8, см. «Материал раунда» в
docs/reviews/CODE-REVIEW-665-r1.md):
git diff 8ffbdf8a..d06cca2c --stat
docs/reviews/CODE-REVIEW-665-r1.md | 216 +++++++++++++++++++++++++++++++++++++
1 file changed, 216 insertions(+)
Единственный новый коммит — d06cca2c (docs: review document for #665,
User-Visible: no) — публикация конвейером документа r1. Продуктовый код,
тесты, реестр мутаций, docs/ISOMETRIC.md, changelog не менялись ни на строку
с момента r1. Автор ответил на жёлтый вердикт r1 комментарием в issue, не
коммитом — это соответствует характеру находки: единственный Medium r1 был
не дефектом кода, а неточной записью о влиянии диффа на golden-матрицу, и её
устранение прямо ограничено записью в issue (сама находка так и
формулировала фикс: «Кода это не касается — правка чисто в разделе учёта
диффа»).
Работа по-прежнему закрывает J1/J5 (docs/SCOPE.md), скоуп и класс (A+B+C)
не изменились — оценка из r1 остаётся в силе, см. «Унаследовано из r1» ниже.
Как проверялось
Раз код не менялся, повторный прогон дешёвых/тяжёлых гейтов не даёт новой
информации — «код изменился» (условие §2.10 для обязательного повтора
дешёвых гейтов) здесь ложно. Дешёвые гейты уже подтверждены зелёным Validate
именно на этом SHA d06cca2c
(https://github.com/Matysh/houseplan-card/actions/runs/36243964626) — не
перегонял. Тяжёлые гейты (golden:verify, мутант, оба смока, отрицательная
проба) были исполнены на r1 против идентичного кода — код с тех пор не
менялся, дельта не задевает ни одного AC, поэтому не перегонял; см.
«Унаследовано из r1».
Единственное, что реально проверялось в этом раунде — закрытие находки r1:
сверил текст нового комментария автора в issue (2026-09-26T13:04:07Z,
«Правка по CODE-REVIEW-665-r1 (жёлтый) — учёт golden») построчно со
списком восьми сценариев, которые я сам получил в r1 прогоном
golden:verify HEAD vs origin/dev в отдельном worktree.
| Что проверял | Как | Результат |
|---|---|---|
| Материал ревью — ровно то же дерево, что у r1 + один docs-коммит | git diff 8ffbdf8a..d06cca2c --stat, git status --short |
подтверждено: только docs/reviews/CODE-REVIEW-665-r1.md, рабочая копия чистая |
| Список из 8 golden-сценариев в новом комментарии автора совпадает с найденным ревьюером в r1 | построчное сравнение таблицы в комментарии Matysh (13:04) с таблицей находки в CODE-REVIEW-665-r1.md |
совпадают все 8 id: isometric-geometry-view-dark/light, isometric-touch-kiosk-dark, isometric-large-warm-remount-dark, isometric-stage3-overlays-light/dark, isometric-stage3-forced-colors-dark, isometric-stage3-no-filter-dark |
| Эстафета на кандидат беты явно передана | чтение комментария | да: npm run golden:accept -- --reviewed --from=<Linux-артефакт>, вместе с 12 известными и кадрами #666 — названо прямо, тот, кто примет бету, не гадает |
| Трейлеры нового коммита | git show --stat d06cca2c |
Issue: #665, User-Visible: no — корректно для docs-only правки, changelog не требуется |
Находки
Нет. Единственная находка r1 (Medium в скоупе, учёт golden) закрыта записью в issue — см. таблицу ниже. Новых находок дельта не создаёт: она добавляет только опубликованный документ прошлого раунда, продуктового кода не касается.
Закрытие раунда r1
| Находка r1 | Чем закрыта | Где это видно |
|---|---|---|
| Medium (в скоупе) — хендофф автора занижал golden-влияние диффа: заявлено 0 задетых 2.5D-кадров с показателями, реально 8; эстафета на кандидат беты не передана | Комментарий автора в issue от 2026-09-26T13:04:07Z «Правка по CODE-REVIEW-665-r1 (жёлтый) — учёт golden»: (1) признаёт ошибку прямо и называет команду проверки (node -e "import('./demo/golden/matrix.mjs')..."), (2) приводит таблицу всех 8 сценариев — построчно совпадает с найденной ревьюером в r1, (3) явно передаёт эстафету: golden:accept -- --reviewed --from=<Linux-артефакт> вместе с 12 известными и кадрами #666 |
Issue #665, комментарий 2026-09-26T13:04:07Z; исходная находка — docs/reviews/CODE-REVIEW-665-r1.md, раздел «Находки → Medium» |
Low, снято без возврата — расположение строки в docs/ISOMETRIC.md |
Не требовало действия и в r1 (оставлено на усмотрение автора при следующей правке файла); дельта r2 файл не трогает | docs/reviews/CODE-REVIEW-665-r1.md, раздел Low |
Унаследовано из r1
Всё, кроме учёта golden-влияния, принято без повторной проверки — код с момента r1 не менялся (см. «Скоуп» выше), материал r1 доказан исполнением, а не заявлением:
- AC1 (отступ имя→показатели в 2.5D = Flat на обоих зумах) — доказан
запуском
demo/smoke_iso_room_label_metrics.mjsна материале8ffbdf8a. - AC2 (цель касания 44×44 px) — доказан положительно и отрицательно
(ручной снятый
::beforeкраситfloorIs44/floorOwnsTheTarget— проба ревьюера, не автора). - AC3 (мутант
iso-room-label-44-box-centres-name) — реально пойман запускомmutation-gate.mjsбез--check. - C3 (Flat/редакторы/
houseplan-space-card/isoRaisedOverlayHalfSizeне задеты) — подтверждено чтением диффа (ограниченplan.styles.ts) и прогономsmoke_isometric_contract. - Причина бага и приём фикса (перенос пола 44×44 в
::before, копия.oplock::before,z-indexлокальный, не мировой) — проверено построчно по коду. - Трейлеры
c93b3a90/8ffbdf8a—Issue:/User-Visible:корректны,yesсопровождён правкой обоих changelog в том же коммите. - «Одно число — один источник» — литерал
44pxв новом::beforeповторяет существующую конвенцию (.oplock::before,.dev), не создаёт второй источник истины. no-new-private-writes— второй коммит8ffbdf8aсуществует именно для этого, проверено, что смок больше не пишетcard._view.- Golden-влияние диффа (сам факт: 8 новых
different, все — ожидаемый побочный эффект правильной работы фикса, не регрессия) — доказано двойным прогономgolden:verify(HEAD иorigin/devв отдельном worktree) в r1; в r2 проверялась только точность записи об этом факте, не сам факт.
Документ и SHA источника: docs/reviews/CODE-REVIEW-665-r1.md,
материал 8ffbdf8a28f89f956fe6a0e550aec7b1d42efbf5 (база 72d49040).
Чего не проверял
- Дешёвые гейты (
tsc --noEmit,npm test,npm run build,bundle-policy --verify,check-docs) — не перегонял: код не менялся с r1, а на точном SHA этого раунда (d06cca2c) Validate уже зелёный. golden:verify, оба смока, мутант, отрицательная проба на AC2 — не перегонял повторно: делал это в r1 против идентичного кода, дельта r2 их доказательств не задевает.pytest tests_backend,npm run invariants, perf — как и в r1: диф не трогает Python/геометрию модели, перф не в AC.- Полную golden-матрицу/
golden:accept— не входит в код-ревью; беты кандидата это касается, не этой задачи.
Вердикт
Единственная блокирующая находка r1 закрыта записью в issue, новых находок нет. High: 0, Medium: 0 (в задаче).
Материал раунда
- Ветка:
issue/665-iso-label-metrics, коммитd06cca2c19a3— ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет. - Дерево материала:
8cdf9bae3bd399886d6fbd8d6f3d255e21827107git log --all --format='%H %T' | grep 8cdf9bae3bd3 - Тело issue:
8da493f662bb94963a92e6ca40c224f16235947efbd137e809e313833e01cc97 - Вердикт конвейера:
green· High 0