mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
@@ -0,0 +1,137 @@
|
||||
# CODE-REVIEW-665-r2
|
||||
|
||||
Issue: [#665](https://github.com/Matysh/houseplan-card/issues/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 (в задаче).
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
<!-- material-anchors: сгенерировано конвейером (#414) -->
|
||||
|
||||
## Материал раунда
|
||||
|
||||
- Ветка: `issue/665-iso-label-metrics`, коммит `d06cca2c19a3` — ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет.
|
||||
- Дерево материала: `8cdf9bae3bd399886d6fbd8d6f3d255e21827107`
|
||||
```
|
||||
git log --all --format='%H %T' | grep 8cdf9bae3bd3
|
||||
```
|
||||
- Тело issue: `8da493f662bb94963a92e6ca40c224f16235947efbd137e809e313833e01cc97`
|
||||
- Вердикт конвейера: `green` · High 0
|
||||
Reference in New Issue
Block a user