From 21859be580be610484a17da7e40e21687fd78fc1 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Sun, 4 Oct 2026 11:00:27 +0700 Subject: [PATCH] =?UTF-8?q?chore(ux):=20=D0=B7=D0=B0=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D1=81=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D1=80=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D1=82=D0=BD=D0=BE=D0=B9=20=D1=80=D0=B5=D0=B3=D1=80=D0=B5?= =?UTF-8?q?=D1=81=D1=81=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ux-ui-plan.md | 2 +- docs/ux-ui-progress.md | 8 + docs/ux-ui-stage-12.md | 9 + .../acceptance/context-repeat-2026-10-04.json | 218 ++++++++++++++++++ 4 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 docs/ux-ui/acceptance/context-repeat-2026-10-04.json diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index bf066272..73bb8b11 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -4,7 +4,7 @@ ## Актуальная точка продолжения — 2026-10-04 -Этап 11Б завершён в границах локальной приёмки (11Б.7); внешний выпуск не проверен. 12.1 принят локально: доступность оболочки/клавиатура/health в описанных сценариях. 12.2.1 принят локально: strict BGP catalog/partial/nullable counters. 12.2.2 принят локально: strict traffic DTO и агрегация без выдуманных точек. 12.2.3 принят локально: observations для server traffic от backend до dashboard. 12.2.4 принят локально: strict servers/probes и unknown server status. 12.2.5 принят локально: реальные ping samples/unknown/ось RTT/Recharts. 12.2.6 принят локально: strict GRE/WireGuard/VXLAN и device failures. 12.2.7 принят локально: strict Internet path snapshot/fallback. 12.2.8 принят локально: подтверждение полного backend сбора. 12.2.9 принят локально: метрики участков и наблюдаемый WAN без эвристической подмены. 12.3.1 принят локально:1000 серверов/штатная пагинация. 12.3.2 принят локально: пагинация CompactDataGrid/1000 строк статистики. 12.3.3 принят локально: порционный DOM очереди проблем. 12.3.4 принят локально: большой BGP каталог/страница при обновлении. Production build и123 профильных browser приняты локально на3978976. 12.2.10 принят локально: обязательные RouterOS поля. 12.3.5 принят локально: страница CompactDataGrid сохраняется при опросе,89 browser и повторный production build прошли. 12.3.6 сохранён: baseline1000 speed probes (ограничение DOM пока не выполнено). 12.3.7 принят локально:50 строк speed-проб/сохранение страницы/глобальная сортировка/1000→1; каталог1001 устройства остаётся в DOM. 12.3.8 принят локально:50 строк ресурсов, URL/поиск/сохранение страницы/1000→1; исправлена pagination оболочки с children, production build и8 больших browser прошли. 12.3.9 принят локально:порционное раскрытие1000 предупреждений ресурсов/клавиатура/axe; исходная ошибка ESLint speedDraft подтверждена. 12.3.10 принят локально:недоступные интерфейсы очищаются в обработчиках,54 browser/полный ESLint/production build прошли. 12.3.11 принят локально:ServerTileRail50 устройств/URL/поиск/клавиатура/две площадки/mobile Sheet/axe обе темы;47 browser и production build прошли. 12.3.12 принят локально:BGP ручная страница при выбранной URL сессии/refresh/reload,16 browser/build прошли. 12.4.1 записан:main1091 сценарий/1088 passed/3 устаревших fixtures; оба исправленных файла6 passed. 12.4.2 принят локально:context205/24 файла и unit28 прошли. 12.3.13 принят локально:wide pivot51×16/ScrollArea/axe/24+2 browser/builds. 12.3.14 принят локально:history200/50 DOM/54+1 browser/build. 12.3.15 принят локально:live расписание1000/page20 error cache/15 browser. 12.3.16 принят локально:certificates1000/50 DOM/refresh деталей/19+3 browser/build. 12.3.17 принят локально:pinning идентификатора/видимость значений/29 browser/build. 12.3.18 принят локально:users1000/поиск всего списка/детали и ошибка refresh/32 browser/build. 12.3.19 принят локально:backups1000/все мобильные действия/возврат focus/39+4 browser/build. 12.3.20 принят локально:независимые speed GET/cache/freshness/58+4 browser/build. 12.3.21 принят локально:strict history DTO/null rates от DB до UI/60+5 browser/unit4/builds. 12.4.3 принят локально:users/backups delta context36 на a558412. 12.3.22 принят локально:shared speed-probes DTO/context8/60+6+47 browser/unit5/builds. 12.3.23 принят локально:strict write DTO/atomic replacement/confirmed scheduler warning/65 browser/HTTP DI JWT/builds. 12.3.24 принят локально:OSPF routes1000/50 DOM/page20/cache/320px/22+1 browser/build. 12.3.25 принят локально:BFD1000/50 DOM/cache/320px/12 browser/build. Следующий блок12.4.4:общая context матрица213, затем12.4.5 main текущего HEAD и12.3.26 оставшиеся network grids; далее network grids и полная main/context регрессия.12.5 отдельно. См. docs/ux-ui-stage-12.md. Внешние ограничения 11Б сохраняются. +Этап 11Б завершён в границах локальной приёмки (11Б.7); внешний выпуск не проверен. 12.1 принят локально: доступность оболочки/клавиатура/health в описанных сценариях. 12.2.1 принят локально: strict BGP catalog/partial/nullable counters. 12.2.2 принят локально: strict traffic DTO и агрегация без выдуманных точек. 12.2.3 принят локально: observations для server traffic от backend до dashboard. 12.2.4 принят локально: strict servers/probes и unknown server status. 12.2.5 принят локально: реальные ping samples/unknown/ось RTT/Recharts. 12.2.6 принят локально: strict GRE/WireGuard/VXLAN и device failures. 12.2.7 принят локально: strict Internet path snapshot/fallback. 12.2.8 принят локально: подтверждение полного backend сбора. 12.2.9 принят локально: метрики участков и наблюдаемый WAN без эвристической подмены. 12.3.1 принят локально:1000 серверов/штатная пагинация. 12.3.2 принят локально: пагинация CompactDataGrid/1000 строк статистики. 12.3.3 принят локально: порционный DOM очереди проблем. 12.3.4 принят локально: большой BGP каталог/страница при обновлении. Production build и123 профильных browser приняты локально на3978976. 12.2.10 принят локально: обязательные RouterOS поля. 12.3.5 принят локально: страница CompactDataGrid сохраняется при опросе,89 browser и повторный production build прошли. 12.3.6 сохранён: baseline1000 speed probes (ограничение DOM пока не выполнено). 12.3.7 принят локально:50 строк speed-проб/сохранение страницы/глобальная сортировка/1000→1; каталог1001 устройства остаётся в DOM. 12.3.8 принят локально:50 строк ресурсов, URL/поиск/сохранение страницы/1000→1; исправлена pagination оболочки с children, production build и8 больших browser прошли. 12.3.9 принят локально:порционное раскрытие1000 предупреждений ресурсов/клавиатура/axe; исходная ошибка ESLint speedDraft подтверждена. 12.3.10 принят локально:недоступные интерфейсы очищаются в обработчиках,54 browser/полный ESLint/production build прошли. 12.3.11 принят локально:ServerTileRail50 устройств/URL/поиск/клавиатура/две площадки/mobile Sheet/axe обе темы;47 browser и production build прошли. 12.3.12 принят локально:BGP ручная страница при выбранной URL сессии/refresh/reload,16 browser/build прошли. 12.4.1 записан:main1091 сценарий/1088 passed/3 устаревших fixtures; оба исправленных файла6 passed. 12.4.2 принят локально:context205/24 файла и unit28 прошли. 12.3.13 принят локально:wide pivot51×16/ScrollArea/axe/24+2 browser/builds. 12.3.14 принят локально:history200/50 DOM/54+1 browser/build. 12.3.15 принят локально:live расписание1000/page20 error cache/15 browser. 12.3.16 принят локально:certificates1000/50 DOM/refresh деталей/19+3 browser/build. 12.3.17 принят локально:pinning идентификатора/видимость значений/29 browser/build. 12.3.18 принят локально:users1000/поиск всего списка/детали и ошибка refresh/32 browser/build. 12.3.19 принят локально:backups1000/все мобильные действия/возврат focus/39+4 browser/build. 12.3.20 принят локально:независимые speed GET/cache/freshness/58+4 browser/build. 12.3.21 принят локально:strict history DTO/null rates от DB до UI/60+5 browser/unit4/builds. 12.4.3 принят локально:users/backups delta context36 на a558412. 12.3.22 принят локально:shared speed-probes DTO/context8/60+6+47 browser/unit5/builds. 12.3.23 принят локально:strict write DTO/atomic replacement/confirmed scheduler warning/65 browser/HTTP DI JWT/builds. 12.3.24 принят локально:OSPF routes1000/50 DOM/page20/cache/320px/22+1 browser/build. 12.3.25 принят локально:BFD1000/50 DOM/cache/320px/12 browser/build. 12.4.4 принят локально:context213/25 файлов и unit36 прошли на5b2a291. Следующий блок12.4.5:общий main текущего HEAD, затем12.3.26 network grids и WireGuard missing/zero bytes; далее network grids и полная main/context регрессия.12.5 отдельно. См. docs/ux-ui-stage-12.md. Внешние ограничения 11Б сохраняются. Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md). diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index be63f368..4ddf47b6 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -36,6 +36,14 @@ +## 12.4.4 — повтор общей context матрицы (2026-10-04) + +На HEAD5b2a291 повторена вся playwright.ux-context.config.ts:213 из213 сценариев/25 файлов,7.5min,0 unexpected/0 skipped/0 flaky; Edge,workers1,retries0,maxFailures12. Включены новые8 uptime speed context сценариев и все прежние source/ABA/операции/unknown checkpoint profiles. Доказательство: docs/ux-ui/acceptance/context-repeat-2026-10-04.json с точным HEAD и результатами по файлам. + +15 explicit pure/DI файлов дали36 passed/0 failed, включая strict speed DTO и HTTP/JWT write route; PostgreSQL/RouterOS не использовались. Общий backend npm test не запускался из-за реальных purge/DB операций. Основная матрица последних delta ещё не повторена целиком. + +Следующий блок12.4.5: общий main прогон текущего HEAD с сохранением JSON evidence. Затем12.3.26 оставшиеся network grids; аудит также выявил fmtBytes(0)→— в WireGuard detail/peer grid, исправить в следующем UI блоке с различением missing/zero. Внешняя12.5 отдельно; stage12 не завершён. Коммит локальный без push. + ## 12.3.25 — большой каталог BFD-сессий (2026-10-04) Источник /ospf/catalog читает и объединяет полный RouterOS bfdSessions без pagination cap. OspfBfdDataGrid использует client pagination50, сохранение страницы при refresh и clamp при сокращении/поиске. Роутер закреплён штатным start/end pinning, горизонтальная прокрутка через DataGridScrollArea; последняя метрика полностью видима на320px. Метрики и режимы unknown/null остаются прежними, сетевые операции не изменены. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index 3d437730..b8b6d837 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -362,3 +362,12 @@ Backend заменяет каталог в одной Drizzle transaction с pg_ Следующий блок12.4.4: повтор общей context матрицы213 scenarios после последних delta. Затем12.4.5 общий main прогон текущего HEAD и12.3.26 оставшиеся network grids. Внешняя12.5 отдельно. Коммит локальный без push. + +## 12.4.4 — повтор общей context матрицы (2026-10-04) + +На HEAD5b2a291 повторена вся playwright.ux-context.config.ts:213 из213 сценариев/25 файлов,7.5min,0 unexpected/0 skipped/0 flaky; Edge,workers1,retries0,maxFailures12. Включены новые8 uptime speed context сценариев и все прежние source/ABA/операции/unknown checkpoint profiles. Доказательство: docs/ux-ui/acceptance/context-repeat-2026-10-04.json с точным HEAD и результатами по файлам. + +15 explicit pure/DI файлов дали36 passed/0 failed, включая strict speed DTO и HTTP/JWT write route; PostgreSQL/RouterOS не использовались. Общий backend npm test не запускался из-за реальных purge/DB операций. Основная матрица последних delta ещё не повторена целиком. + +Следующий блок12.4.5: общий main прогон текущего HEAD с сохранением JSON evidence. Затем12.3.26 оставшиеся network grids; аудит также выявил fmtBytes(0)→— в WireGuard detail/peer grid, исправить в следующем UI блоке с различением missing/zero. Внешняя12.5 отдельно; stage12 не завершён. Коммит локальный без push. + diff --git a/docs/ux-ui/acceptance/context-repeat-2026-10-04.json b/docs/ux-ui/acceptance/context-repeat-2026-10-04.json new file mode 100644 index 00000000..b6d1603f --- /dev/null +++ b/docs/ux-ui/acceptance/context-repeat-2026-10-04.json @@ -0,0 +1,218 @@ +{ + "head": "5b2a2917c14fc3f92c056b164db53c7a083883b1", + "config": "playwright.ux-context.config.ts", + "browser": "msedge", + "workers": 1, + "retries": 0, + "maxFailures": 12, + "source": "test-results/ux-context-repeat.json", + "stats": { + "startTime": "2026-10-04T03:52:05.719Z", + "duration": 448348.891, + "expected": 213, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + }, + "errors": [], + "files": [ + { + "file": "alerts-context.spec.ts", + "passed": 14, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "backend-switch.e2e.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "backups-context.spec.ts", + "passed": 28, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "bgp-context.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "certificates-context.spec.ts", + "passed": 16, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "containers-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "data-collection-context.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "evobgp-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "filters-context.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "firewall-context.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "geoip-context.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "gre-context.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "ipsec-context.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "netflow-context.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "network-map-context.spec.ts", + "passed": 12, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "ospf-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "probes-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "recursive-routes-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "route-optimizer-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "settings-context.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "system-database-context.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "terminal-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "uptime-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "users-context.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "failures": [] + }, + { + "file": "vxlan-context.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "failures": [] + } + ], + "unitChecks": { + "command": "npx tsx --test (15 explicit pure/DI files)", + "passed": 36, + "failed": 0, + "realDatabaseUsed": false, + "files": [ + "lib/dashboard-bgp.test.ts", + "lib/dashboard-traffic.test.ts", + "lib/dashboard-readers.test.ts", + "lib/dashboard-probes.test.ts", + "lib/dashboard-overlays.test.ts", + "lib/dashboard-path-response.test.ts", + "lib/dashboard-permissions.test.ts", + "lib/evobgp-catalog.test.ts", + "backend/src/services/traffic-rate.test.ts", + "backend/src/services/bgp-catalog-parse.test.ts", + "backend/src/services/ospf-observed-values.test.ts", + "backend/src/services/internet-path-snapshot.test.ts", + "backend/src/services/speed-history-dto.test.ts", + "backend/src/services/speed-probe-dto.test.ts", + "backend/src/routes/speed-probes-write.test.ts" + ] + } +}