13 KiB
CODE-REVIEW-628-r2
Issue: #628 · Материал раунда: a32744255f10b6d5dfa590ab24cb94b4e7d020de (HEAD,
рабочая копия на нём) · диапазон origin/dev..HEAD (4 коммита), дифф
origin/dev...HEAD.
Скоуп
Инфраструктурная задача без ТЗ (трек «infrastructure-only», AGENTS.md):
разовый git gc --prune=now клона владельца на Windows-машине, замер
до/после, фиксация решения в docs/DEVELOPMENT.md. Скоуп и AC не менялись
с r1 (см. docs/reviews/CODE-REVIEW-628-r1.md).
Диапазон origin/dev..HEAD — четыре коммита:
774b7c7e docs: record repository GC baseline
f86bc34d docs: review document for #628 (пайплайн, r1)
054a7139 docs: preserve workstation section hierarchy (правка автора по r1)
a3274425 docs(reviews): индекс после сдвига каталога (#628) (пайплайн)
774b7c7e содержит тот же текст, что рецензировался в r1 под именем
66b2b576 — этот SHA осиротел ребейзом, что документ r1 сам предсказал
(«ребейз его осиротит, и это нормально»); материал ищется по дереву/блобу
(REVIEWER.md, «Повторный раунд»), и 774b7c7e — тот же diff +27 строк по
docs/DEVELOPMENT.md, что и 66b2b576 в r1 (проверено построчным git diff — идентичен процитированному в r1 тексту). f86bc34d и a3274425 —
служебные коммиты конвейера (публикация документа r1, пересчёт индекса);
их дифф не относится к продукту задачи. Единственный содержательный коммит
автора в этом раунде — 054a7139.
Трейлеры на 054a7139 и a3274425: Issue: #628, User-Visible: no —
верно, оба коммита не меняют видимое пользователю поведение (внутренняя
docs/DEVELOPMENT.md и служебный docs/reviews/INDEX.md); правка
CHANGELOG не требуется и не сделана. Дифф не касается src/**,
custom_components/**/*.py, манифестов — задача остаётся вне класса A.
Закрытие раунда r1
| Находка r1 | Чем закрыта | Где это видно |
|---|---|---|
Medium: новый раздел ## Local repository maintenance (#628) разрывал секцию ## Local Windows workstation и её подсекцию ### ⚠️ File-sync pitfalls (critical), меняя владельца подсекции по дереву заголовков |
Коммит 054a7139 «docs: preserve workstation section hierarchy» переносит блок ## Local repository maintenance (#628) после ### ⚠️ File-sync pitfalls (critical) и перед ## Tests, оставляя File-sync pitfalls подсекцией Local Windows workstation |
git diff 774b7c7e 054a7139 -- docs/DEVELOPMENT.md — чистое перемещение блока (12 строк вверх/вниз, содержание не тронуто); grep -n '^#' docs/DEVELOPMENT.md на HEAD: 93 ## Local Windows workstation → 168 ### ⚠️ File-sync pitfalls (critical) → 177 ## Local repository maintenance (#628) → 204 ## Tests — иерархия и порядок ровно те, что требовала находка |
Унаследовано из r1 (не перепроверялось заново)
- Арифметика четырёх чисел раздела
## Local repository maintenance (#628)(1084.39 → 467.63 MiB, разница 616.76, порог 487.63) — перепроверена вручную в r1, текст блока в этом раунде не менялся (подтверждено диффом054a7139: перемещение без правки содержимого) — доказательство r1 остаётся в силе. - AC1 (решение владельца зафиксировано текстом, совпадающим с выбранным
«вариант 1» и умолчаниями-отказами по LFS/
dist/**/истории) — та же логика и тот же неизменный текст, разобрано в r1. - Единственность источника чисел (
size-pack/count-objects/git gcвстречаются вdocs/**только в этом разделе) — проверено в r1 по неизменному тексту; дополнительно перепроверено в этом раунде (см. ниже) на предмет того, что перемещение блока не создало второго вхождения. - Трейлеры коммита
774b7c7e(Issue: #628,User-Visible: no) — те же, что были на предыдущем SHA этого коммита, разобраны в r1. - Дешёвые гейты (
typecheck/test/build) не нужны диффу без кода — установлено в r1 и остаётся верным:054a7139иa3274425тоже не трогают код.
Как проверялось в этом раунде
- Прочитаны новые комментарии issue #628 с r1: ответ владельца — не
требовался (Medium в скоупе фиксится автором без эскалации); отчёт
автора «Исправлен Medium из r1:
File-sync pitfallsснова является подсекциейLocal Windows workstation… Новый SHA:78cdc4e5» — этот локальный SHA не встречается в текущей истории, что ожидаемо: пуш прошёл через ребейз пайплайна и лёг как054a7139(то же правило «SHA не резолвится — не находка», примерено уже ко всей цепочке этого раунда). git log --oneline origin/dev..HEADиgit diff origin/dev...HEAD --stat— подтверждён полный список изменённых файлов:docs/DEVELOPMENT.md(+27/-0 относительноdev),docs/reviews/CODE-REVIEW-628-r1.md(новый, публикация r1),docs/reviews/INDEX.md(+2/-1, пересчёт индекса).git diff origin/dev...HEAD -- docs/DEVELOPMENT.mdпрочитан целиком: единственный блок изменений — вставка раздела## Local repository maintenance (#628)в 27 строк ровно между### File-sync pitfallsи## Tests; никакого разрыва существующих секций, содержание раздела не изменилось.git diff 774b7c7e 054a7139 -- docs/DEVELOPMENT.md— прочитан отдельно, чтобы убедиться, что правка автора — чистое перемещение блока (12 строк вверх, 9 строк вниз в терминах unified diff), а не переписывание текста; подтверждено: строки внутри обоих блоков побайтово совпадают до и после.grep -n '^#' docs/DEVELOPMENT.mdна HEAD — построено полное дерево заголовков файла, порядок секций в диапазоне строк 93–236 прочитан целиком (Readoffset 93, limit 115) и сверен со смыслом:Local Windows workstation→ её подсекцияFile-sync pitfalls→ новаяLocal repository maintenance (#628)→Tests. Логическая принадлежность подсекции восстановлена.grep -rn "size-pack|count-objects|git gc" docs/— повторно (после перемещения блока) единственное вхождение всё ещё вdocs/DEVELOPMENT.md, второго источника с конфликтующим числом не появилось.git diff origin/dev...HEAD --check— 0 находок (нет висячих пробелов/конфликт-маркеров).node scripts/check-docs.mjs --screenshots=warn— прогнал сам:Documentation checks passed (7 files, 12 external links), то же неотносящееся к диффу предупреждение про устаревший screenshot fingerprint, что и в r1 и в отчёте автора.- Проверены трейлеры
054a7139иa3274425(git show -s --format) —Issue: #628,User-Visible: noна обоих. - Green Validate на материале раунда (
a3274425) подтверждён владельцем промпта: https://github.com/Matysh/houseplan-card/actions/runs/36122795014 — покрываетtypecheck/test/build+сверку бандла, их повторно не гонял.
Находки
Нет. Единственная Medium-находка r1 закрыта чистым перемещением блока без побочных изменений; новых находок при разборе дельты не появилось.
Что проверено и корректно
- AC1 и AC2 — без изменений с r1, остаются доказанными (см. «Унаследовано из r1»).
- Structural fix Medium-находки r1 — подтверждён построением дерева заголовков и побайтовым сравнением содержимого блоков до/после перемещения.
- Трейлеры всех содержательных коммитов раунда корректны.
- Дифф раунда не расширяет скоуп: единственный контентный файл —
docs/DEVELOPMENT.md, правка ограничена перестановкой ранее рецензированного блока. - Единственность источника чисел сохранена после перемещения.
Чего не проверял и почему
npx tsc --noEmit,npm test,npm run build— не перегонял: дифф раунда не содержит кода (толькоdocs/**), и зелёный Validate на точном SHA материала (a3274425, run 36122795014) уже покрывает эти гейты.- Смоки,
golden:verify,pytest tests_backend, инварианты модели, performance-профили — не прогонял и не применимы: дифф не вsrc/**,demo/**, Python или геометрии, ни один не назван в AC1/AC2.smoke-select.mjsне запускал по той же причине. - Сам замер AC2 (2026-10-25 или позже) — вне предмета этого раунда, как и в r1: документ готовит критерий, будущий замер — отдельное действие.
- Первичный факт измерений владельца (
git gcна его Windows-машине) — не перепроверял повторно: числа не менялись с r1, где уже была пересчитана их внутренняя арифметика; повторный пересчёт дельта не требует, так как текст блока не редактировался, только перемещён.
Вердикт
Зелёный: единственная Medium-находка r1 закрыта точечным перемещением блока без изменения содержания и без побочных эффектов; новых находок нет. High: 0, Medium: 0.
Материал раунда
- Ветка:
issue/628-repository-gc, коммитa32744255f10— ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет. - Дерево материала:
2b98213a6dc9ec3a9cb60908bcb00eb22dfdd0fdgit log --all --format='%H %T' | grep 2b98213a6dc9 - Тело issue:
9b54257641bbb6e8f0276842401740d958c3593af319626ccc1c8a88e0e6c671 - Вердикт конвейера:
green· High 0