fix(traffic): принимать измерения peers только полным срезом
This commit is contained in:
1 parent
b4d0733cfa
commit
d8f8d3c7a4
15 files changed
+1327
-21
No files matched your search
+19
-1
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-12: завершён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 открыта.
|
||||
Актуальное продолжение 2026-10-12: завершён12.5.182 — атомарная проверка полного WireGuard peer-среза, без записи корректного префикса при ошибке/дубликатах. OwnSQL51/37534ms/backend build/source455+524/1040compiled/native2/browser2 passed. Backend ux-peer182 healthy, frontend ux-status181 без изменений; ownDB/role/container удалены. Следующий183 — явная диагностика optional peer endpoint failure и покрытие истории;12.5 открыта.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -38,6 +38,24 @@
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–168 и ограничения ниже. Runtime backend ux-month149/frontend ux-sessions150. |
|
||||
|
||||
## 12.5.182 — атомарный приём измерений WireGuard peers (2026-10-12)
|
||||
|
||||
Разбор optional peers раньше добавлял каждую строку в общий массив сразу: ошибка следующей строки перехватывалась, а корректный префикс сохранялся как свежий срез. Отсутствующие ключи также молча пропускались. Теперь parseTrafficPeers сначала проверяет весь ответ: массив, объекты, непустые interface/public-key, уникальность пары interface+key, counter values и boolean disabled. Только полностью корректный массив передаётся collector. Ошибка не сохраняет ни одного peer из этого ответа; обычные интерфейсные измерения остаются доступны. Пустой массив — корректный пустой срез.
|
||||
|
||||
| Ответ | Схема результата | Проверка |
|
||||
| --- | --- | --- |
|
||||
| Все peers валидны | полная проверка → запись полного среза | existing SQL collector profile |
|
||||
| Корректный peer → некорректный counter | полный срез отклонён → interface сохранён → peer Нет данных | новая own SQL проверка |
|
||||
| Повторная пара / ответ не массив | полный срез отклонён → interface сохранён | ещё2 own SQL проверки |
|
||||
|
||||
[Owned PG](ux-ui/acceptance/traffic-peer-sql-2026-10-12.json):51 cases9counter+14history+10TCP SSE+6volume+12status,37534ms, без SQL skip.3 новые проверки используют настоящий HTTP fixture→collector→SQL→GET bindings; проверяют отсутствие partial peer rows, unknown peer status и online native iface. Временная база mm_accept_166_1791819465644, ограниченная роль и контейнер удалены, отсутствие проверено.
|
||||
|
||||
Backend TypeScript/build passed; [source455/524](ux-ui/acceptance/traffic-peer-source-2026-10-12.json), [compiled1040](ux-ui/acceptance/traffic-peer-compiled-2026-10-12.json) SHA256 parity. Frontend не менялся: используется уже собранный и проверенный ux-status181. Новая backend production build ux-peer182 [развёрнута и healthy](ux-ui/acceptance/traffic-peer-runtime-2026-10-12.json); frontend imageId также проверен. Только backend tag в .env, rollback ux-status181, без новой миграции и копирования секретов.
|
||||
|
||||
[Native read-only](ux-ui/acceptance/traffic-peer-native-2026-10-12.json) проверил ответы identity/interface/peers обоих CHR; оба доступны. Фактическое число peers сохранено в отчёте: пустой native список не выдан за приёмку активного туннеля. Положительные/некорректные peer случаи доказаны собственными fixtures; новые VPN объекты не создавались, этот блок исправляет collector parser. DB read-only, RouterOS config writes0/password changes0/messages0. [Production UI1440/320](ux-ui/acceptance/traffic-peer-deployed-2026-10-12.json) проверен с actual API/live/receipt labels без ошибок/overflow.
|
||||
|
||||
Следующий183: optional peer endpoint failure пока не получает отдельной видимой причины — interface success остаётся успешным, stale peer становится unknown по предыдущему181. Нужно сохранить причину частичного сбоя, не превращая успешные interface measurements в ошибку. Покрытие пропусков истории, recreated identity, масштаб и внешние интеграции остаются12.5. Локальный коммит без push.
|
||||
|
||||
## 12.5.181 — достоверность статусов привязанных интерфейсов (2026-10-12)
|
||||
|
||||
Статус привязки теперь требует свежего успешного опроса текущей конфигурации устройства и подтверждённых native флагов. Ошибка, pending, disabled source, истёкший TTL или legacy row без status-known marker дают «Нет данных». Первое корректное измерение интерфейса может подтвердить его running, даже когда ещё недостаточно соседних counters для скорости. История и объёмы сохраняются.
|
||||
|
||||
Reference in new issue
Block a user