diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index 12edb10a..30b19af7 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: backend4c12c55/frontend673e5ba healthy; PG-1/2/3/4/5 принятывописанныхграницах,PG-6 integratedдляодногоisolatedinstance,PG-7 realJWT/processcounts иbrowserrestore200/errorguard12.5.18 passed. PortalSSO/мультиэкземпляры/PG-8/остальные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. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md). ## Паспорт стенда @@ -125,3 +125,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove ## Локальный unknown UX — 2026-10-08 12.5.21: отдельная строка unknown/runId, сохранение snapshot и сверка по идентификатору при чтении истории. 13 браузерных тестов с HTTP-моками/typecheck/ESLint прошли; это не приёмка real browser/PG. Основной backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка и проверка обновлённых образов. Полный 12.5 открыт. + +## Real browser unknown и deployment — 2026-10-08 + +12.5.22: [real browser speed unknown](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json) подтвердил snapshot42, видимый unknown/runId, reconciliation к SQL history done, снятие предупреждения, native1/POST1/JS0/320fits. HTTP/RouterOS-моков нет; COMMIT acknowledgement fault введён на node-pg boundary, физический network disconnect не проверен. [Оба образа8782054 развёрнуты](ux-ui/acceptance/deployed-8782054-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) прошли. Основная БД не восстанавливалась, контроль сохранён. Следующий12.5.23 — ROS-8/9: preflight/late-context changes на реальном PG/native. Полный12.5 открыт. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 279c3ae7..54991a1a 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,12 +1,12 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-08: 12.5.21 завершён локально — speed unknown отображается отдельно от error, сохраняется при чтении пустой истории и сверяется по runId. Последний подтверждённый snapshot пробы сохранён. 13 браузерных тестов с HTTP-моками, frontend typecheck и ESLint прошли. Основной runtime backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. +Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт. -Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-07. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. +Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. -## Актуальная точка продолжения — 2026-10-07 +## Актуальная точка продолжения — 2026-10-08 -Этапы0–11 завершены в описанных локальных границах. Локальная часть этапа12 проверена до12.3.83: main12.4.10 —1186/1186 на9680a64, context12.4.11 —221/221 на683148d с тем же runtime. Дополнительно прошли44 чистых теста, HTTP/DI/RBAC speed API и сборки. Этап12 остаётся открытым: стенд12.5.1–3 развёрнут на161.104.46.222,bootstrap/restart/smoke проверены;CHR194.226.121.150 подключён в12.5.4;следующий12.5.5 — PG backup/restore/concurrency/права/workers и профильныеRouterOS/интеграционные сценарии. Протокол и ограничения: [внешняя приёмка](ux-ui-external-acceptance.md); точные результаты: [подробный журнал этапа12](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 и сверяет историю. Следующий12.5.23 — ROS-8/9: конфликты и изменения speed-контекста. [Протокол](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 3b384c63..49eaa0ea 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-08: 12.5.21 завершён локально — speed unknown отображается отдельно от error, сохраняется при чтении пустой истории и сверяется по runId. Последний подтверждённый snapshot пробы сохранён. 13 браузерных тестов с HTTP-моками, frontend typecheck и ESLint прошли. Основной runtime backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. +Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап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.22 — новые Docker-образы и real browser speed unknown (2026-10-08) + +Из зафиксированного source8782054078304f36cc611876af2d17f87b857f60 подготовлены отдельные frontend/backend contexts и последовательно собраны production-образы на Debian-стенде. Frontend production build и проверка TypeScript внутри Docker прошли; backend contracts/TypeScript build прошёл. Незакоммиченные изменения, .env, ключи и локальные node_modules в сборку не передавались. Образы не публиковались. + +[Real browser evidence](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json): новый frontend/backend, отдельная БД mmapp_acceptance_20261007 и Docker network. Перед командой guard проверил имя БД. Реальный CHR1→CHR2 TCP transmit3s; после настоящего COMMIT введена ошибка подтверждения на границе node-pg. HTTP502/outcome unknown/runId speed-1791425187780. UI показал «Сохранение не подтверждено» и runId, сохранил прежний TX42. Независимый SQL подтвердил одну history done с TX2353.700072/RXnull. После «Обновить» строка стала done и предупреждение исчезло; POST ровно один, nativeCalls1, JSerrors0,320px fits. [Снимок](ux-ui/screens/speed-unknown-real-320.png). Это fault injection после реального COMMIT, не физический обрыв TCP; throughput не является benchmark. + +[Deployment evidence](ux-ui/acceptance/deployed-8782054-2026-10-08.json): оба runtime теперь source8782054/version1.0.0-test.8782054, backend healthy. Backend image7862c9b4…; frontend image d22dd0f3…; full revision labels проверены. До обновления получен приватный backup1049796bytes/SHA826cad71… (только на сервере,0600). Контроль основной БД до/после совпал: servers1–2/enabledtrue, retention14, speedHistory5; migrations9. Restore основной БД не выполнялся. AUTHfalse/loopback порты сохранены. Предыдущие образы и приватная конфигурация доступны для отката на этом временном стенде. + +[После развёртывания](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) dashboard/servers/uptime-speed/settings/filters200, ПК и320px,0JSerrors/0API>=400, HTTP-моков нет. Первая попытка чтения локального URL отказала из-за завершившегося прежнего SSH-туннеля; туннель3000/8000 восстановлен, повторная проверка прошла. Временные frontend/backend/network/3018-tunnel удалены; тестовая probe acceptance-browser-speed удалена, исторический результат остался только в выделенной БД. Основной туннель и тестовый сервер оставлены для продолжения. + +PG-8 browser unknown/reconciliation принят в этих границах. PortalSSO, физический TCP fault, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. Следующий 12.5.23 — ROS-8/9: preflight409 и конкурентное изменение контекста speed-пробы на реальном PG/native. План, паспорт и протокол обновлены. Локальный коммит без push. + ## 12.5.21 — неопределённый исход speed-запуска и сверка с историей (2026-10-08) В локальной строке запуска введён status unknown: «Сохранение не подтверждено», с видимым runId; это не новый статус серверного DTO (история API по-прежнему принимает только done/error). При обновлении истории незавершённая или неподтверждённая локальная строка сохраняется, если её идентификатора нет в ответе. Подтверждённая строка с тем же runId заменяет локальную, предупреждение снимается. Unknown не подменяет последний подтверждённый snapshot карточки пробы; предупреждение показано без destructive-оформления. Автоматического повторного сетевого теста нет. Ручной новый запуск остаётся доступен; предупреждение просит проверить историю перед повтором. Состояние локальной строки не сохраняется после перезагрузки страницы. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index d9723783..6aa693dd 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.21 завершён локально — speed unknown отображается отдельно от error, сохраняется при чтении пустой истории и сверяется по runId. Последний подтверждённый snapshot пробы сохранён. 13 браузерных тестов с HTTP-моками, frontend typecheck и ESLint прошли. Основной runtime backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. +Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -1170,3 +1170,15 @@ SchedulerSnapshotError раньшеигнорировалruns[].okfalse уuptime Проверки: 13/13 Playwright (uptime-speed-data и uptime-speed-unknown) за 27.7s, включая unknown → пустая история → done/error, сохранение TX42, один POST и адаптацию 320px. Это live-ветка UI с HTTP-моками, не real PG/browser proof. Scoped frontend typecheck (tmp/tsconfig-speed-check.json, исключён старый ignored tmp build context) и ESLint изменённых файлов прошли. Существующие null/zero, malformed DTO, свежесть, независимые источники и Ping-состояния сохранены. Основной backend4c12c55/frontend673e5ba не изменён. Новые backend/frontend исправления ещё не развёрнуты. Полный 12.5 открыт. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. Локальный коммит без push. + +## 12.5.22 — новые Docker-образы и real browser speed unknown (2026-10-08) + +Из зафиксированного source8782054078304f36cc611876af2d17f87b857f60 подготовлены отдельные frontend/backend contexts и последовательно собраны production-образы на Debian-стенде. Frontend production build и проверка TypeScript внутри Docker прошли; backend contracts/TypeScript build прошёл. Незакоммиченные изменения, .env, ключи и локальные node_modules в сборку не передавались. Образы не публиковались. + +[Real browser evidence](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json): новый frontend/backend, отдельная БД mmapp_acceptance_20261007 и Docker network. Перед командой guard проверил имя БД. Реальный CHR1→CHR2 TCP transmit3s; после настоящего COMMIT введена ошибка подтверждения на границе node-pg. HTTP502/outcome unknown/runId speed-1791425187780. UI показал «Сохранение не подтверждено» и runId, сохранил прежний TX42. Независимый SQL подтвердил одну history done с TX2353.700072/RXnull. После «Обновить» строка стала done и предупреждение исчезло; POST ровно один, nativeCalls1, JSerrors0,320px fits. [Снимок](ux-ui/screens/speed-unknown-real-320.png). Это fault injection после реального COMMIT, не физический обрыв TCP; throughput не является benchmark. + +[Deployment evidence](ux-ui/acceptance/deployed-8782054-2026-10-08.json): оба runtime теперь source8782054/version1.0.0-test.8782054, backend healthy. Backend image7862c9b4…; frontend image d22dd0f3…; full revision labels проверены. До обновления получен приватный backup1049796bytes/SHA826cad71… (только на сервере,0600). Контроль основной БД до/после совпал: servers1–2/enabledtrue, retention14, speedHistory5; migrations9. Restore основной БД не выполнялся. AUTHfalse/loopback порты сохранены. Предыдущие образы и приватная конфигурация доступны для отката на этом временном стенде. + +[После развёртывания](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) dashboard/servers/uptime-speed/settings/filters200, ПК и320px,0JSerrors/0API>=400, HTTP-моков нет. Первая попытка чтения локального URL отказала из-за завершившегося прежнего SSH-туннеля; туннель3000/8000 восстановлен, повторная проверка прошла. Временные frontend/backend/network/3018-tunnel удалены; тестовая probe acceptance-browser-speed удалена, исторический результат остался только в выделенной БД. Основной туннель и тестовый сервер оставлены для продолжения. + +PG-8 browser unknown/reconciliation принят в этих границах. PortalSSO, физический TCP fault, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. Следующий 12.5.23 — ROS-8/9: preflight409 и конкурентное изменение контекста speed-пробы на реальном PG/native. План, паспорт и протокол обновлены. Локальный коммит без push. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index b9b0a158..a9cd9295 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -1,6 +1,6 @@ -# Тестовый сервер UX/UI — 2026-10-07 +# Тестовый сервер UX/UI — 2026-10-08 -Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активныйbackendsource4c12c55c9d4ca1fda2b901193a4969ba0e33e797/version1.0.0-test.4c12c55;frontendsource673e5ba остаётся прежним. +Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активные backend/frontend source8782054078304f36cc611876af2d17f87b857f60/version1.0.0-test.8782054. Backend healthy; оба образа обновлены в12.5.22. | Параметр | Проверенное состояние | | --- | --- | @@ -14,7 +14,7 @@ | PostgreSQL | postgres:18-alpine,18.6;mmapp-test-postgres healthy;SELECT version() passed | | Данные | Отдельный Compose project mmapp-test,том mmapp-test_mmapp-pgdata и каталог ./data | | Доступ | PostgreSQL не публикуется;frontend3000/backend8000 привязаны к127.0.0.1 после запуска | -| Образы приложения | mmapp-test/backend:ux-4c12c55 и mmapp-test/frontend:ux-673e5ba;запущены | +| Образы приложения | mmapp-test/backend:ux-8782054 и mmapp-test/frontend:ux-8782054;запущены | Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example). @@ -133,3 +133,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222 ## Локальный unknown UX — 2026-10-08 12.5.21: отдельная строка unknown/runId, сохранение snapshot и сверка по идентификатору при чтении истории. 13 браузерных тестов с HTTP-моками/typecheck/ESLint прошли; это не приёмка real browser/PG. Основной backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка и проверка обновлённых образов. Полный 12.5 открыт. + +## Обновление обоих образов — 2026-10-08 + +12.5.22: [deployment](ux-ui/acceptance/deployed-8782054-2026-10-08.json), [real browser speed unknown](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json). Backend/frontend8782054, backend healthy. MMAPP_IMAGE_TAG и BACKEND_IMAGE_TAG равны ux-8782054. Приватный pre-update backup и конфигурация сохранены только на сервере; основная БД не восстанавливалась, контроль совпал. Temporarycontainers/network/3018 закрыты; основной SSH-туннель3000/8000 восстановлен. AUTHfalse/loopback ports сохранены. Следующий12.5.23 — ROS-8/9 на выделенной БД. diff --git a/docs/ux-ui/acceptance/browser-speed-unknown-2026-10-08.json b/docs/ux-ui/acceptance/browser-speed-unknown-2026-10-08.json new file mode 100644 index 00000000..6fd1e03b --- /dev/null +++ b/docs/ux-ui/acceptance/browser-speed-unknown-2026-10-08.json @@ -0,0 +1,36 @@ +{ + "date": "2026-10-08", + "source": "8782054078304f36cc611876af2d17f87b857f60", + "database": "mmapp_acceptance_20261007", + "httpMocks": false, + "routerOsMocks": false, + "native": "CHR1→CHR2 TCP transmit 3s", + "receipt": { + "status": 502, + "outcome": "unknown", + "runId": "speed-1791425187780" + }, + "unknownRowVisible": true, + "snapshot42Preserved": true, + "mobileFits": true, + "history": [ + { + "id": "speed-1791425187780", + "status": "done", + "tx_avg_mbps": 2353.700072, + "rx_avg_mbps": null + } + ], + "reconciledToDone": true, + "warningCleared": true, + "nativeCalls": 1, + "postStatuses": [ + 502 + ], + "pageErrors": [], + "limits": [ + "Fault injected at node-pg boundary AFTER real COMMIT; not a physical TCP disconnect", + "Isolated database and Docker network; main database not restored", + "Auth disabled on SSH-only test stand; Portal SSO not covered" + ] +} diff --git a/docs/ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json b/docs/ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json new file mode 100644 index 00000000..4a76323b --- /dev/null +++ b/docs/ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json @@ -0,0 +1,34 @@ +{ + "date": "2026-10-08", + "source": "8782054078304f36cc611876af2d17f87b857f60", + "httpMocks": false, + "pages": [ + { + "path": "/dashboard", + "status": 200, + "mobileFits": true + }, + { + "path": "/servers", + "status": 200, + "mobileFits": true + }, + { + "path": "/uptime?tab=speed", + "status": 200, + "mobileFits": true + }, + { + "path": "/settings", + "status": 200, + "mobileFits": true + }, + { + "path": "/filters", + "status": 200, + "mobileFits": true + } + ], + "pageErrors": [], + "badApiResponses": [] +} diff --git a/docs/ux-ui/acceptance/deployed-8782054-2026-10-08.json b/docs/ux-ui/acceptance/deployed-8782054-2026-10-08.json new file mode 100644 index 00000000..64ba7a51 --- /dev/null +++ b/docs/ux-ui/acceptance/deployed-8782054-2026-10-08.json @@ -0,0 +1,44 @@ +{ + "date": "2026-10-08", + "source": "8782054078304f36cc611876af2d17f87b857f60", + "health": { + "status": "ok", + "timestamp": "2026-10-08T02:08:07.040Z", + "version": "1.0.0-test.8782054", + "eventLoopDelayMs": 20, + "flowWorker": { + "alive": false, + "bound": false, + "pendingSize": 0, + "dropped": 0, + "packetsReceived": 0 + } + }, + "controlsMatch": true, + "controls": { + "servers": [ + { + "id": 1, + "host": "194.226.121.150", + "enabled": true + }, + { + "id": 2, + "host": "104.165.244.7", + "enabled": true + } + ], + "retentionDays": 14, + "speedHistoryCount": 5 + }, + "backendImageId": "sha256:7862c9b40a934914110da58a814d3b4770e923016b87f36f9252f8050961e79a", + "frontendImageId": "sha256:d22dd0f3962edeac73af63df72520fe9966d5a81aec0b8b4ddf4fab1a0ddf196", + "backendHealth": "healthy", + "composeSha256": "3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f", + "preUpdateBackup": { + "bytes": 1049796, + "sha256": "826cad71918b661284b8a0ed2ca599b12f3183ed9923e724798876bfc9cf7b39" + }, + "mainRestorePerformed": false, + "authRequired": false +} \ No newline at end of file diff --git a/docs/ux-ui/screens/speed-unknown-real-320.png b/docs/ux-ui/screens/speed-unknown-real-320.png new file mode 100644 index 00000000..410a584e Binary files /dev/null and b/docs/ux-ui/screens/speed-unknown-real-320.png differ