diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index 38df7c39..d96adbf9 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -1,6 +1,6 @@ # UX/UI: протокол внешней приёмки 12.5 -Статус на2026-10-08: backend/frontend8782054, backend healthy. PG-1/2/3/4/5 приняты в описанных границах, PG-6 integrated для одного isolated instance, PG-7 real JWT/processcounts и browser restore passed. PG-8 real PG/native и browser unknown→history done приняты с fault injection после настоящего COMMIT. ROS-8/9 real API/SQL/native приняты в границах12.5.23; browser race открыт. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md). +Статус на2026-10-08: backend/frontend8782054, backend healthy. PG-1/2/3/4/5 приняты в описанных границах, PG-6 integrated для одного isolated instance, PG-7 real JWT/processcounts и browser restore passed. PG-8 real PG/native и browser unknown→history done приняты с fault injection после настоящего COMMIT. ROS-8/9 real API/SQL/native приняты в границах12.5.23; browser pair/duration change и delete приняты в12.5.24. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md). ## Паспорт стенда @@ -133,3 +133,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove ## Real speed context — 2026-10-08 12.5.23 [ROS-8/9 API/SQL/native evidence](ux-ui/acceptance/speed-context-2026-10-08.json): семь preflight409/bandwidth0, enable/reorder сохраняют fixture0; три TCPtransmit3s теста при late change/delete/row lock. Фактическая history done сохранена без stale probe association, новый snapshot null. Scheduler admission закрыт в isolated process до fixture setup; основной backend8782054healthy/история5 сохранены, testprobes0/containerудалён. Browser race и multi-instance открыты. Следующий12.5.24 — browser-смена контекста вторым клиентом. + +## Browser speed context — 2026-10-08 + +12.5.24 [real browser/native](ux-ui/acceptance/browser-speed-context-2026-10-08.json): смена пары/длительности и удаление независимым HTTP-клиентом до native response; UI refresh/reload сохраняет новый контекст без старых скоростей, history done остаётся. Принятые native2/POST[200,200]/JS0/320fits, без HTTP/RouterOS-моков. Ещё один native command выполнен в подготовительном прогоне с неверным UI selector expectation; application auto retry отсутствует. Temporarycontainers/network/3018 закрыты, testprobe удалена; runtime8782054/основнаяhistory5 сохранены. Следующий12.5.25 — ROS-2 authentication failure. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index a362e172..3445fe75 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,12 +1,12 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-08: 12.5.23 завершён — ROS-8/9 проверены на реальном PG/native в выделенной БД: семь preflight409 без bandwidth-команды, zero/enable/reorder, поздняя смена и удаление пробы, два писателя под row lock. История фактического запуска сохранена без stale probe association; новый snapshot неизвестен. Runtime8782054 healthy. Следующий12.5.24 — browser-сценарий изменения speed-контекста вторым клиентом во время теста. Полный12.5 открыт. +Актуальное продолжение 2026-10-08: 12.5.24 завершён — real browser/native подтвердил смену пары и длительности вторым клиентом и удаление пробы во время теста. После refresh/reload новый контекст без старого замера, history done с фактическим маршрутом сохранена; 320px/JS0/без автоповтора. Runtime8782054 исправен. Следующий12.5.25 — ROS-2: реальный отказ bandwidth-аутентификации, сохранение snapshot и согласованная error-история. Полный12.5 открыт. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. ## Актуальная точка продолжения — 2026-10-08 -Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. ROS-8/9 API/SQL/native приняты в описанных границах. Следующий12.5.24 — browser-смена контекста вторым клиентом во время native-теста. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения. +Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. ROS-8/9 API/SQL/native приняты в описанных границах. Browser-смена пары/длительности и удаление во время native-теста приняты в12.5.24. Следующий12.5.25 — ROS-2: отказ bandwidth-аутентификации и сохранение результата/ошибки. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения. Реальные 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 71cf74c2..d5d0bc41 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-08: 12.5.23 завершён — ROS-8/9 проверены на реальном PG/native в выделенной БД: семь preflight409 без bandwidth-команды, zero/enable/reorder, поздняя смена и удаление пробы, два писателя под row lock. История фактического запуска сохранена без stale probe association; новый snapshot неизвестен. Runtime8782054 healthy. Следующий12.5.24 — browser-сценарий изменения speed-контекста вторым клиентом во время теста. Полный12.5 открыт. +Актуальное продолжение 2026-10-08: 12.5.24 завершён — real browser/native подтвердил смену пары и длительности вторым клиентом и удаление пробы во время теста. После refresh/reload новый контекст без старого замера, history done с фактическим маршрутом сохранена; 320px/JS0/без автоповтора. Runtime8782054 исправен. Следующий12.5.25 — ROS-2: реальный отказ bandwidth-аутентификации, сохранение snapshot и согласованная error-история. Полный12.5 открыт. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -34,6 +34,18 @@ | 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.24 — browser speed при изменении контекста вторым клиентом (2026-10-08) + +[Real browser evidence](ux-ui/acceptance/browser-speed-context-2026-10-08.json): production backend/frontend8782054, выделенная БД mmapp_acceptance_20261007, изолированная Docker network и SSH3018. Guard до операции проверил имя БД. Первый browser context использовал настоящую кнопку «Запустить» в uptime speed; независимый второй context отправлял реальные HTTP PUT каталога. HTTP/RouterOS-моков нет. Scheduler admission закрыт только в isolated backend, чтобы сохранение каталога не запускало фоновый speed job. + +Два принятых сценария: смена пары1→2 на2→1 и длительности3→4; удаление пробы. Второй клиент завершил изменение до получения native response (проверено счётчиком/finished в wrapper, который возвращает настоящий RouterOS ответ). В обоих случаях исходный CHR1→CHR2 TCP transmit3s завершилсяHTTP200; history done сохранила фактическую пару и длительность3, probeIdnull. После «Обновить» новая карточка показывала4s без прежнего значения Мбит/с; после удаления показано «Нет speed-проб», история остаётся. Reload сохранил оба результата,320px fits. Принятая матрица: nativeCalls2, POSTstatuses[200,200], JSerrors0, автоповтора нет. + +Первый подготовительный прогон выполнил ещё одну короткую команду, затем тест отказал из-за неверного ожидания подписи «Последний запуск: —», которой в текущей карточке нет. Исправлено ожидание harness: отсутствие старого замера. Это ручной повтор валидации; всего на временном стенде три native commands, два в принятой матрице. Продуктовый код не менялся, новый build/deployment не требовался. Значения TX2938.274608/2769.82096 и RXnull — функциональная проверка, не benchmark. + +Temporaryfrontend/backend/network удалены,3018туннель закрыт, fixtureprobe удалена; history сохранена только в выделенной БД. Основной backend healthy/version1.0.0-test.8782054, история5 без изменений, основной SSH-туннель сохранён. Browser ROS-8/9 принят в этих двух сценариях; второй клиент менял каталог через HTTP, не через форму редактирования. Полная матрица поздней смены каждого поля, PortalSSO и multi-instance остаются открытыми. + +Следующий12.5.25 — ROS-2: реальный отказ bandwidth-аутентификации и проверка snapshot/error history в выделенной БД, без изменения учётных записей RouterOS. План, паспорт и протокол обновлены; локальный коммит без push. + ## 12.5.23 — реальный конфликт speed-контекста и конкурентные записи (2026-10-08) [Evidence ROS-8/9](ux-ui/acceptance/speed-context-2026-10-08.json): актуальный backend image/source8782054, PostgreSQL18.6/mmapp_acceptance_20261007, реальные HTTP PUT/POST и CHR1→CHR2. HTTP/RouterOS ответы не подменялись; wrapper только считал bandwidth-команды и отмечал их начало/окончание. Перед fixture setup проверены имя выделенной БД и отсутствие проб. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index c3907736..3e87381c 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-08: 12.5.23 завершён — ROS-8/9 проверены на реальном PG/native в выделенной БД: семь preflight409 без bandwidth-команды, zero/enable/reorder, поздняя смена и удаление пробы, два писателя под row lock. История фактического запуска сохранена без stale probe association; новый snapshot неизвестен. Runtime8782054 healthy. Следующий12.5.24 — browser-сценарий изменения speed-контекста вторым клиентом во время теста. Полный12.5 открыт. +Актуальное продолжение 2026-10-08: 12.5.24 завершён — real browser/native подтвердил смену пары и длительности вторым клиентом и удаление пробы во время теста. После refresh/reload новый контекст без старого замера, history done с фактическим маршрутом сохранена; 320px/JS0/без автоповтора. Runtime8782054 исправен. Следующий12.5.25 — ROS-2: реальный отказ bandwidth-аутентификации, сохранение snapshot и согласованная error-история. Полный12.5 открыт. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -1196,3 +1196,15 @@ PG-8 browser unknown/reconciliation принят в этих границах. P После принятой матрицы удалены временные пробы, count0; контейнер завершён и удалён --rm, locks освобождены, scheduler/listener/background/pool штатно закрыты. Исторические результаты остались только в выделенной БД. Основной backend8782054healthy/version1.0.0-test.8782054 и пять записей основной speed-истории сохранены. Продуктовый код не менялся; повторная сборка не требовалась. ROS-8/9 приняты в перечисленных API/SQL/native границах: отдельные поля проверены preflight, поздняя смена объединяет параметры, row lock — один backend. Browser race, каждый поздний параметр по отдельности и multi-instance не проверены. Следующий12.5.24 — browser-сценарий смены speed-контекста вторым клиентом во время теста. Полный12.5 открыт; план/паспорт/протокол обновлены, локальный коммит без push. + +## 12.5.24 — browser speed при изменении контекста вторым клиентом (2026-10-08) + +[Real browser evidence](ux-ui/acceptance/browser-speed-context-2026-10-08.json): production backend/frontend8782054, выделенная БД mmapp_acceptance_20261007, изолированная Docker network и SSH3018. Guard до операции проверил имя БД. Первый browser context использовал настоящую кнопку «Запустить» в uptime speed; независимый второй context отправлял реальные HTTP PUT каталога. HTTP/RouterOS-моков нет. Scheduler admission закрыт только в isolated backend, чтобы сохранение каталога не запускало фоновый speed job. + +Два принятых сценария: смена пары1→2 на2→1 и длительности3→4; удаление пробы. Второй клиент завершил изменение до получения native response (проверено счётчиком/finished в wrapper, который возвращает настоящий RouterOS ответ). В обоих случаях исходный CHR1→CHR2 TCP transmit3s завершилсяHTTP200; history done сохранила фактическую пару и длительность3, probeIdnull. После «Обновить» новая карточка показывала4s без прежнего значения Мбит/с; после удаления показано «Нет speed-проб», история остаётся. Reload сохранил оба результата,320px fits. Принятая матрица: nativeCalls2, POSTstatuses[200,200], JSerrors0, автоповтора нет. + +Первый подготовительный прогон выполнил ещё одну короткую команду, затем тест отказал из-за неверного ожидания подписи «Последний запуск: —», которой в текущей карточке нет. Исправлено ожидание harness: отсутствие старого замера. Это ручной повтор валидации; всего на временном стенде три native commands, два в принятой матрице. Продуктовый код не менялся, новый build/deployment не требовался. Значения TX2938.274608/2769.82096 и RXnull — функциональная проверка, не benchmark. + +Temporaryfrontend/backend/network удалены,3018туннель закрыт, fixtureprobe удалена; history сохранена только в выделенной БД. Основной backend healthy/version1.0.0-test.8782054, история5 без изменений, основной SSH-туннель сохранён. Browser ROS-8/9 принят в этих двух сценариях; второй клиент менял каталог через HTTP, не через форму редактирования. Полная матрица поздней смены каждого поля, PortalSSO и multi-instance остаются открытыми. + +Следующий12.5.25 — ROS-2: реальный отказ bandwidth-аутентификации и проверка snapshot/error history в выделенной БД, без изменения учётных записей RouterOS. План, паспорт и протокол обновлены; локальный коммит без push. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index bf0f0911..83df7dca 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -141,3 +141,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222 ## Real speed context — 2026-10-08 12.5.23 [ROS-8/9 API/SQL/native evidence](ux-ui/acceptance/speed-context-2026-10-08.json): семь preflight409/bandwidth0, enable/reorder сохраняют fixture0; три TCPtransmit3s теста при late change/delete/row lock. Фактическая history done сохранена без stale probe association, новый snapshot null. Scheduler admission закрыт в isolated process до fixture setup; основной backend8782054healthy/история5 сохранены, testprobes0/containerудалён. Browser race и multi-instance открыты. Следующий12.5.24 — browser-смена контекста вторым клиентом. + +## Browser speed context — 2026-10-08 + +12.5.24 [real browser/native](ux-ui/acceptance/browser-speed-context-2026-10-08.json): смена пары/длительности и удаление независимым HTTP-клиентом до native response; UI refresh/reload сохраняет новый контекст без старых скоростей, history done остаётся. Принятые native2/POST[200,200]/JS0/320fits, без HTTP/RouterOS-моков. Ещё один native command выполнен в подготовительном прогоне с неверным UI selector expectation; application auto retry отсутствует. Temporarycontainers/network/3018 закрыты, testprobe удалена; runtime8782054/основнаяhistory5 сохранены. Следующий12.5.25 — ROS-2 authentication failure. diff --git a/docs/ux-ui/acceptance/browser-speed-context-2026-10-08.json b/docs/ux-ui/acceptance/browser-speed-context-2026-10-08.json new file mode 100644 index 00000000..42f72891 --- /dev/null +++ b/docs/ux-ui/acceptance/browser-speed-context-2026-10-08.json @@ -0,0 +1,100 @@ +{ + "date": "2026-10-08", + "source": "8782054078304f36cc611876af2d17f87b857f60", + "database": "mmapp_acceptance_20261007", + "httpMocks": false, + "routerOsMocks": false, + "cases": [ + { + "case": "change", + "status": 200, + "mutationBeforeNativeResponse": true, + "actualHistory": { + "id": "speed-1791426153788", + "probeId": null, + "srcServerId": "1", + "dstServerId": "2", + "srcInterface": "", + "dstInterface": "", + "protocol": "tcp", + "direction": "transmit", + "durationSec": 3, + "txAvgMbps": 2938.2746079999997, + "rxAvgMbps": null, + "status": "done", + "error": null, + "createdAt": "2026-10-08T02:22:39.377Z", + "srcAddress": "194.226.121.150", + "dstAddress": "104.165.244.7", + "srcInterfaceAddress": null, + "dstInterfaceAddress": null, + "afterBtPing": { + "rttMs": 53, + "lossPct": 0, + "error": null + } + }, + "newContextNotOverwritten": true, + "reloadPreserved": true, + "mobileFits": true + }, + { + "case": "delete", + "status": 200, + "mutationBeforeNativeResponse": true, + "actualHistory": { + "id": "speed-1791426165523", + "probeId": null, + "srcServerId": "1", + "dstServerId": "2", + "srcInterface": "", + "dstInterface": "", + "protocol": "tcp", + "direction": "transmit", + "durationSec": 3, + "txAvgMbps": 2769.82096, + "rxAvgMbps": null, + "status": "done", + "error": null, + "createdAt": "2026-10-08T02:22:51.142Z", + "srcAddress": "194.226.121.150", + "dstAddress": "104.165.244.7", + "srcInterfaceAddress": null, + "dstInterfaceAddress": null, + "afterBtPing": { + "rttMs": 53, + "lossPct": 0, + "error": null + } + }, + "newContextNotOverwritten": true, + "reloadPreserved": true, + "mobileFits": true + } + ], + "nativeCalls": 2, + "postStatuses": [ + 200, + 200 + ], + "pageErrors": [], + "limits": [ + "First client uses UI; independent second browser context uses real HTTP PUT", + "Scheduler admission paused in isolated backend only", + "Two short real CHR TCP transmit3s tests; not benchmark", + "Auth false, no Portal SSO or multi-instance proof" + ], + "exploration": { + "nativeCallsBeforeAcceptedMatrix": 1, + "totalNativeCallsOnTemporaryStand": 3, + "reason": "Initial test expected a caption absent from current UI; corrected assertion verifies absence of old measurement. Manual validation rerun, no application automatic retry." + }, + "cleanup": { + "testProbeRemoved": true, + "temporaryContainersAndNetworkRemoved": true, + "temporaryTunnel3018Closed": true, + "mainHistoryCountUnchanged": 5, + "mainVersion": "1.0.0-test.8782054", + "mainHealth": "ok" + } +}