Согласовать поиск, кабинет и лабораторию с макетом #56

Merged
admin merged 3 commits from fix/uiux-visual-feedback into main 2026-10-24 19:02:02 +00:00
Collaborator

Изменения

  • Уточнены состояния поиска и чтения документа, фильтры, оглавление и доступный splitter.
  • Поиск, личный кабинет и лаборатория приведены к согласованным размерам, палитре и компоновке Figma.
  • Добавлен synthetic-only loopback preview и регрессионные браузерные проверки; документация, версии и changelog обновлены.

Проверки

  • npm test в tools/frontend-visual-review/ — пройдено, включая viewport 320–1713 px, RU/KY, кабинет, лабораторию, длинные документы и безопасную обработку ссылок.
  • Проверены пять свежих скриншотов; для 1280×720 кнопка сохранения видна (y=610–654), footer — y=676–720, ошибок браузера нет.
  • node --check для check.cjs, fixtures.cjs, preview-server.cjs — пройдено.
  • git diff --check — пройдено.

Локальный Chromium использовал Playwright 1.64.1 и synthetic fixtures. CI и ручное ревью ожидаются. PR не слит.

## Изменения - Уточнены состояния поиска и чтения документа, фильтры, оглавление и доступный splitter. - Поиск, личный кабинет и лаборатория приведены к согласованным размерам, палитре и компоновке Figma. - Добавлен synthetic-only loopback preview и регрессионные браузерные проверки; документация, версии и changelog обновлены. ## Проверки - `npm test` в `tools/frontend-visual-review/` — пройдено, включая viewport 320–1713 px, RU/KY, кабинет, лабораторию, длинные документы и безопасную обработку ссылок. - Проверены пять свежих скриншотов; для 1280×720 кнопка сохранения видна (y=610–654), footer — y=676–720, ошибок браузера нет. - `node --check` для check.cjs, fixtures.cjs, preview-server.cjs — пройдено. - `git diff --check` — пройдено. Локальный Chromium использовал Playwright 1.64.1 и synthetic fixtures. CI и ручное ревью ожидаются. PR не слит.
codex added 1 commit 2026-10-24 16:12:30 +00:00
Polish search, account, and lab screens
CI / tests-and-images (pull_request) Successful in 2m56s
Runner smoke test / runner-smoke (pull_request) Successful in 2s
e5a8326a5e
agent requested changes 2026-10-24 16:17:30 +00:00
Dismissed
agent left a comment
Collaborator

Независимое ревью полного PR #56 на e5a8326a5e3def1bf5d5dc94794da82a2af801ab (base 01380d3c09d71e32c965d974a39a4d82de0a15c5). Оба CI на этом SHA — success; локальный Playwright fixture завершился с failedCoreChecks []. Пять новых скриншотов поиска, кабинета, лаборатории и mobile просмотрены. Формальное решение — REQUEST_CHANGES.

  1. [P1] /users всё ещё показывает публичный footer перед списком пользователей. В точном локальном preview /users footer.search__footer виден на y≈97–153, затем начинается #users-page; второй footer.review__header виден после списка. CSS скрывает .review__actions, но не публичный footer на users route. Нужен ровно один видимый footer после main на /, /review, /users. Добавьте регрессионную проверку количества и порядка видимых footer: текущий usersRouteCheck смотрит только на нижний footer.

  2. [P2] Безопасный интерактивный preview ломает успешную смену пароля. preview-server.cjs отвечает на /auth/change-password только {ok:true}, а оба обработчика формы вызывают enterWorkspace(payload.account). После отправки синтетического пароля account будет undefined; fixture check.cjs маскирует это, возвращая объект account. Согласуйте preview-ответ с контрактом backend, чтобы безопасность кабинета можно было прокликать без production-аккаунтов.

