diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 2a64c19b..22df4a62 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,6 +1,6 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-07: параCHR194.226.121.150(id1)/104.165.244.7(id2) подключена к стенду161.104.46.222,обаonline/RouterOS7.24.5/HTTP80.12.5.5 завершён для добавления и чтения. Следующий12.5.6 — nativeTCP speed-test transmit/receive/both по3сек и GET истории. ОстальныеPG/сетевые/интеграционные сценарии12.5 открыты. +Актуальное продолжение 2026-10-07:12.5.5–6 завершены:второйCHR online,bandwidth-server включён сauthenticate=true поразрешениюпользователя;3nativeTCP tests transmit/receive/both по3s подтвержденыAPI/GETистории/UI. Первоначальный отказкорректно записанerror/null;Ping0%loss. Следующий12.5.7 — PG/остальные сетевые и интеграционные сценарии. Вся12.5 остаётся открытой. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-07. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index e8692203..4f5256c7 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-07: параCHR194.226.121.150(id1)/104.165.244.7(id2) подключена к стенду161.104.46.222,обаonline/RouterOS7.24.5/HTTP80.12.5.5 завершён для добавления и чтения. Следующий12.5.6 — nativeTCP speed-test transmit/receive/both по3сек и GET истории. ОстальныеPG/сетевые/интеграционные сценарии12.5 открыты. +Актуальное продолжение 2026-10-07:12.5.5–6 завершены:второйCHR online,bandwidth-server включён сauthenticate=true поразрешениюпользователя;3nativeTCP tests transmit/receive/both по3s подтвержденыAPI/GETистории/UI. Первоначальный отказкорректно записанerror/null;Ping0%loss. Следующий12.5.7 — PG/остальные сетевые и интеграционные сценарии. Вся12.5 остаётся открытой. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -34,6 +34,16 @@ | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в описанных границах:12.3.83,main1186/1186,context221/221. Этап остаётся в работе: стенд12.5.1–3 развёрнут,bootstrap/smoke проверены;остальные сценарии12.5 не выполнены. | +## 12.5.6 — реальные TCP bandwidth-test на паре CHR (2026-10-07) + +Source194.226.121.150(id1) → destination104.165.244.7(id2),RouterOS7.24.5;приложение673e5ba на161.104.46.222. Первыйtransmit3s вернул502/native «не смог подключиться»;GET истории подтвердилerror иTX/RXnull. Остальныеавтоматические запуски остановлены. ЧтениеRouterOS показалоbandwidth-server enabled=false наобоихCHR. [Первоначальная ошибка](ux-ui/acceptance/chr-native-speed-2026-10-07.json). + +Пользователь явно разрешил включитьслужбу наобоих устройствах сauthenticate=true. POSTset/независимыйGET200 подтвердилиenabled=true,authenticate=true,max-sessions100 сохранён. Это единственное изменение конфигурацииRouterOS в этом блоке;служба остаётся включённой для дальнейших тестов. [Настройки и взаимныйPing](ux-ui/acceptance/chr-bandwidth-server-2026-10-07.json):3ответаиз3 в каждом направлении,0%потерь,примерно53–56ms. + +Повторные короткиеTCP tests transmit/receive/both по3s прошлиHTTP200;native массивзаканчиваетсяdone testing. Transmit:TX1771.419912Mbps/RXnull;receive:TXnull/RX1454.885984Mbps;both:TX1124.95272/RX863.660264Mbps. After-ping53–54ms/0%loss. [Очищенные API receipts и независимый GET истории](ux-ui/acceptance/chr-native-speed-enabled-2026-10-07.json) совпали поrunId/endpoints/direction/duration/averages/date/status. Nativeданные не подменены моками;неизмеренная сторонаnull,первый отказ не объявленdone/zero. + +RealUI показывает3successful и1failedhistoryrows,неизмеренная сторона «Неизвестно»,320px fits. ПервыйUI-selector ожидал русские «Готово/Ошибка»,но существующаятаблица выводитdone/error;проверка уточнена пофактическим caption,продуктовый код не менялся. Это короткая функциональная проверкаTCP,не benchmark устойчивой скорости и неWAN-interface/source binding. Ad-hoc runs безprobeId:probe ownership/snapshot race этим не проверены. PGbackup/restore/concurrency/права/workers,ROS остальныеошибки/UDP/OSPF/VPN/интеграции ещё не приняты. Следующий12.5.7 — продолжение протокола;локальныйкоммит безpush,credentials в evidence отсутствуют. + ## 12.5.5 — второй CHR и подтверждённая пара устройств (2026-10-07) По поручению пользователя добавлен CHR104.165.244.7,serverId2. HTTP REST80/useSsl=false,admin/пароль переданы только API через скрытыйprompt;в Git/отчётах/скрипте секрет отсутствует. Test-connection200/identityCHR/RouterOS7.24.5 stable,создание201,poll200,statusonline,повторныйGET200. Первая запись194.226.121.150(id1) такжеonline. [Очищенный паспорт пары](ux-ui/acceptance/chr-pair-2026-10-07.json). Дубликат не создан,конфигурацияRouterOS не изменялась. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index af2646d7..f4b082f4 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-07: параCHR194.226.121.150(id1)/104.165.244.7(id2) подключена к стенду161.104.46.222,обаonline/RouterOS7.24.5/HTTP80.12.5.5 завершён для добавления и чтения. Следующий12.5.6 — nativeTCP speed-test transmit/receive/both по3сек и GET истории. ОстальныеPG/сетевые/интеграционные сценарии12.5 открыты. +Актуальное продолжение 2026-10-07:12.5.5–6 завершены:второйCHR online,bandwidth-server включён сauthenticate=true поразрешениюпользователя;3nativeTCP tests transmit/receive/both по3s подтвержденыAPI/GETистории/UI. Первоначальный отказкорректно записанerror/null;Ping0%loss. Следующий12.5.7 — PG/остальные сетевые и интеграционные сценарии. Вся12.5 остаётся открытой. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -990,3 +990,13 @@ Test-connection200:identityCHR,RouterOS7.24.5 stable,CHR OpenStack Foundation Op По поручению пользователя добавлен CHR104.165.244.7,serverId2. HTTP REST80/useSsl=false,admin/пароль переданы только API через скрытыйprompt;в Git/отчётах/скрипте секрет отсутствует. Test-connection200/identityCHR/RouterOS7.24.5 stable,создание201,poll200,statusonline,повторныйGET200. Первая запись194.226.121.150(id1) такжеonline. [Очищенный паспорт пары](ux-ui/acceptance/chr-pair-2026-10-07.json). Дубликат не создан,конфигурацияRouterOS не изменялась. Имена обоих устройств после штатнойidentity синхронизации —CHR;различать поIP/id. Typehome-router(defaultконтракта),специальнаяроль отдельно не назначалась. Следующий12.5.6 — короткие nativeTCP bandwidth-test дляtransmit/receive/both и независимоеGET истории;PGbackup/restore/concurrency/права/workers и остальные12.5 остаются открыты. Все коммиты локальные,безpush. + +## 12.5.6 — реальные TCP bandwidth-test на паре CHR (2026-10-07) + +Source194.226.121.150(id1) → destination104.165.244.7(id2),RouterOS7.24.5;приложение673e5ba на161.104.46.222. Первыйtransmit3s вернул502/native «не смог подключиться»;GET истории подтвердилerror иTX/RXnull. Остальныеавтоматические запуски остановлены. ЧтениеRouterOS показалоbandwidth-server enabled=false наобоихCHR. [Первоначальная ошибка](ux-ui/acceptance/chr-native-speed-2026-10-07.json). + +Пользователь явно разрешил включитьслужбу наобоих устройствах сauthenticate=true. POSTset/независимыйGET200 подтвердилиenabled=true,authenticate=true,max-sessions100 сохранён. Это единственное изменение конфигурацииRouterOS в этом блоке;служба остаётся включённой для дальнейших тестов. [Настройки и взаимныйPing](ux-ui/acceptance/chr-bandwidth-server-2026-10-07.json):3ответаиз3 в каждом направлении,0%потерь,примерно53–56ms. + +Повторные короткиеTCP tests transmit/receive/both по3s прошлиHTTP200;native массивзаканчиваетсяdone testing. Transmit:TX1771.419912Mbps/RXnull;receive:TXnull/RX1454.885984Mbps;both:TX1124.95272/RX863.660264Mbps. After-ping53–54ms/0%loss. [Очищенные API receipts и независимый GET истории](ux-ui/acceptance/chr-native-speed-enabled-2026-10-07.json) совпали поrunId/endpoints/direction/duration/averages/date/status. Nativeданные не подменены моками;неизмеренная сторонаnull,первый отказ не объявленdone/zero. + +RealUI показывает3successful и1failedhistoryrows,неизмеренная сторона «Неизвестно»,320px fits. ПервыйUI-selector ожидал русские «Готово/Ошибка»,но существующаятаблица выводитdone/error;проверка уточнена пофактическим caption,продуктовый код не менялся. Это короткая функциональная проверкаTCP,не benchmark устойчивой скорости и неWAN-interface/source binding. Ad-hoc runs безprobeId:probe ownership/snapshot race этим не проверены. PGbackup/restore/concurrency/права/workers,ROS остальныеошибки/UDP/OSPF/VPN/интеграции ещё не приняты. Следующий12.5.7 — продолжение протокола;локальныйкоммит безpush,credentials в evidence отсутствуют. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index be2cd016..3cfbafce 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -63,3 +63,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222 ## Второй тестовый CHR — 2026-10-07 104.165.244.7,serverId2,HTTPREST80,имяCHR,typehome-router(default),RouterOS7.24.5 stable;test-connection/poll/GET200,statusonline. [Паспорт пары без учётных данных](ux-ui/acceptance/chr-pair-2026-10-07.json). Пароль не включён в документы/Git. Следующий12.5.6 — короткиеTCP bandwidth-test по3сек,transmit/receive/both. Имена одинаковые;использоватьIP/id для выбора устройства. + +## Native TCP speed — 2026-10-07 + +НаобоихCHR поразрешениюпользователя включёнbandwidth-server(enabled=true,authenticate=true,max-sessions100),независимымGET подтверждено;служба остаётся активной для последующих тестов. ВзаимныйPing3/3,0%loss. Триad-hocTCP runs id1→id2 по3s/transmit/receive/both завершеныdone testing,HTTP200,история/GUI подтверждены. [Настройки](ux-ui/acceptance/chr-bandwidth-server-2026-10-07.json),[результаты](ux-ui/acceptance/chr-native-speed-enabled-2026-10-07.json),[предыдущий отказ при выключенной службе](ux-ui/acceptance/chr-native-speed-2026-10-07.json). Это функциональная проверка,неbenchmark;UDP/WANbinding/probe-races/остальнойROS иPG-протокол не закрыты. diff --git a/docs/ux-ui/acceptance/chr-bandwidth-server-2026-10-07.json b/docs/ux-ui/acceptance/chr-bandwidth-server-2026-10-07.json new file mode 100644 index 00000000..444cdef5 --- /dev/null +++ b/docs/ux-ui/acceptance/chr-bandwidth-server-2026-10-07.json @@ -0,0 +1,87 @@ +{ + "appServer": "161.104.46.222", + "settings": [ + { + "id": 1, + "host": "194.226.121.150", + "setHttp": 200, + "readHttp": 200, + "enabled": "true", + "authenticate": "true", + "maxSessions": "100" + }, + { + "id": 2, + "host": "104.165.244.7", + "setHttp": 200, + "readHttp": 200, + "enabled": "true", + "authenticate": "true", + "maxSessions": "100" + } + ], + "pings": [ + { + "sourceId": 1, + "destinationId": 2, + "http": 200, + "rows": [ + { + "seq": "0", + "time": "53ms604us", + "sent": "1", + "received": "1", + "packet-loss": "0", + "avg-rtt": "53ms604us" + }, + { + "seq": "1", + "time": "53ms171us", + "sent": "2", + "received": "2", + "packet-loss": "0", + "avg-rtt": "53ms387us" + }, + { + "seq": "2", + "time": "53ms342us", + "sent": "3", + "received": "3", + "packet-loss": "0", + "avg-rtt": "53ms372us" + } + ] + }, + { + "sourceId": 2, + "destinationId": 1, + "http": 200, + "rows": [ + { + "seq": "0", + "time": "54ms982us", + "sent": "1", + "received": "1", + "packet-loss": "0", + "avg-rtt": "54ms982us" + }, + { + "seq": "1", + "time": "53ms320us", + "sent": "2", + "received": "2", + "packet-loss": "0", + "avg-rtt": "54ms151us" + }, + { + "seq": "2", + "time": "60ms187us", + "sent": "3", + "received": "3", + "packet-loss": "0", + "avg-rtt": "56ms163us" + } + ] + } + ] +} diff --git a/docs/ux-ui/acceptance/chr-native-speed-2026-10-07.json b/docs/ux-ui/acceptance/chr-native-speed-2026-10-07.json new file mode 100644 index 00000000..5649ecb1 --- /dev/null +++ b/docs/ux-ui/acceptance/chr-native-speed-2026-10-07.json @@ -0,0 +1,38 @@ +{ + "sourceHead": "673e5ba444ced304ea099a99108964e1c471482f", + "appServer": "161.104.46.222", + "sourceHost": "194.226.121.150", + "destinationHost": "104.165.244.7", + "mockedResponses": false, + "commands": [ + { + "runId": "ros1-transmit-1791385831017", + "direction": "transmit", + "durationSec": 3, + "http": 502, + "ok": false, + "errorCategory": "native connection failure", + "errorMessage": "Bandwidth-test не смог подключиться к назначению" + } + ], + "historyHttp": 200, + "history": [ + { + "id": "ros1-transmit-1791385831017", + "srcServerId": "1", + "dstServerId": "2", + "protocol": "tcp", + "direction": "transmit", + "durationSec": 3, + "status": "error", + "txAvgMbps": null, + "rxAvgMbps": null, + "createdAt": "2026-10-07T15:10:31.305Z", + "afterBtPing": { + "rttMs": null, + "lossPct": null, + "error": null + } + } + ] +} diff --git a/docs/ux-ui/acceptance/chr-native-speed-enabled-2026-10-07.json b/docs/ux-ui/acceptance/chr-native-speed-enabled-2026-10-07.json new file mode 100644 index 00000000..3866eb9a --- /dev/null +++ b/docs/ux-ui/acceptance/chr-native-speed-enabled-2026-10-07.json @@ -0,0 +1,151 @@ +{ + "sourceHead": "673e5ba444ced304ea099a99108964e1c471482f", + "appServer": "161.104.46.222", + "sourceHost": "194.226.121.150", + "destinationHost": "104.165.244.7", + "mockedResponses": false, + "commands": [ + { + "runId": "ros1-enabled-transmit-1791386252808", + "direction": "transmit", + "durationSec": 3, + "http": 200, + "ok": true, + "result": { + "runId": "ros1-enabled-transmit-1791386252808", + "createdAt": "2026-10-07T15:17:39.083Z", + "protocol": "tcp", + "direction": "transmit", + "txAvgMbps": 1771.4199119999998, + "rxAvgMbps": null, + "afterBtPing": { + "rttMs": 54, + "lossPct": 0, + "error": null + }, + "nativeStatuses": [ + "connecting", + "running", + "running", + "running", + "done testing" + ] + } + }, + { + "runId": "ros1-enabled-receive-1791386263106", + "direction": "receive", + "durationSec": 3, + "http": 200, + "ok": true, + "result": { + "runId": "ros1-enabled-receive-1791386263106", + "createdAt": "2026-10-07T15:17:49.338Z", + "protocol": "tcp", + "direction": "receive", + "txAvgMbps": null, + "rxAvgMbps": 1454.885984, + "afterBtPing": { + "rttMs": 53, + "lossPct": 0, + "error": null + }, + "nativeStatuses": [ + "connecting", + "running", + "running", + "running", + "done testing" + ] + } + }, + { + "runId": "ros1-enabled-both-1791386273296", + "direction": "both", + "durationSec": 3, + "http": 200, + "ok": true, + "result": { + "runId": "ros1-enabled-both-1791386273296", + "createdAt": "2026-10-07T15:17:59.933Z", + "protocol": "tcp", + "direction": "both", + "txAvgMbps": 1124.95272, + "rxAvgMbps": 863.660264, + "afterBtPing": { + "rttMs": 53, + "lossPct": 0, + "error": null + }, + "nativeStatuses": [ + "connecting", + "running", + "running", + "running", + "done testing" + ] + } + } + ], + "historyHttp": 200, + "history": [ + { + "id": "ros1-enabled-both-1791386273296", + "srcServerId": "1", + "dstServerId": "2", + "protocol": "tcp", + "direction": "both", + "durationSec": 3, + "status": "done", + "txAvgMbps": 1124.95272, + "rxAvgMbps": 863.660264, + "createdAt": "2026-10-07T15:17:59.933Z", + "afterBtPing": { + "rttMs": 53, + "lossPct": 0, + "error": null + } + }, + { + "id": "ros1-enabled-receive-1791386263106", + "srcServerId": "1", + "dstServerId": "2", + "protocol": "tcp", + "direction": "receive", + "durationSec": 3, + "status": "done", + "txAvgMbps": null, + "rxAvgMbps": 1454.885984, + "createdAt": "2026-10-07T15:17:49.338Z", + "afterBtPing": { + "rttMs": 53, + "lossPct": 0, + "error": null + } + }, + { + "id": "ros1-enabled-transmit-1791386252808", + "srcServerId": "1", + "dstServerId": "2", + "protocol": "tcp", + "direction": "transmit", + "durationSec": 3, + "status": "done", + "txAvgMbps": 1771.4199119999998, + "rxAvgMbps": null, + "createdAt": "2026-10-07T15:17:39.083Z", + "afterBtPing": { + "rttMs": 54, + "lossPct": 0, + "error": null + } + } + ], + "ui": { + "successfulHistoryRows": 3, + "failedHistoryRow": true, + "unmeasuredDirectionUnknown": true, + "mobileFits": true, + "mockedResponses": false + } +}