Исправления интерфейса Түндүк: поиск, лаборатория и кабинеты #54

Merged
admin merged 4 commits from feature/uiux-tunduk-corrections into main 2026-10-23 19:44:50 +00:00
Collaborator

Реализованы UI/UX исправления поиска, лаборатории и служебных экранов по пунктам UI-01—UI-33. Добавлены отдельный защищённый маршрут /users, безопасная очистка ссылок документа, адаптивные состояния и диалоги; обновлены план, DESIGN.md и CHANGELOG.md.

Проверки: backend 59 тестов (1 skipped), Telegram 6, backup 16, deploy 48, host guard, frontend JS syntax и Playwright visual review (320, 390, 1024, 1280, 1440 CSS px).

Ограничения: production destructive/auth сценарии, отправка реальной оценки, физический touch, полный ручной KY linguistic review и 200–400% zoom не выполнялись. PR не следует автоматически сливать.

Реализованы UI/UX исправления поиска, лаборатории и служебных экранов по пунктам UI-01—UI-33. Добавлены отдельный защищённый маршрут /users, безопасная очистка ссылок документа, адаптивные состояния и диалоги; обновлены план, DESIGN.md и CHANGELOG.md. Проверки: backend 59 тестов (1 skipped), Telegram 6, backup 16, deploy 48, host guard, frontend JS syntax и Playwright visual review (320, 390, 1024, 1280, 1440 CSS px). Ограничения: production destructive/auth сценарии, отправка реальной оценки, физический touch, полный ручной KY linguistic review и 200–400% zoom не выполнялись. PR не следует автоматически сливать.
codex added 2 commits 2026-10-23 13:49:17 +00:00
chore: normalize target screenshot permissions
CI / tests-and-images (pull_request) Successful in 2m21s
Runner smoke test / runner-smoke (pull_request) Successful in 2s
1d5eda3d89
agent requested changes 2026-10-23 14:01:33 +00:00
Dismissed
agent left a comment
Collaborator

Ревью полного diff base 25c62d3fff → head 1d5eda3d89. CI tests-and-images и runner-smoke: success. Локальный изолированный fixture-прогон выполнен без production-сети.

  1. [P1, UI-15] backend/search/review.html:588–617: санитаризация проверяет href и src, но оставляет img srcset и a ping. В fixture sanitizeDocumentHtml() сохранил srcset="https://evil.invalid/pixel" и ping="https://evil.invalid/ping" у разрешённой официальной ссылки. Эти атрибуты могут инициировать внешние запросы вопреки запрету небезопасных ссылок из юридического HTML. Минимальное исправление: удалить/валидировать все URL-атрибуты, способные загружать ресурс или отправлять ping, сохраняя текст документа; добавить один целевой fixture-кейс.

  2. [P1, лаборатория] backend/search/review.html:1177–1183: при выборе другого результата openDocument() не очищает прежние document-body/document-meta; при ошибке запроса меняется только status. Fixture: документ 1 загружен, документ 2 возвращает 503 — выбран документ 2, но на экране остаются текст и официальная ссылка документа 1. Это позволяет оценить новый результат по чужому тексту. Минимальное исправление: при начале загрузки/ошибке убрать или явно отделить прежний текст и ссылку, затем проверить смену результата с 503.

  3. [P1, UI-08/10, reflow] backend/search/review.html:86,245,434,471–480: на 640 CSS px /review и /users имеют scrollWidth=763 из-за review__nav-account; на / кнопка кабинета выходит до x=662 и обрезается. Это реальный промежуточный размер, возможный при zoom: основные действия недоступны без горизонтального смещения. Минимальное исправление: раньше перестроить/сократить навигацию и кнопку кабинета, проверить 640 CSS px вместе с 320/390/1024/1280/1440. Тест viewport не заменяет проверки настоящего zoom; 200–400% пока не объявлять пройденными.

Для финальной приёмки остаётся безопасно проверить изменённые формы аккаунта/пользователей и сохранение оценки на fixture либо тестовом окружении, без действий над реальными учётками. Это запрос на целевую проверку существующего сценария, без расширения архитектуры или CI. Merge/deploy не выполнялись.

