fix(traffic): прекращать опрос изменённого источника

This commit is contained in:
Denozordec committed 2026-10-13 02:08:26 +07:00
1 parent 5d19b6a258
commit 504f62fc0b
15 files changed
+1296 -14

No files matched your search

+16 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-13: завершён12.5.188 — per-wave declared membership после rename/delete/add, active interfaces latest wave, no false0 для нового baseline; malformed declared identityNULL→unknown. OwnSQL65/38880ms/unit/build/source460+524/1040compiled/API/browser2 passed. Backend ux-membership188 healthy/frontend ux-warning183; ownDB/role/container удалены. Следующий189 — background traffic source guard между native commands и записью;12.5 открыта.
Актуальное продолжение 2026-10-13: завершён12.5.189 — background traffic проверяет enabled/config перед native requests, cache/insert/success; disabled/config change mid-interface response→no peer call/no samples/no false success. OwnSQL67/39536ms/unit/build/source460+524/1040compiled/API/browser2 passed. Backend ux-sourceguard189 healthy/frontend ux-warning183; ownDB/role/container удалены. Следующий190 — confirmed peak против partial counter waves;12.5 открыта.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -38,6 +38,21 @@
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–168 и ограничения ниже. Runtime backend ux-month149/frontend ux-sessions150. |
## 12.5.189 — прекращение фонового опроса при изменении источника (2026-10-13)
Collector теперь повторно читает enabled/updatedAt по ID перед /interface, после его ответа до cache, перед /wireguard/peers, перед INSERT samples и перед успешной receipt. Выключенный/удалённый/изменённый источник прекращает цикл с явной причиной. Форма source check одинакова для всех типов серверов, Home exception отсутствует. Уже отправленный native request невозможно отменить задним числом; guard препятствует следующему request и публикации известного устаревшего результата. Межпроцессная атомарность source edit/native call/DB commit не заявляется.
[Owned PG SQL](ux-ui/acceptance/traffic-sourceguard-sql-2026-10-13.json):67 cases9counter+14history+10TCP SSE+13volume+21status/39536ms, no skip.2 новые cases обновляют own server.enabled/config внутри первого loopback HTTP handler до его ответа: snapshot.ok=false, peer request count не растёт, samples count не меняется. Сервер re-enabled только в own fixture для следующего case. Actual-collector VM граница стала поддерживать limit() read, unit и backend build passed. OwnDB mm_accept_166_1791831842508/role/container удалены, absence verified.
| Событие | Схема |
| --- | --- |
| Source выключен/config changed во время first request | завершение in-flight read → guard → no peer request/cache/new rows/ok receipt |
| Source неизменён | read → verify → validated rows → verify before publication |
[Source460/524](ux-ui/acceptance/traffic-sourceguard-source-2026-10-13.json)/[compiled1040](ux-ui/acceptance/traffic-sourceguard-compiled-2026-10-13.json) SHA256 parity passed. [Backend ux-sourceguard189](ux-ui/acceptance/traffic-sourceguard-runtime-2026-10-13.json) healthy/imageIds, frontend ux-warning183 unchanged. Only backend.env tag, rollback ux-membership188; migration0/secret env copy0. [Actual API](ux-ui/acceptance/traffic-sourceguard-api-2026-10-13.json)/[browser1440/320](ux-ui/acceptance/traffic-sourceguard-deployed-2026-10-13.json) passed current/live/receipt/no errors/overflow. Real CHR не отключались/не перенастраивались; passwords/messages changes0.
Следующий190 — пик не должен вычисляться из partial/unconfirmed aggregate wave. Разные времена индивидуальных пиков user bindings также требуют отдельной temporal aggregation, а сумма индивидуальных максимумов не является общим одновременным максимумом.12.5 и внешние dependencies остаются открыты. Локальный коммит без push.
## 12.5.188 — состав временных измерений после изменения интерфейсов (2026-10-13)
[Baseline/fixed](ux-ui/acceptance/traffic-wave-baseline-2026-10-13.json): при удалении одного ряда прежний186 builder навсегда оставлял current unknown и sessions2, хотя последний complete native wave содержал1 интерфейс.188 даёт current known/sessions1 с теми же4096 accounted bytes. Теперь expected count определяется для каждой wave, если все её строки имеют declared continuity marker нового producer. Счётчик активных интерфейсов берётся из последней такой wave. Legacy без marker сохраняет консервативный общий count; отсутствие строки не объявляется нулём по догадке.