chore(tests): подтвердить общую регрессию интерфейса и backend
This commit is contained in:
1 parent
b525e70655
commit
efdfc6f224
13 files changed
+606
-14
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# UX/UI: протокол внешней приёмки 12.5
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md).
|
||||
|
||||
@@ -696,7 +696,7 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
|
||||
@@ -2340,3 +2340,17 @@ Backend ux-peak194/version1.0.0-test.peak194 развёрнут, frontend ux-pea
|
||||
Протоколы: [SQL](ux-ui/acceptance/traffic-lock194-sql194-result.json), [source](ux-ui/acceptance/traffic-lock194-source194-result.json), [compiled](ux-ui/acceptance/traffic-lock194-compiled194-result.json), [runtime](ux-ui/acceptance/traffic-lock194-runtime194-result.json), [API](ux-ui/acceptance/traffic-lock194-peak194-api-result.json), [live UI](ux-ui/acceptance/traffic-collection-lock-deployed-2026-10-13.json).
|
||||
|
||||
Границы: принято отсутствие параллельного traffic run при двух исправных process/session в одной БД, не координация всех writers приложения. Физическая потеря lock connection во время native GET/записи других pool connections не проверена; session lock не является fencing token. Не считать этот блок полной multi-instance/restore-drain/failover приёмкой. Следующий шаг — закончить и разобрать общую E2E192; затем отдельные multi-instance failures и внешние зависимости матрицы.12.5 открыта.
|
||||
|
||||
## 12.5.192 — общая регрессия после накопленных изменений (2026-10-13)
|
||||
|
||||
Завершена одна согласованная общая проверка:24 профиля backend из test:all прошли321237ms на собственной временной PostgreSQL БД с ограниченной ролью. Набор выполнялся на источнике191; backend193 request cache и194 collection lock после этого отдельно приняты актуальными полными traffic-rate SQL-профилями, build/source/compiled/API/live UI. Общие неизменённые разделы повторно не запускались. Протокол не приравнивает количество profiles к числу assertions или native операций.
|
||||
|
||||
В исходном общем прогоне были3 реальные skip-сообщения: Monthly SQL, IPv6 UDP/worker/SQL и replay сохранённого CHR Ping payload. Они проверены отдельно: Monthly на собственной БД mm_accept_149_* подтвердил5 точных месячных интервалов, leap-year и exclusion outside rows; IPv6 на собственной mm_accept_144_* прошёл через собранный production worker с UDP/SQL/minute-hour-day totals и shutdown; Ping replay использовал сохранённый публичный payload без новых команд CHR. Первая IPv6 попытка на TypeScript worker harness не загрузила src/db/index.js; это ошибка запуска harness, исправлена запуском того же теста в JavaScript с реальным compiled worker. Не скрывать исходный отказ и не выдавать loopback UDP за public IPv6 WAN. DB/roles/containers всех проверок удалены, production DSN не копировался.
|
||||
|
||||
Frontend:59 lib test files прошли с одной исправленной устаревшей проверкой dashboard-readers.test.ts. Ранее тест запрещал series:[null]; актуальная модель Ping намеренно допускает пропуски и переводит legacy measurements в unknown. Исправлен только тест: unknown/null проверен положительно, отрицательная/NaN series остаются rejected. Повторно прошли2 reader tests и4 соседних probe tests; runtime source/семантика не менялись. Scoped ESLint passed.
|
||||
|
||||
Общий настроенный браузерный набор:1286 уникальных сценариев в217 файлах passed1936347ms (32.3min), unexpected0/skipped0/flaky0. Включены77 сценариев трафика; их повторные focused/full runs не прибавляются к1286. Настроенные testIgnore context suites и внешние native сценарии в эту цифру не входят. Промежуточный сигнал ошибки по форматированному выводу не подтвердился: итоговый JSON содержит0 unexpected.125 исходно чистых отслеживаемых screenshots, перезаписанных тестами, восстановлены;8 исходно изменённых пользовательских PNG сохранены отдельно и восстановлены с проверкой SHA256. Пользовательские skills/AGENTS/config не включались в commits.
|
||||
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-13. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
## Актуальная точка продолжения — 2026-10-13
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
Этапы0–11 завершены в локальных границах журнала. История выполненных внешних блоков и доказательства сохранены в [журнале](ux-ui-stage-12.md) и [протоколе](ux-ui-external-acceptance.md). Реальная Telegram доставка, Portal SSO, multi-instance и оставшиеся профильные сетевые ограничения открыты.
|
||||
|
||||
@@ -371,6 +371,6 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
+16
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
|
||||
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–191 и193–194;192 в проверке и ограничения ниже. Runtime backend ux-peak194/frontend ux-peak191. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–194 и ограничения ниже. Runtime backend ux-peak194/frontend ux-peak191. |
|
||||
|
||||
## 12.5.194 — трафик: координация опроса разных backend-процессов (2026-10-13)
|
||||
|
||||
@@ -64,6 +64,20 @@ Backend build passed. Production backend ux-peak193/version1.0.0-test.peak193 р
|
||||
|
||||
Общая регрессия192 начата на backend191; её24 backend профиля passed, текущий cache193 отдельно принят полным traffic-rate профилем. Не повторять общие неизменённые разделы. Полный браузерный прогон1286 ещё выполняется — не считать его завершённым. Исправлена ссылка live UI191: его evidence теперь хранится отдельно от исторического190, исходный протокол190 восстановлен. Следующий шаг — завершить192, разобрать ошибки полного E2E и восстановить только снимки текущего тестового запуска с сохранением8 исходно изменённых пользовательских PNG. Затем multi-instance/scale и внешние группы матрицы.12.5 открыта.
|
||||
|
||||
## 12.5.192 — общая регрессия после накопленных изменений (2026-10-13)
|
||||
|
||||
Завершена одна согласованная общая проверка:24 профиля backend из test:all прошли321237ms на собственной временной PostgreSQL БД с ограниченной ролью. Набор выполнялся на источнике191; backend193 request cache и194 collection lock после этого отдельно приняты актуальными полными traffic-rate SQL-профилями, build/source/compiled/API/live UI. Общие неизменённые разделы повторно не запускались. Протокол не приравнивает количество profiles к числу assertions или native операций.
|
||||
|
||||
В исходном общем прогоне были3 реальные skip-сообщения: Monthly SQL, IPv6 UDP/worker/SQL и replay сохранённого CHR Ping payload. Они проверены отдельно: Monthly на собственной БД mm_accept_149_* подтвердил5 точных месячных интервалов, leap-year и exclusion outside rows; IPv6 на собственной mm_accept_144_* прошёл через собранный production worker с UDP/SQL/minute-hour-day totals и shutdown; Ping replay использовал сохранённый публичный payload без новых команд CHR. Первая IPv6 попытка на TypeScript worker harness не загрузила src/db/index.js; это ошибка запуска harness, исправлена запуском того же теста в JavaScript с реальным compiled worker. Не скрывать исходный отказ и не выдавать loopback UDP за public IPv6 WAN. DB/roles/containers всех проверок удалены, production DSN не копировался.
|
||||
|
||||
Frontend:59 lib test files прошли с одной исправленной устаревшей проверкой dashboard-readers.test.ts. Ранее тест запрещал series:[null]; актуальная модель Ping намеренно допускает пропуски и переводит legacy measurements в unknown. Исправлен только тест: unknown/null проверен положительно, отрицательная/NaN series остаются rejected. Повторно прошли2 reader tests и4 соседних probe tests; runtime source/семантика не менялись. Scoped ESLint passed.
|
||||
|
||||
Общий настроенный браузерный набор:1286 уникальных сценариев в217 файлах passed1936347ms (32.3min), unexpected0/skipped0/flaky0. Включены77 сценариев трафика; их повторные focused/full runs не прибавляются к1286. Настроенные testIgnore context suites и внешние native сценарии в эту цифру не входят. Промежуточный сигнал ошибки по форматированному выводу не подтвердился: итоговый JSON содержит0 unexpected.125 исходно чистых отслеживаемых screenshots, перезаписанных тестами, восстановлены;8 исходно изменённых пользовательских PNG сохранены отдельно и восстановлены с проверкой SHA256. Пользовательские skills/AGENTS/config не включались в commits.
|
||||
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
|
||||
## 12.5.191 — подтверждённый общий пик привязок: реализация и приёмка (2026-10-13)
|
||||
|
||||
Исправлен baseline ниже: индивидуальные максимумы в разные моменты больше не складываются. A=100Mbps на первой волне и B=100Mbps на следующей дают общий пик100, совпадающие интервалы —200. Сумма byte deltas/учтённый объём сохранена. Пик является максимумом подтверждённых средних скоростей соседних счётчиков за совпадающие интервалы, а не мгновенным максимумом линии или максимумом chart bucket average.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Оставшаяся внешняя приёмка — 2026-10-13
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
Это актуальная матрица после 12.5.194. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
|
||||
## Следующая последовательность — 2026-10-13
|
||||
|
||||
1. **192 — общая регрессия:** завершить полный E2E1286, разобрать ошибки; backend24 профиля/отдельные SQL controls и frontend59 test files уже проверены.191 temporal peak и193 request cache приняты, runtime backend194/frontend191;194 cross-process traffic skip/recovery принят в указанных границах.
|
||||
2. **Профильный контроль:** проверить изменённые readers/API/UI и актуальный runtime; полную регрессию выполнить один раз после согласованного завершения доработок.
|
||||
1. **195 — failure/recovery межпроцессного опроса:** проверить аварийное завершение holder процесса и неопределённость lock connection в собственной БД, не приравнивая session lock к fencing. Общая192 E2E1286/backend24 профиля/frontend59 files принята; runtime backend194/frontend191.
|
||||
2. **Профильный контроль:** для новых изменений выполнять затронутые SQL/API/UI проверки. Общая регрессия192 выполнена; не повторять её без изменений общей основы или нового основания.
|
||||
3. **Внешние зависимости:** Portal issuer/login/revoke, Telegram bot/chat/разрешённое сообщение, клиентские ОС, независимые WAN/public IPv6 и scale/multi-instance — отдельные группы по таблице выше. Ограничения текущего стенда не превращать в обещание приёмки всех конфигураций.
|
||||
|
||||
Каждый блок: конкретный результат → профильные проверки → независимая сверка cleanup → датированная запись → локальный коммит без push. Не повторять уже принятые сценарии без изменения исходников или нового выявленного риска.
|
||||
@@ -1256,3 +1256,17 @@ Backend ux-peak194/version1.0.0-test.peak194 развёрнут, frontend ux-pea
|
||||
Протоколы: [SQL](ux-ui/acceptance/traffic-lock194-sql194-result.json), [source](ux-ui/acceptance/traffic-lock194-source194-result.json), [compiled](ux-ui/acceptance/traffic-lock194-compiled194-result.json), [runtime](ux-ui/acceptance/traffic-lock194-runtime194-result.json), [API](ux-ui/acceptance/traffic-lock194-peak194-api-result.json), [live UI](ux-ui/acceptance/traffic-collection-lock-deployed-2026-10-13.json).
|
||||
|
||||
Границы: принято отсутствие параллельного traffic run при двух исправных process/session в одной БД, не координация всех writers приложения. Физическая потеря lock connection во время native GET/записи других pool connections не проверена; session lock не является fencing token. Не считать этот блок полной multi-instance/restore-drain/failover приёмкой. Следующий шаг — закончить и разобрать общую E2E192; затем отдельные multi-instance failures и внешние зависимости матрицы.12.5 открыта.
|
||||
|
||||
## 12.5.192 — общая регрессия после накопленных изменений (2026-10-13)
|
||||
|
||||
Завершена одна согласованная общая проверка:24 профиля backend из test:all прошли321237ms на собственной временной PostgreSQL БД с ограниченной ролью. Набор выполнялся на источнике191; backend193 request cache и194 collection lock после этого отдельно приняты актуальными полными traffic-rate SQL-профилями, build/source/compiled/API/live UI. Общие неизменённые разделы повторно не запускались. Протокол не приравнивает количество profiles к числу assertions или native операций.
|
||||
|
||||
В исходном общем прогоне были3 реальные skip-сообщения: Monthly SQL, IPv6 UDP/worker/SQL и replay сохранённого CHR Ping payload. Они проверены отдельно: Monthly на собственной БД mm_accept_149_* подтвердил5 точных месячных интервалов, leap-year и exclusion outside rows; IPv6 на собственной mm_accept_144_* прошёл через собранный production worker с UDP/SQL/minute-hour-day totals и shutdown; Ping replay использовал сохранённый публичный payload без новых команд CHR. Первая IPv6 попытка на TypeScript worker harness не загрузила src/db/index.js; это ошибка запуска harness, исправлена запуском того же теста в JavaScript с реальным compiled worker. Не скрывать исходный отказ и не выдавать loopback UDP за public IPv6 WAN. DB/roles/containers всех проверок удалены, production DSN не копировался.
|
||||
|
||||
Frontend:59 lib test files прошли с одной исправленной устаревшей проверкой dashboard-readers.test.ts. Ранее тест запрещал series:[null]; актуальная модель Ping намеренно допускает пропуски и переводит legacy measurements в unknown. Исправлен только тест: unknown/null проверен положительно, отрицательная/NaN series остаются rejected. Повторно прошли2 reader tests и4 соседних probe tests; runtime source/семантика не менялись. Scoped ESLint passed.
|
||||
|
||||
Общий настроенный браузерный набор:1286 уникальных сценариев в217 файлах passed1936347ms (32.3min), unexpected0/skipped0/flaky0. Включены77 сценариев трафика; их повторные focused/full runs не прибавляются к1286. Настроенные testIgnore context suites и внешние native сценарии в эту цифру не входят. Промежуточный сигнал ошибки по форматированному выводу не подтвердился: итоговый JSON содержит0 unexpected.125 исходно чистых отслеживаемых screenshots, перезаписанных тестами, восстановлены;8 исходно изменённых пользовательских PNG сохранены отдельно и восстановлены с проверкой SHA256. Пользовательские skills/AGENTS/config не включались в commits.
|
||||
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
+15
-1
@@ -1,6 +1,6 @@
|
||||
# Этап 12: итоговая приёмка UX/UI
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
|
||||
|
||||
@@ -3645,3 +3645,17 @@ Backend ux-peak194/version1.0.0-test.peak194 развёрнут, frontend ux-pea
|
||||
Протоколы: [SQL](ux-ui/acceptance/traffic-lock194-sql194-result.json), [source](ux-ui/acceptance/traffic-lock194-source194-result.json), [compiled](ux-ui/acceptance/traffic-lock194-compiled194-result.json), [runtime](ux-ui/acceptance/traffic-lock194-runtime194-result.json), [API](ux-ui/acceptance/traffic-lock194-peak194-api-result.json), [live UI](ux-ui/acceptance/traffic-collection-lock-deployed-2026-10-13.json).
|
||||
|
||||
Границы: принято отсутствие параллельного traffic run при двух исправных process/session в одной БД, не координация всех writers приложения. Физическая потеря lock connection во время native GET/записи других pool connections не проверена; session lock не является fencing token. Не считать этот блок полной multi-instance/restore-drain/failover приёмкой. Следующий шаг — закончить и разобрать общую E2E192; затем отдельные multi-instance failures и внешние зависимости матрицы.12.5 открыта.
|
||||
|
||||
## 12.5.192 — общая регрессия после накопленных изменений (2026-10-13)
|
||||
|
||||
Завершена одна согласованная общая проверка:24 профиля backend из test:all прошли321237ms на собственной временной PostgreSQL БД с ограниченной ролью. Набор выполнялся на источнике191; backend193 request cache и194 collection lock после этого отдельно приняты актуальными полными traffic-rate SQL-профилями, build/source/compiled/API/live UI. Общие неизменённые разделы повторно не запускались. Протокол не приравнивает количество profiles к числу assertions или native операций.
|
||||
|
||||
В исходном общем прогоне были3 реальные skip-сообщения: Monthly SQL, IPv6 UDP/worker/SQL и replay сохранённого CHR Ping payload. Они проверены отдельно: Monthly на собственной БД mm_accept_149_* подтвердил5 точных месячных интервалов, leap-year и exclusion outside rows; IPv6 на собственной mm_accept_144_* прошёл через собранный production worker с UDP/SQL/minute-hour-day totals и shutdown; Ping replay использовал сохранённый публичный payload без новых команд CHR. Первая IPv6 попытка на TypeScript worker harness не загрузила src/db/index.js; это ошибка запуска harness, исправлена запуском того же теста в JavaScript с реальным compiled worker. Не скрывать исходный отказ и не выдавать loopback UDP за public IPv6 WAN. DB/roles/containers всех проверок удалены, production DSN не копировался.
|
||||
|
||||
Frontend:59 lib test files прошли с одной исправленной устаревшей проверкой dashboard-readers.test.ts. Ранее тест запрещал series:[null]; актуальная модель Ping намеренно допускает пропуски и переводит legacy measurements в unknown. Исправлен только тест: unknown/null проверен положительно, отрицательная/NaN series остаются rejected. Повторно прошли2 reader tests и4 соседних probe tests; runtime source/семантика не менялись. Scoped ESLint passed.
|
||||
|
||||
Общий настроенный браузерный набор:1286 уникальных сценариев в217 файлах passed1936347ms (32.3min), unexpected0/skipped0/flaky0. Включены77 сценариев трафика; их повторные focused/full runs не прибавляются к1286. Настроенные testIgnore context suites и внешние native сценарии в эту цифру не входят. Промежуточный сигнал ошибки по форматированному выводу не подтвердился: итоговый JSON содержит0 unexpected.125 исходно чистых отслеживаемых screenshots, перезаписанных тестами, восстановлены;8 исходно изменённых пользовательских PNG сохранены отдельно и восстановлены с проверкой SHA256. Пользовательские skills/AGENTS/config не включались в commits.
|
||||
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -708,7 +708,7 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191/193/194 — temporal peak, request cache, межпроцессная блокировка опроса трафика. Runtime backend ux-peak194/frontend ux-peak191 healthy/API/live UI2 passed; traffic ownSQL71+cross-process sequence passed53237ms.192: общая backend24 профиля/отдельные SQL controls/frontend59 test files приняты; полный E2E1286 ещё выполняется, итог ещё не принят.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
|
||||
@@ -2071,3 +2071,17 @@ Backend ux-peak194/version1.0.0-test.peak194 развёрнут, frontend ux-pea
|
||||
Протоколы: [SQL](ux-ui/acceptance/traffic-lock194-sql194-result.json), [source](ux-ui/acceptance/traffic-lock194-source194-result.json), [compiled](ux-ui/acceptance/traffic-lock194-compiled194-result.json), [runtime](ux-ui/acceptance/traffic-lock194-runtime194-result.json), [API](ux-ui/acceptance/traffic-lock194-peak194-api-result.json), [live UI](ux-ui/acceptance/traffic-collection-lock-deployed-2026-10-13.json).
|
||||
|
||||
Границы: принято отсутствие параллельного traffic run при двух исправных process/session в одной БД, не координация всех writers приложения. Физическая потеря lock connection во время native GET/записи других pool connections не проверена; session lock не является fencing token. Не считать этот блок полной multi-instance/restore-drain/failover приёмкой. Следующий шаг — закончить и разобрать общую E2E192; затем отдельные multi-instance failures и внешние зависимости матрицы.12.5 открыта.
|
||||
|
||||
## 12.5.192 — общая регрессия после накопленных изменений (2026-10-13)
|
||||
|
||||
Завершена одна согласованная общая проверка:24 профиля backend из test:all прошли321237ms на собственной временной PostgreSQL БД с ограниченной ролью. Набор выполнялся на источнике191; backend193 request cache и194 collection lock после этого отдельно приняты актуальными полными traffic-rate SQL-профилями, build/source/compiled/API/live UI. Общие неизменённые разделы повторно не запускались. Протокол не приравнивает количество profiles к числу assertions или native операций.
|
||||
|
||||
В исходном общем прогоне были3 реальные skip-сообщения: Monthly SQL, IPv6 UDP/worker/SQL и replay сохранённого CHR Ping payload. Они проверены отдельно: Monthly на собственной БД mm_accept_149_* подтвердил5 точных месячных интервалов, leap-year и exclusion outside rows; IPv6 на собственной mm_accept_144_* прошёл через собранный production worker с UDP/SQL/minute-hour-day totals и shutdown; Ping replay использовал сохранённый публичный payload без новых команд CHR. Первая IPv6 попытка на TypeScript worker harness не загрузила src/db/index.js; это ошибка запуска harness, исправлена запуском того же теста в JavaScript с реальным compiled worker. Не скрывать исходный отказ и не выдавать loopback UDP за public IPv6 WAN. DB/roles/containers всех проверок удалены, production DSN не копировался.
|
||||
|
||||
Frontend:59 lib test files прошли с одной исправленной устаревшей проверкой dashboard-readers.test.ts. Ранее тест запрещал series:[null]; актуальная модель Ping намеренно допускает пропуски и переводит legacy measurements в unknown. Исправлен только тест: unknown/null проверен положительно, отрицательная/NaN series остаются rejected. Повторно прошли2 reader tests и4 соседних probe tests; runtime source/семантика не менялись. Scoped ESLint passed.
|
||||
|
||||
Общий настроенный браузерный набор:1286 уникальных сценариев в217 файлах passed1936347ms (32.3min), unexpected0/skipped0/flaky0. Включены77 сценариев трафика; их повторные focused/full runs не прибавляются к1286. Настроенные testIgnore context suites и внешние native сценарии в эту цифру не входят. Промежуточный сигнал ошибки по форматированному выводу не подтвердился: итоговый JSON содержит0 unexpected.125 исходно чистых отслеживаемых screenshots, перезаписанных тестами, восстановлены;8 исходно изменённых пользовательских PNG сохранены отдельно и восстановлены с проверкой SHA256. Пользовательские skills/AGENTS/config не включались в commits.
|
||||
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.192",
|
||||
"command": "playwright test --reporter=json",
|
||||
"files": 217,
|
||||
"stats": {
|
||||
"startTime": "2026-10-13T07:00:55.640Z",
|
||||
"duration": 1936347.118,
|
||||
"expected": 1286,
|
||||
"skipped": 0,
|
||||
"unexpected": 0,
|
||||
"flaky": 0
|
||||
},
|
||||
"passed": true,
|
||||
"scope": "Configured default E2E suite; ordinary HTTP fixtures; explicitly ignored context suites and external native tests not included",
|
||||
"bounds": [
|
||||
"Source frontend behavior unchanged after191;193/194 backend separately verified in traffic SQL profiles",
|
||||
"Includes77 traffic cases; do not add repeated focused runs to unique case count"
|
||||
],
|
||||
"userScreenshotsPreserved": 8
|
||||
}
|
||||
@@ -0,0 +1,309 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.192",
|
||||
"files": 59,
|
||||
"results": [
|
||||
{
|
||||
"file": "lib\\wireguard-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 445
|
||||
},
|
||||
{
|
||||
"file": "lib\\wg-export-peer.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 447
|
||||
},
|
||||
{
|
||||
"file": "lib\\vxlan-export.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 409
|
||||
},
|
||||
{
|
||||
"file": "lib\\user-save.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 466
|
||||
},
|
||||
{
|
||||
"file": "lib\\traffic-observations.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 888
|
||||
},
|
||||
{
|
||||
"file": "lib\\traffic-binding-status.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 405
|
||||
},
|
||||
{
|
||||
"file": "lib\\terminal-response.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 897
|
||||
},
|
||||
{
|
||||
"file": "lib\\statistics-range.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 433
|
||||
},
|
||||
{
|
||||
"file": "lib\\statistics-context.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 396
|
||||
},
|
||||
{
|
||||
"file": "lib\\speed-run-response.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 908
|
||||
},
|
||||
{
|
||||
"file": "lib\\speed-probe-snapshot.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 992
|
||||
},
|
||||
{
|
||||
"file": "lib\\speed-persistence-outcome.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 465
|
||||
},
|
||||
{
|
||||
"file": "lib\\scheduler-run-snapshot.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 491
|
||||
},
|
||||
{
|
||||
"file": "lib\\route-optimizer-routes.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 467
|
||||
},
|
||||
{
|
||||
"file": "lib\\route-optimizer-response.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 1220
|
||||
},
|
||||
{
|
||||
"file": "lib\\route-optimizer-observed.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 455
|
||||
},
|
||||
{
|
||||
"file": "lib\\route-optimizer-assignment.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 603
|
||||
},
|
||||
{
|
||||
"file": "lib\\release-metadata.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 460
|
||||
},
|
||||
{
|
||||
"file": "lib\\recursive-route-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 426
|
||||
},
|
||||
{
|
||||
"file": "lib\\proxy-backend-request.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 771
|
||||
},
|
||||
{
|
||||
"file": "lib\\probe-url.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 450
|
||||
},
|
||||
{
|
||||
"file": "lib\\probe-source.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 901
|
||||
},
|
||||
{
|
||||
"file": "lib\\probe-schedule-response.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 949
|
||||
},
|
||||
{
|
||||
"file": "lib\\probe-response.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 954
|
||||
},
|
||||
{
|
||||
"file": "lib\\ospf-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 469
|
||||
},
|
||||
{
|
||||
"file": "lib\\ospf-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 575
|
||||
},
|
||||
{
|
||||
"file": "lib\\ospf-router-identity.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 2337
|
||||
},
|
||||
{
|
||||
"file": "lib\\ospf-cost.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 475
|
||||
},
|
||||
{
|
||||
"file": "lib\\network-map-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 454
|
||||
},
|
||||
{
|
||||
"file": "lib\\network-map-response.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 1085
|
||||
},
|
||||
{
|
||||
"file": "lib\\network-map-metrics.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 412
|
||||
},
|
||||
{
|
||||
"file": "lib\\network-map-camera.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 465
|
||||
},
|
||||
{
|
||||
"file": "lib\\gre-export.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 401
|
||||
},
|
||||
{
|
||||
"file": "lib\\format-service-path-label.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 421
|
||||
},
|
||||
{
|
||||
"file": "lib\\fmt-rate.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 474
|
||||
},
|
||||
{
|
||||
"file": "lib\\evobgp-test-receipt.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 905
|
||||
},
|
||||
{
|
||||
"file": "lib\\evobgp-catalog.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 3220
|
||||
},
|
||||
{
|
||||
"file": "lib\\data-filters\\uptime-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 487
|
||||
},
|
||||
{
|
||||
"file": "lib\\data-filters\\statistics-filter-query.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 444
|
||||
},
|
||||
{
|
||||
"file": "lib\\data-filters\\server-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 596
|
||||
},
|
||||
{
|
||||
"file": "lib\\data-filters\\bgp-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 432
|
||||
},
|
||||
{
|
||||
"file": "lib\\data-filters\\backups-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 536
|
||||
},
|
||||
{
|
||||
"file": "lib\\data-filters\\apply-filter-query.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 421
|
||||
},
|
||||
{
|
||||
"file": "lib\\dashboard-traffic.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 954
|
||||
},
|
||||
{
|
||||
"file": "lib\\dashboard-readers.test.ts",
|
||||
"passed": true,
|
||||
"initialFailure": {
|
||||
"errorName": "Error",
|
||||
"exitCode": 1,
|
||||
"reason": "Stale expectation rejected nullable Ping history introduced previously"
|
||||
},
|
||||
"rerunPassed": true
|
||||
},
|
||||
{
|
||||
"file": "lib\\dashboard-probes.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 1109
|
||||
},
|
||||
{
|
||||
"file": "lib\\dashboard-permissions.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 502
|
||||
},
|
||||
{
|
||||
"file": "lib\\dashboard-path-response.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 1097
|
||||
},
|
||||
{
|
||||
"file": "lib\\dashboard-overlays.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 1008
|
||||
},
|
||||
{
|
||||
"file": "lib\\dashboard-bgp.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 1134
|
||||
},
|
||||
{
|
||||
"file": "lib\\containers-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 447
|
||||
},
|
||||
{
|
||||
"file": "lib\\certificates-url-state.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 415
|
||||
},
|
||||
{
|
||||
"file": "lib\\certificate-snapshots.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 1005
|
||||
},
|
||||
{
|
||||
"file": "lib\\certificate-issue-poll.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 896
|
||||
},
|
||||
{
|
||||
"file": "lib\\certificate-issue-checkpoint.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 946
|
||||
},
|
||||
{
|
||||
"file": "lib\\backup-settings.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 862
|
||||
},
|
||||
{
|
||||
"file": "lib\\backup-restore-checkpoint.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 914
|
||||
},
|
||||
{
|
||||
"file": "lib\\backup-job-poll.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 894
|
||||
},
|
||||
{
|
||||
"file": "lib\\backup-job-checkpoint.test.ts",
|
||||
"passed": true,
|
||||
"durationMs": 902
|
||||
}
|
||||
],
|
||||
"passed": true,
|
||||
"additionalFocusedProbeTests": 4
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.192",
|
||||
"scope": "full backend profile list on owned isolated PostgreSQL; no production DSN",
|
||||
"database": "mm_accept_166_1791874576155",
|
||||
"profiles": [
|
||||
{
|
||||
"profile": "test:probes",
|
||||
"passed": true,
|
||||
"durationMs": 25521,
|
||||
"actualSkipMessages": [
|
||||
"ping RTT recorded native payload replay: skipped; evidence file not present"
|
||||
]
|
||||
},
|
||||
{
|
||||
"profile": "test:exec",
|
||||
"passed": true,
|
||||
"durationMs": 7560,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:alert-engine",
|
||||
"passed": true,
|
||||
"durationMs": 16695,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:alerts-telegram",
|
||||
"passed": true,
|
||||
"durationMs": 14971,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:auth",
|
||||
"passed": true,
|
||||
"durationMs": 9884,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:wireguard",
|
||||
"passed": true,
|
||||
"durationMs": 12354,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:ipsec",
|
||||
"passed": true,
|
||||
"durationMs": 15947,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:traffic-rate",
|
||||
"passed": true,
|
||||
"durationMs": 36753,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:traffic-flow",
|
||||
"passed": true,
|
||||
"durationMs": 49457,
|
||||
"actualSkipMessages": [
|
||||
"Monthly SQL: skip (requires an owned isolated database)",
|
||||
"IPv6 UDP/worker/SQL: skip (requires an owned isolated database)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"profile": "test:users",
|
||||
"passed": true,
|
||||
"durationMs": 7490,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:pg",
|
||||
"passed": true,
|
||||
"durationMs": 10421,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:backups",
|
||||
"passed": true,
|
||||
"durationMs": 9160,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:scheduler",
|
||||
"passed": true,
|
||||
"durationMs": 6200,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:live-maps",
|
||||
"passed": true,
|
||||
"durationMs": 21351,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:ospf-optimizer",
|
||||
"passed": true,
|
||||
"durationMs": 6652,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:recursive-routes",
|
||||
"passed": true,
|
||||
"durationMs": 4569,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:config-sync",
|
||||
"passed": true,
|
||||
"durationMs": 15267,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:ros-file",
|
||||
"passed": true,
|
||||
"durationMs": 1615,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:containers",
|
||||
"passed": true,
|
||||
"durationMs": 5078,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:certificates",
|
||||
"passed": true,
|
||||
"durationMs": 11789,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:netflow-settings",
|
||||
"passed": true,
|
||||
"durationMs": 4482,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:netflow-purge",
|
||||
"passed": true,
|
||||
"durationMs": 2986,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:evolution",
|
||||
"passed": true,
|
||||
"durationMs": 6488,
|
||||
"actualSkipMessages": []
|
||||
},
|
||||
{
|
||||
"profile": "test:system-database",
|
||||
"passed": true,
|
||||
"durationMs": 18547,
|
||||
"actualSkipMessages": []
|
||||
}
|
||||
],
|
||||
"passed": true,
|
||||
"actualSkipMessageCount": 3,
|
||||
"databaseRemoved": true,
|
||||
"roleRemoved": true,
|
||||
"testContainerRemoved": true,
|
||||
"subsequentControls": {
|
||||
"pingRecordedReplay": "passed; saved CHR payload, no new Ping commands",
|
||||
"monthlyOwnedSql": "passed separately",
|
||||
"ipv6UdpOwnedSql": "passed with compiled production worker; TypeScript worker harness failed first"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"date": "2026-10-13", "block": "12.5.192", "passed": true, "scope": "saved public native payload replay; no new native commands"}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.192",
|
||||
"database": "mm_accept_144_1791875186435",
|
||||
"script": "traffic-flow-ipv6-pipeline",
|
||||
"passed": true,
|
||||
"actualSqlExecuted": true,
|
||||
"databaseRemoved": true,
|
||||
"roleRemoved": true,
|
||||
"testContainerRemoved": true
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.192",
|
||||
"database": "mm_accept_149_1791874985903",
|
||||
"script": "traffic-flow-month",
|
||||
"passed": true,
|
||||
"actualSqlExecuted": true,
|
||||
"databaseRemoved": true,
|
||||
"roleRemoved": true,
|
||||
"testContainerRemoved": true
|
||||
}
|
||||
@@ -9,5 +9,7 @@ test("dashboard server catalog validates identities and keeps unknown status",()
|
||||
})
|
||||
test("dashboard probes validate real shape, uniqueness and numeric ranges before publication",()=>{
|
||||
assert.equal(parseDashboardProbes({probes:[probe]}).probes[0].rtt,null);assert.deepEqual(parseDashboardProbes({probes:[]}),{probes:[],sampledAt:null})
|
||||
for(const raw of [{},{probes:[probe,probe]},{probes:[{...probe,loss:101}]},{probes:[{...probe,status:"invalid"}]},{probes:[{...probe,series:[null]}]},{probes:[{}]}])assert.throws(()=>parseDashboardProbes(raw))
|
||||
const legacyGap=parseDashboardProbes({probes:[{...probe,series:[null]}]}).probes[0]
|
||||
assert.equal(legacyGap.status,"unknown");assert(legacyGap.series.every(v=>v===null))
|
||||
for(const raw of [{},{probes:[probe,probe]},{probes:[{...probe,loss:101}]},{probes:[{...probe,status:"invalid"}]},{probes:[{...probe,series:[-1]}]},{probes:[{...probe,series:[NaN]}]},{probes:[{}]}])assert.throws(()=>parseDashboardProbes(raw))
|
||||
})
|
||||
Reference in new issue
Block a user