Ревью полного diff base 25c62d3fffaccf4d01b0c31d58a8a1ac27551526 → head 1d5eda3d8943f2d5dc17354a72ba347bd8b23d80. CI tests-and-images и runner-smoke: success. Локальный изолированный fixture-прогон выполнен без production-сети. 1. [P1, UI-15] `backend/search/review.html:588–617`: санитаризация проверяет `href` и `src`, но оставляет `img srcset` и `a ping`. В fixture `sanitizeDocumentHtml()` сохранил `srcset="https://evil.invalid/pixel"` и `ping="https://evil.invalid/ping"` у разрешённой официальной ссылки. Эти атрибуты могут инициировать внешние запросы вопреки запрету небезопасных ссылок из юридического HTML. Минимальное исправление: удалить/валидировать все URL-атрибуты, способные загружать ресурс или отправлять ping, сохраняя текст документа; добавить один целевой fixture-кейс. 2. [P1, лаборатория] `backend/search/review.html:1177–1183`: при выборе другого результата `openDocument()` не очищает прежние `document-body`/`document-meta`; при ошибке запроса меняется только status. Fixture: документ 1 загружен, документ 2 возвращает 503 — выбран документ 2, но на экране остаются текст и официальная ссылка документа 1. Это позволяет оценить новый результат по чужому тексту. Минимальное исправление: при начале загрузки/ошибке убрать или явно отделить прежний текст и ссылку, затем проверить смену результата с 503. 3. [P1, UI-08/10, reflow] `backend/search/review.html:86,245,434,471–480`: на 640 CSS px `/review` и `/users` имеют `scrollWidth=763` из-за `review__nav-account`; на `/` кнопка кабинета выходит до x=662 и обрезается. Это реальный промежуточный размер, возможный при zoom: основные действия недоступны без горизонтального смещения. Минимальное исправление: раньше перестроить/сократить навигацию и кнопку кабинета, проверить 640 CSS px вместе с 320/390/1024/1280/1440. Тест viewport не заменяет проверки настоящего zoom; 200–400% пока не объявлять пройденными. Для финальной приёмки остаётся безопасно проверить изменённые формы аккаунта/пользователей и сохранение оценки на fixture либо тестовом окружении, без действий над реальными учётками. Это запрос на целевую проверку существующего сценария, без расширения архитектуры или CI. Merge/deploy не выполнялись.
codex added 1 commit 2026-10-23 14:17:13 +00:00
fix: address UI review findings
CI / tests-and-images (pull_request) Successful in 2m19s
Runner smoke test / runner-smoke (pull_request) Successful in 1s
224646e9d7
agent requested changes 2026-10-23 14:23:59 +00:00
Dismissed
agent left a comment
Collaborator

Повторно проверен полный PR diff base 25c62d3fff → head 224646e9d7. Прежние три замечания review #297 исправлены и независимо воспроизведены как проходящие: srcset/ping удаляются, при ошибке B прежний документ A очищается, на 640 CSS px основные действия доступны. Оба CI-check — success; расширенный локальный fixture-прогон — success, без production-сети.

[P1, UI-10] backend/search/review.html:470–480: трёхколоночная сетка включается сразу после 1100 px, но её минимумы составляют 256 + 360 + 560 = 1176 px. Независимый fixture-прогон показал для / scrollWidth=1176 при viewport 1101 и 1175 CSS px; панель документа выходит за правый край. При 1176 px переполнение исчезает. Это нарушает критерий плана «не сжимать/не обрезать три колонки при нехватке места» и делает часть юридического текста/управления недоступной на промежуточной ширине. Минимальное исправление: оставить двухпанельный режим до ширины, на которой действительно помещаются минимумы, затем проверить 1100/1101/1175/1176 и целевые 1024/1280. Не требуется новая архитектура или широкий тестовый контур.

Реальный browser zoom 200–400% и экспертная лингвистическая проверка всех KY строк не объявляются пройденными; результаты CSS viewport/reflow их не заменяют. Формы аккаунтов тестировались только с перехваченными fixture-запросами; реальные пользователи не затрагивались. Merge/deploy не выполнялись.

Повторно проверен полный PR diff base 25c62d3fffaccf4d01b0c31d58a8a1ac27551526 → head 224646e9d79d2f7547af05708e45bd723a946609. Прежние три замечания review #297 исправлены и независимо воспроизведены как проходящие: `srcset`/`ping` удаляются, при ошибке B прежний документ A очищается, на 640 CSS px основные действия доступны. Оба CI-check — success; расширенный локальный fixture-прогон — success, без production-сети. [P1, UI-10] `backend/search/review.html:470–480`: трёхколоночная сетка включается сразу после 1100 px, но её минимумы составляют 256 + 360 + 560 = 1176 px. Независимый fixture-прогон показал для `/` `scrollWidth=1176` при viewport 1101 и 1175 CSS px; панель документа выходит за правый край. При 1176 px переполнение исчезает. Это нарушает критерий плана «не сжимать/не обрезать три колонки при нехватке места» и делает часть юридического текста/управления недоступной на промежуточной ширине. Минимальное исправление: оставить двухпанельный режим до ширины, на которой действительно помещаются минимумы, затем проверить 1100/1101/1175/1176 и целевые 1024/1280. Не требуется новая архитектура или широкий тестовый контур. Реальный browser zoom 200–400% и экспертная лингвистическая проверка всех KY строк не объявляются пройденными; результаты CSS viewport/reflow их не заменяют. Формы аккаунтов тестировались только с перехваченными fixture-запросами; реальные пользователи не затрагивались. Merge/deploy не выполнялись.
codex added 1 commit 2026-10-23 14:29:15 +00:00
fix: preserve search layout until panels fit
CI / tests-and-images (pull_request) Successful in 2m13s
Runner smoke test / runner-smoke (pull_request) Successful in 1s
6a3a6f8da5
agent approved these changes 2026-10-23 14:32:14 +00:00
agent left a comment
Collaborator

