From 28e2d38ee604478e5d0e852c9e8099cb22f9ec2b Mon Sep 17 00:00:00 2001 From: Denozordec Date: Sun, 4 Oct 2026 18:15:22 +0700 Subject: [PATCH] =?UTF-8?q?chore(ui):=20=D1=83=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D1=80=D0=B8=D1=81=D0=BA=D0=B8=20=D0=BC?= =?UTF-8?q?=D0=B0=D1=82=D1=80=D0=B8=D1=86=D1=8B=20=D0=B8=20=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D1=87=D1=91=D1=82=D0=B0=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=82=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ux-ui-performance.md | 9 +++++++++ docs/ux-ui-plan.md | 2 +- docs/ux-ui-progress.md | 2 +- docs/ux-ui-stage-12.md | 9 +++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/ux-ui-performance.md b/docs/ux-ui-performance.md index 52779c10..de69ea77 100644 --- a/docs/ux-ui-performance.md +++ b/docs/ux-ui-performance.md @@ -108,3 +108,12 @@ Statistics pivot в backend/src/services/statistics-aggregate.ts огранич 12.3.56:WAN10×JH10×Exit10/21 servers/4261 bytes →1000 expanded full-route rows/33049 table DOM/33780 page DOM/3738ms dev ready.1 browser/test lint; baseline, далее12.3.57. 12.3.57:1000 full routes→50 rows/1699 table nodes/2461 page DOM/1853ms dev ready.6+1 browser/type/lint/build, global sort/index/page20/refresh/clamp/320px/axe.7 manualPagination:true, далее WAN matrix/CPU/24 commRecs. + + +## 12.3.58 — карта оставшихся рисков оптимизатора (2026-10-04) + +Статический аудит после a16bfae, без продуктовых изменений/сетевых операций. Осталось7 manualPagination:true. WAN matrix рендерит все home.wans и все jumpHosts как columns, legs.find на каждую ячейку; Math.max(...legs.map(score)) тоже не имеет явной границы числа аргументов. DOM ограничение карточек и full routes не ограничивает эту матрицу. Следующие независимые fixtures:1000 WAN×1JH без Exit и10WAN×100JH без Exit — отделить rows/columns от full-route product. После baseline нужны page50 WAN/ограниченный набор JH columns/точные counts/поиск всех JH, map lookup по wan/jh без изменения состояния/best по полным legs. + +buildLiveOptimizerData/assignProbesForWanJh делает DFS, когда WAN<=7 и WAN<=pool.length. Лимита pool нет. scoreProbeForWanIface допускает srcInterface="" для любого WAN; при7WAN/20 подходящих разных probes полное дерево содержит20P7=390700800 полных назначений (вывод из кода, не измеренный benchmark). Не запускать этот случай через Next/UI: сначала отдельный чистый CPU-профиль в дочернем процессе с жёстким timeout, без DB/RouterOS. Стратегию назначения/оптимальность нельзя менять без доказательства эквивалентности на малых наборах; простое обрезание pool может скрыть лучшее назначение. + +commRecs строятся через filter(sourceServerId).slice(0,24), а HomeCard подписывает BGP community только длиной среза. Нужны полный source count/явное сообщение24 изN; нельзя выдавать24 за весь каталог или менять правила применения. Локальная вкладка карточки сбрасывается при pagination, native OSPF select1000 options остаётся. Общая main/context после delta и реальная внешняя12.5 ещё не закрыты. Этот блок — карта приёмки, не доказательство нагрузочной готовности. Product build a16bfae уже passed; для документации повтор не нужен. Следующий12.3.59 — указанные bounded profiles/CPU timeout. Локальный коммит без push. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 6a96b184..a35d04e7 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,6 +1,6 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-04: 12.3.57 принят локально:1000 full routes→50/1699 table DOM/2461 page DOM, global sort/индекс/page20/refresh/clamp/320px/axe.6+1 browser/type/lint/build. Далее12.3.58 — профиль WAN matrix/динамических столбцов и CPU комбинирования; честность24 рекомендаций/полная регрессия после delta.7 specialized manualPagination:true остаются. Внешняя12.5 отдельно. +Актуальное продолжение 2026-10-04: 12.3.58 сохранён — статический аудит WAN matrix/CPU назначения probes/среза24 commRecs. Следующий12.3.59: bounded profile1000 WAN×1JH и10WAN×100JH без Exit, отдельно ограниченный по времени CPU-профиль7WAN×20 wildcard probes. Не запускать тяжёлый DFS через UI. Последний UI-коммит a16bfae; общая регрессия после delta/внешняя12.5 остаются. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-04. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index be5f3f09..47bd4f9b 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-04: 12.3.57 принят локально:1000 full routes→50/1699 table DOM/2461 page DOM, global sort/индекс/page20/refresh/clamp/320px/axe.6+1 browser/type/lint/build. Далее12.3.58 — профиль WAN matrix/динамических столбцов и CPU комбинирования; честность24 рекомендаций/полная регрессия после delta.7 specialized manualPagination:true остаются. Внешняя12.5 отдельно. +Актуальное продолжение 2026-10-04: 12.3.58 сохранён — статический аудит WAN matrix/CPU назначения probes/среза24 commRecs. Следующий12.3.59: bounded profile1000 WAN×1JH и10WAN×100JH без Exit, отдельно ограниченный по времени CPU-профиль7WAN×20 wildcard probes. Не запускать тяжёлый DFS через UI. Последний UI-коммит a16bfae; общая регрессия после delta/внешняя12.5 остаются. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index 6c33dd29..5848c3c4 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -660,3 +660,12 @@ ReUI client pagination50 только раскрытого списка, autoRes 6/6 профильных table/pin/empty/unknown cases и финальный large1/1 passed. Первые ошибочные expectations теста считали min index уникальным; исправлены по существующим равным значениям. Проверены50 initial/счётчик номера51/refresh/page20 951–1000, collapse5/open50, глобальный min sort включает номера за исходной page1 при ties,320px/pinning/axe/shrink1000→1/no writes.21 devices/WAN10×JH10×Exit10/4261 bytes →50 rows/1699 table DOM/2461 page DOM/1853ms dev ready вместо33049/33780. TypeScript без incremental/ESLint grid+test/production build passed. [Профиль](ux-ui/acceptance/optimizer-routes-pages-2026-10-04.json), [320px](ux-ui/screens/optimizer-routes-pages-320.png) сохранены и просмотрены. Dev latency не production benchmark. Осталось7 manualPagination:true specialized grids. Следующий12.3.58 — WAN matrix/динамические JH columns/CPU combinatorics. Срез commRecs24/восстановление вкладки карточки/native device options1000 и полный массив в памяти остаются. Общая main/context после всех delta и внешняя12.5 не закрыты. Локальный коммит без push. + + +## 12.3.58 — карта оставшихся рисков оптимизатора (2026-10-04) + +Статический аудит после a16bfae, без продуктовых изменений/сетевых операций. Осталось7 manualPagination:true. WAN matrix рендерит все home.wans и все jumpHosts как columns, legs.find на каждую ячейку; Math.max(...legs.map(score)) тоже не имеет явной границы числа аргументов. DOM ограничение карточек и full routes не ограничивает эту матрицу. Следующие независимые fixtures:1000 WAN×1JH без Exit и10WAN×100JH без Exit — отделить rows/columns от full-route product. После baseline нужны page50 WAN/ограниченный набор JH columns/точные counts/поиск всех JH, map lookup по wan/jh без изменения состояния/best по полным legs. + +buildLiveOptimizerData/assignProbesForWanJh делает DFS, когда WAN<=7 и WAN<=pool.length. Лимита pool нет. scoreProbeForWanIface допускает srcInterface="" для любого WAN; при7WAN/20 подходящих разных probes полное дерево содержит20P7=390700800 полных назначений (вывод из кода, не измеренный benchmark). Не запускать этот случай через Next/UI: сначала отдельный чистый CPU-профиль в дочернем процессе с жёстким timeout, без DB/RouterOS. Стратегию назначения/оптимальность нельзя менять без доказательства эквивалентности на малых наборах; простое обрезание pool может скрыть лучшее назначение. + +commRecs строятся через filter(sourceServerId).slice(0,24), а HomeCard подписывает BGP community только длиной среза. Нужны полный source count/явное сообщение24 изN; нельзя выдавать24 за весь каталог или менять правила применения. Локальная вкладка карточки сбрасывается при pagination, native OSPF select1000 options остаётся. Общая main/context после delta и реальная внешняя12.5 ещё не закрыты. Этот блок — карта приёмки, не доказательство нагрузочной готовности. Product build a16bfae уже passed; для документации повтор не нужен. Следующий12.3.59 — указанные bounded profiles/CPU timeout. Локальный коммит без push.