fix(traffic): подтверждать свежесть статусов привязанных интерфейсов
This commit is contained in:
1 parent
2b3d583e3b
commit
b4d0733cfa
27 files changed
+1463
-36
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Сервер161.104.46.222: завершён12.5.180 — точные учтённые объёмы без early rounding, explicit GiB API/КиБ-МиБ-ГиБ UI, unknown unit→—, N+1 server-status query removed. OwnSQL9+14+10+6/31474ms,18E2E/36.3s/types/build/ESLint/1036compiled parity. Both ux-volume180 healthy/running/API2/real-live browser2 passed; ownDB/role/container removed. Следующий181 — проверить freshness статусов привязок и peer/interface flags;12.5 открыта.
|
||||
Сервер161.104.46.222: завершён12.5.181 — подтверждённые свежие статусы привязок, strict native boolean flags и отдельный unknown для enabled WireGuard peer. OwnSQL48/36163ms,8E2E/15.7s+final delta2/10s/types/build/ESLint/1036compiled parity. Both ux-status181 healthy/running/native2/browser2; ownDB/role/container удалены. Следующий182 — полнота peer-среза и история пропусков;12.5 открыта.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -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-volume180 и mmapp-test/frontend:ux-volume180; запущены |
|
||||
| Образы приложения | mmapp-test/backend:ux-status181 и mmapp-test/frontend:ux-status181; запущены |
|
||||
|
||||
Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
|
||||
|
||||
@@ -1822,3 +1822,27 @@ Owned Node22/PG18.6 test:traffic-rate31474ms:9 counters+14history+10actual TCP S
|
||||
[Actual volume API](ux-ui/acceptance/traffic-volume-api-2026-10-12.json) показывает GiB и неокруглённые quantities обоих CHR из штатных collector rows; этот checker не отправлял новых native commands. [Browser1440/320](ux-ui/acceptance/traffic-volume-deployed-2026-10-12.json):3APIs200, actual live/receipt labels/provenance, no errors/overflow. Рабочая конфигурация/пароли не менялись, messages0; auto collectors остаются штатными. Это не WAN byte billing/capacity/SLA proof и не exact arithmetic acceptance за пределами safe integer/scale bounds.
|
||||
|
||||
Следующий181 — freshness статуса привязанных интерфейсов: enabled device+old running flag не должен объявлять online после failed/stale poll; peer enabled не доказывает handshake. Проверить native flag provenance и scalar shape, не переписывать legacy rows по догадке. Coverage/peer completeness/recreated interfaces/restore/multi-instance/scale/external integrations остаются12.5. Локальный коммит без push.
|
||||
|
||||
## 12.5.181 — достоверность статусов привязанных интерфейсов (2026-10-12)
|
||||
|
||||
Статус привязки теперь требует свежего успешного опроса текущей конфигурации устройства и подтверждённых native флагов. Ошибка, pending, disabled source, истёкший TTL или legacy row без status-known marker дают «Нет данных». Первое корректное измерение интерфейса может подтвердить его running, даже когда ещё недостаточно соседних counters для скорости. История и объёмы сохраняются.
|
||||
|
||||
Producer строго принимает true/false и native строки true/false/yes/no; missing/invalid flags больше не подменяются false. Новый бит8 status-known добавляется только новым успешным измерениям; bit4 counter-known не меняется, legacy rows не переписываются. Interface inventory проверяет имена/дубликаты. Включённый WG peer означает конфигурацию, поэтому даёт unknown без handshake proof; disabled peer — «Неактивен». Это не проверка реального VPN-туннеля.
|
||||
|
||||
DTO привязок содержит statusObservedAt/statusExpiresAt. Frontend проверяет provenance и TTL, обновляет состояние по своему clock даже без повторной загрузки; прежний payload без дат не считается подтверждением. Общие ReUI layout/base-nova и компоненты сохранены.
|
||||
|
||||
| Состояние | Схема | Проверка |
|
||||
| --- | --- | --- |
|
||||
| Native running + свежий успешный poll | native flag → known marker → TTL → Работает | own SQL и UI1440/320 |
|
||||
| Ошибка / старый flag / истёкший TTL | последнее измерение → Нет данных | own SQL и UI1440/320 |
|
||||
| Enabled WireGuard peer | configuration flag → Нет данных | own SQL; handshake не заявлен |
|
||||
|
||||
TypeScript/backend build/ESLint и профильные unit проверки прошли.8 E2E15.7s (2new+6mobile), после последней правки final delta2 passed10s. Один повтор первоначально не запустился из-за Windows sandbox/SWC access denied; корректный разрешённый запуск прошёл, это не UI failure.
|
||||
|
||||
[Own PG SQL](ux-ui/acceptance/traffic-status-sql-2026-10-12.json):48 cases9counter+14history+10TCP SSE+6volume+9status,36163ms, без unavailable skip. Новые9 проверяют настоящий collector→SQL→GET bindings на локальном HTTP RouterOS fixture: первое измерение, enabled/disabled peer, inactive interface, malformed flag,401,legacy bit,stale и disabled source. OwnDB mm_accept_166_1791818856762/ограниченная role/container удалены, отсутствие проверено. Первый запуск harness имел неверный путь распаковки; тесты не начались, его временная база/роль также удалены; пути исправлены до приведённого успешного результата.
|
||||
|
||||
[Source454/524](ux-ui/acceptance/traffic-status-source-2026-10-12.json)/[compiled1036](ux-ui/acceptance/traffic-status-compiled-2026-10-12.json) SHA256 parity, обе production builds прошли. Frontend ux-status181 сначала проверен с backend ux-volume180 [interop](ux-ui/acceptance/traffic-status-interop-2026-10-12.json); затем [both ux-status181](ux-ui/acceptance/traffic-status-runtime-2026-10-12.json) healthy/running/imageIds. Только .env tags, rollback ux-volume180, без копирования secret env и новой миграции.
|
||||
|
||||
[Native GET](ux-ui/acceptance/traffic-status-native-2026-10-12.json): оба CHR доступны, interface counters и boolean flags валидны; DB read-only, RouterOS config writes0/password changes0/messages0. [Browser1440/320](ux-ui/acceptance/traffic-status-deployed-2026-10-12.json): actual API/live/receipt labels без ошибок/overflow. Положительные binding branches доказаны собственными SQL/UI fixtures, не выданы за существующие пользовательские привязки стенда. Вкладку следует перезагрузить.
|
||||
|
||||
Следующий182 — полнота peer-среза при optional endpoint failure и пропуски истории. Interface running не доказывает end-to-end connectivity, enabled peer не доказывает handshake. Coverage/recreated identity/restore/multi-instance/scale/external integrations остаются открыты в12.5. Локальный коммит без push.
|
||||
Reference in new issue
Block a user