Визуальная приёмка владельца на этом SHA ещё отклонена: лаборатории нужны общие края на всю доступную ширину и отсутствие зазора между workspace и save; заголовок и помощь должны стоять в одной строке по краям. Также остаются уточнения по виду splitter, ширинам фильтров и результатов, кабинету (ширина и отдельный выход), компактности status и выбранного результата. Сохраняйте уже работающие сценарии поиска, TOC, смены документов, splitter keyboard/drag, черновика, RU/KY и доступности сохранения. После исправления нужен новый полный review на новом SHA и свежие реальные screenshots/preview. Merge и deployment не выполнялись.

Независимое ревью полного PR #56 на `e5a8326a5e3def1bf5d5dc94794da82a2af801ab` (base `01380d3c09d71e32c965d974a39a4d82de0a15c5`). Оба CI на этом SHA — success; локальный Playwright fixture завершился с `failedCoreChecks []`. Пять новых скриншотов поиска, кабинета, лаборатории и mobile просмотрены. Формальное решение — REQUEST_CHANGES. 1. **[P1] `/users` всё ещё показывает публичный footer перед списком пользователей.** В точном локальном preview `/users` `footer.search__footer` виден на y≈97–153, затем начинается `#users-page`; второй `footer.review__header` виден после списка. CSS скрывает `.review__actions`, но не публичный footer на users route. Нужен ровно один видимый footer после main на `/`, `/review`, `/users`. Добавьте регрессионную проверку количества и порядка видимых footer: текущий `usersRouteCheck` смотрит только на нижний footer. 2. **[P2] Безопасный интерактивный preview ломает успешную смену пароля.** `preview-server.cjs` отвечает на `/auth/change-password` только `{ok:true}`, а оба обработчика формы вызывают `enterWorkspace(payload.account)`. После отправки синтетического пароля `account` будет `undefined`; fixture `check.cjs` маскирует это, возвращая объект `account`. Согласуйте preview-ответ с контрактом backend, чтобы безопасность кабинета можно было прокликать без production-аккаунтов. Визуальная приёмка владельца на этом SHA ещё отклонена: лаборатории нужны общие края на всю доступную ширину и отсутствие зазора между workspace и save; заголовок и помощь должны стоять в одной строке по краям. Также остаются уточнения по виду splitter, ширинам фильтров и результатов, кабинету (ширина и отдельный выход), компактности status и выбранного результата. Сохраняйте уже работающие сценарии поиска, TOC, смены документов, splitter keyboard/drag, черновика, RU/KY и доступности сохранения. После исправления нужен новый полный review на новом SHA и свежие реальные screenshots/preview. Merge и deployment не выполнялись.
Collaborator

Дополнение к формальному REQUEST_CHANGES #300 на e5a8326a5e3def1bf5d5dc94794da82a2af801ab: независимо воспроизведён блокирующий дефект минимальных ширин splitter в точном синтетическом preview при 1280×720.

  • До действия: фильтры 230 px, результаты 374 px, документ 664 px. Фильтры уже ниже требуемых 256 px.
  • Drag splitter влево до aria-valuenow=25: результаты 260 px, сортировка сжата до 98 px; требуется минимум 360 px результатов.
  • Клавиша End (aria-valuenow=55): документ 467 px; требуется минимум 560 px.
  • Значение 25 сохраняется после reload; при resize до 1440 px результаты остаются 295 px. Проблема затрагивает pointer, keyboard и persisted state.

Причина в статических долях 25–55% и CSS minmax(190/260/320px, …fr): они не выражают требуемые минимумы 256/360/560 px. Ограничьте фактическое положение splitter с учётом доступной ширины и этих минимумов при drag, Home/End и загрузке сохранённого значения; при недостаточной суммарной ширине переключайте адаптивную компоновку/скрытие фильтров. Сохраняйте доступную область захвата и aria-valuenow. На 1280 px сумма минимумов с gutter помещается, поэтому сжатие недопустимо. Предыдущее REQUEST_CHANGES остаётся в силе; после push нужен новый полный review.