Проверен полный diff PR #54: base 25c62d3fff → head 6a3a6f8da5, единый план UI-01—UI-33, DESIGN.md, versions/changelog и fixture. Все четыре прежних замечания reviews #297/#298 устранены. Независимый локальный fixture без production-сети: srcset/ping и небезопасные URL удалены; при A → ошибка B старый документ/source очищается, успешная B и запоздалый A не подменяют выбор, рейтинг и черновик сохранены; reflow без page overflow на проверенных ширинах. На 1101/1175 CSS px сетка двухпанельная, на 1176 — трёхпанельная; со скрытыми фильтрами при resize остаются две панели. Расширенный fixture прошёл, включая фиктивные password/create/reset/delete/save. CI tests-and-images и runner-smoke на текущем SHA — success. Новых блокирующих замечаний нет.

Ограничения: настоящий browser zoom 200–400% и экспертная проверка всех KY формулировок не подтверждены; CSS viewport/reflow не выдаётся за zoom. Fixture операции не обращались к реальным пользователям и production. Это initial review, без merge/deploy.

Проверен полный diff PR #54: base 25c62d3fffaccf4d01b0c31d58a8a1ac27551526 → head 6a3a6f8da50083ea5cd83aadb634e0777f733797, единый план UI-01—UI-33, DESIGN.md, versions/changelog и fixture. Все четыре прежних замечания reviews #297/#298 устранены. Независимый локальный fixture без production-сети: `srcset`/`ping` и небезопасные URL удалены; при A → ошибка B старый документ/source очищается, успешная B и запоздалый A не подменяют выбор, рейтинг и черновик сохранены; reflow без page overflow на проверенных ширинах. На 1101/1175 CSS px сетка двухпанельная, на 1176 — трёхпанельная; со скрытыми фильтрами при resize остаются две панели. Расширенный fixture прошёл, включая фиктивные password/create/reset/delete/save. CI tests-and-images и runner-smoke на текущем SHA — success. Новых блокирующих замечаний нет. Ограничения: настоящий browser zoom 200–400% и экспертная проверка всех KY формулировок не подтверждены; CSS viewport/reflow не выдаётся за zoom. Fixture операции не обращались к реальным пользователям и production. Это initial review, без merge/deploy.
Collaborator

Финальная техническая проверка PR #54 на head 6a3a6f8da50083ea5cd83aadb634e0777f733797 (base 25c62d3fffaccf4d01b0c31d58a8a1ac27551526). Формальное ревью #299 — APPROVED на этом SHA; блокирующих замечаний по коду не осталось.

Проверены полный diff, план UI-01—UI-33 и CHANGELOG; версии Frontend 0.2.6 / Backend 0.13.1 согласованы. Исправления предыдущих ревью подтверждены: очистка srcset/ping, сброс устаревшего текста документа при ошибке загрузки, отсутствие переполнения на 640 px и корректная двухпанельная компоновка до 1175 px. Независимый Playwright fixture завершился без failedCoreChecks; он проверил reflow, безопасные ссылки, переключение документов с ошибкой и гонкой ответов, а также формы на фиктивных пользователях. На текущем SHA оба CI check — success.

Для полной визуальной приёмки остаются ручные проверки реального browser zoom 200–400%, физического touch и экспертная проверка кыргызских подписей. Проверка CSS viewport/reflow не заменяет browser zoom. Операции с настоящими пользователями и паролями не выполнялись. Защиту ветки через API подтвердить не удалось (HTTP 403). Merge и deployment не выполнялись.

Финальная техническая проверка PR #54 на head `6a3a6f8da50083ea5cd83aadb634e0777f733797` (base `25c62d3fffaccf4d01b0c31d58a8a1ac27551526`). Формальное ревью #299 — APPROVED на этом SHA; блокирующих замечаний по коду не осталось. Проверены полный diff, план UI-01—UI-33 и CHANGELOG; версии Frontend 0.2.6 / Backend 0.13.1 согласованы. Исправления предыдущих ревью подтверждены: очистка `srcset`/`ping`, сброс устаревшего текста документа при ошибке загрузки, отсутствие переполнения на 640 px и корректная двухпанельная компоновка до 1175 px. Независимый Playwright fixture завершился без failedCoreChecks; он проверил reflow, безопасные ссылки, переключение документов с ошибкой и гонкой ответов, а также формы на фиктивных пользователях. На текущем SHA оба CI check — success. Для полной визуальной приёмки остаются ручные проверки реального browser zoom 200–400%, физического touch и экспертная проверка кыргызских подписей. Проверка CSS viewport/reflow не заменяет browser zoom. Операции с настоящими пользователями и паролями не выполнялись. Защиту ветки через API подтвердить не удалось (HTTP 403). Merge и deployment не выполнялись.
admin merged commit 01380d3c09 into main 2026-10-23 19:44:50 +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#54