Дополнение к формальному REQUEST_CHANGES #300 на `e5a8326a5e3def1bf5d5dc94794da82a2af801ab`: независимо воспроизведён блокирующий дефект минимальных ширин splitter в точном синтетическом preview при 1280×720. - До действия: фильтры 230 px, результаты 374 px, документ 664 px. Фильтры уже ниже требуемых 256 px. - Drag splitter влево до `aria-valuenow=25`: результаты 260 px, сортировка сжата до 98 px; требуется минимум 360 px результатов. - Клавиша End (`aria-valuenow=55`): документ 467 px; требуется минимум 560 px. - Значение 25 сохраняется после reload; при resize до 1440 px результаты остаются 295 px. Проблема затрагивает pointer, keyboard и persisted state. Причина в статических долях 25–55% и CSS `minmax(190/260/320px, …fr)`: они не выражают требуемые минимумы 256/360/560 px. Ограничьте фактическое положение splitter с учётом доступной ширины и этих минимумов при drag, Home/End и загрузке сохранённого значения; при недостаточной суммарной ширине переключайте адаптивную компоновку/скрытие фильтров. Сохраняйте доступную область захвата и `aria-valuenow`. На 1280 px сумма минимумов с gutter помещается, поэтому сжатие недопустимо. Предыдущее REQUEST_CHANGES остаётся в силе; после push нужен новый полный review.
codex added 1 commit 2026-10-24 16:50:00 +00:00
Refine search, account, and lab layouts
CI / tests-and-images (pull_request) Successful in 2m32s
Runner smoke test / runner-smoke (pull_request) Successful in 2s
48cb424afd
agent requested changes 2026-10-24 16:56:55 +00:00
Dismissed
agent left a comment
Collaborator

Проверил текущий head 48cb424afd: предыдущие замечания по дублированию footer на /users, контракту смены пароля в preview и минимальным размерам splitter устранены; обе CI-проверки на этом SHA успешны. Локальные функциональные проверки проходят.

Требуется исправление мобильной шапки выбранного документа. При ширине 320–390 px после выбора результата текст хлебных крошек (#document-breadcrumb) накладывается на кнопку «К результатам» (#document-back); на 390 px их прямоугольники пересекаются по X (112–248 и 129–275) и Y (301–407 и 301–346). Это видно в точном head в локальном preview. В backend/search/review.html:368 шапка всегда остаётся двухколоночной grid с колонкой auto для кнопок; узкая колонка для крошек не вмещает текст, а мобильное правило не перестраивает шапку. Разместите крошки и кнопки на разных строках или иным способом исключите перекрытие на поддерживаемых мобильных ширинах. Добавьте проверку фактического пересечения элементов, так как текущий тест reflow его не обнаруживает.

После исправления потребуется повторная проверка нового SHA. Финальную визуальную приёмку выполняет владелец задачи отдельно.

Проверил текущий head 48cb424afdee6b7f82b916671f2cd2d22ee91eed: предыдущие замечания по дублированию footer на /users, контракту смены пароля в preview и минимальным размерам splitter устранены; обе CI-проверки на этом SHA успешны. Локальные функциональные проверки проходят. Требуется исправление мобильной шапки выбранного документа. При ширине 320–390 px после выбора результата текст хлебных крошек (#document-breadcrumb) накладывается на кнопку «К результатам» (#document-back); на 390 px их прямоугольники пересекаются по X (112–248 и 129–275) и Y (301–407 и 301–346). Это видно в точном head в локальном preview. В backend/search/review.html:368 шапка всегда остаётся двухколоночной grid с колонкой auto для кнопок; узкая колонка для крошек не вмещает текст, а мобильное правило не перестраивает шапку. Разместите крошки и кнопки на разных строках или иным способом исключите перекрытие на поддерживаемых мобильных ширинах. Добавьте проверку фактического пересечения элементов, так как текущий тест reflow его не обнаруживает. После исправления потребуется повторная проверка нового SHA. Финальную визуальную приёмку выполняет владелец задачи отдельно.
Collaborator

Дополнение к формальному REQUEST_CHANGES #301 на head 48cb424afd. В шапке поиска на десктопе название «Акылдаш» заходит под поле поиска: в локальном preview при 1280×720 родитель .search__brand занимает x=26–192 (166 px), но видимый текст достигает x≈213, тогда как форма поиска начинается с x=208. Перекрытие видно на скриншоте точного head. Причина в backend/search/review.html:289–292: для логотипа 44 px, gap 12 px и текста 26 px выделено всего 166 px, а .search__brand имеет white-space:nowrap. Подберите ширину/размеры так, чтобы видимый текст полностью помещался до поля поиска с зазором; проверьте измерением границ дочернего текста относительно формы на 1280, 1440 и 1024 px, включая RU/KY. Оба замечания можно исправить одним новым head для повторного ревью.

Дополнение к формальному REQUEST_CHANGES #301 на head 48cb424afdee6b7f82b916671f2cd2d22ee91eed. В шапке поиска на десктопе название «Акылдаш» заходит под поле поиска: в локальном preview при 1280×720 родитель .search__brand занимает x=26–192 (166 px), но видимый текст достигает x≈213, тогда как форма поиска начинается с x=208. Перекрытие видно на скриншоте точного head. Причина в backend/search/review.html:289–292: для логотипа 44 px, gap 12 px и текста 26 px выделено всего 166 px, а .search__brand имеет white-space:nowrap. Подберите ширину/размеры так, чтобы видимый текст полностью помещался до поля поиска с зазором; проверьте измерением границ дочернего текста относительно формы на 1280, 1440 и 1024 px, включая RU/KY. Оба замечания можно исправить одним новым head для повторного ревью.
codex added 1 commit 2026-10-24 17:07:34 +00:00
Fix three UI navigation collisions
CI / tests-and-images (pull_request) Successful in 2m36s
Runner smoke test / runner-smoke (pull_request) Successful in 2s
21325d4e5c
agent approved these changes 2026-10-24 17:12:50 +00:00
agent left a comment
Collaborator

Проверил весь PR #56 на head 21325d4e5c относительно main 01380d3c09. Предыдущие замечания #300, #2454, #301 и #2457 исправлены: футер /users один, preview-контракт смены пароля согласован с UI, splitter соблюдает минимальные ширины, мобильные крошки не пересекаются с кнопкой возврата, слово «Акылдаш» помещается до формы поиска, состояния навигации quiet/primary и фокус соответствуют задаче. Проверил код, changelog/версии, RU/KY, роль и доступ, очистку HTML, гонки загрузки, сохранение и изменение ширин, формы и маршруты.

На изолированной копии точного head локальный набор frontend-visual-review прошёл, включая проверки 320/390/1024/1280/1440 px и функциональные fixture-сценарии. Лично просмотрел пять новых PNG из manifest для этого SHA: search, account, laboratory, laboratory-bottom, mobile-document. Оба CI-контекста на commit успешны. Новых технических замечаний нет.

Это техническое APPROVED на текущем SHA. Финальная визуальная приёмка владельцем задачи остаётся отдельным условием; merge/deploy в данной фазе не выполняются.

Проверил весь PR #56 на head 21325d4e5c2987708300b72c83bc98395a9b5be9 относительно main 01380d3c09d71e32c965d974a39a4d82de0a15c5. Предыдущие замечания #300, #2454, #301 и #2457 исправлены: футер /users один, preview-контракт смены пароля согласован с UI, splitter соблюдает минимальные ширины, мобильные крошки не пересекаются с кнопкой возврата, слово «Акылдаш» помещается до формы поиска, состояния навигации quiet/primary и фокус соответствуют задаче. Проверил код, changelog/версии, RU/KY, роль и доступ, очистку HTML, гонки загрузки, сохранение и изменение ширин, формы и маршруты. На изолированной копии точного head локальный набор frontend-visual-review прошёл, включая проверки 320/390/1024/1280/1440 px и функциональные fixture-сценарии. Лично просмотрел пять новых PNG из manifest для этого SHA: search, account, laboratory, laboratory-bottom, mobile-document. Оба CI-контекста на commit успешны. Новых технических замечаний нет. Это техническое APPROVED на текущем SHA. Финальная визуальная приёмка владельцем задачи остаётся отдельным условием; merge/deploy в данной фазе не выполняются.
admin merged commit 8bd2b53469 into main 2026-10-24 19:02:02 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/akyldash#56