WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-436 · Задача · — · web

P1: баннер «Доступна нова версія» сломан: по центру сверху, без крестика, «Обновить» = вечная петля перезагрузки

Закрыт P2 ведёт: —
Доказательства
[BOARDTRIAGE] Есть только updatedAt 29.08 16:58Z; evidence отсутствует. Нужны commit/волна 624-bannerfix и live-пруф: позиция/закрытие баннера, Refresh без loop и проверка актуального SW.

[29.08 эволюция, для нулевого агента]
Замер корня: live-sha l70 = 3ec0f19d, а sw.js CACHE_VERSION = v4-c77e91d1d (SW от старого релиза) — клиент вечно видит расхождение. BANNERFIX (dacfbb94, wave/bannerfix): защита от петли (ожидание активации SW + persistent backoff + beacon), позиция/крестик. → ACCBANNERFIX NO-GO: основной путь закрыт, но в PWAInitializer остался ВТОРОЙ update-путь (updatefound/registration.waiting toast) — зовёт updateServiceWorkerAndReload БЕЗ versionMarker, обходит защиту. → BANNERFIX2 в полёте (один путь показа, узкий круг).
Отчёты (A1): /home/ubuntu/waves/{BANNERFIX,ACCBANNERFIX}-REPORT.md. Компоненты: src/components/pwa/VersionUpdateBanner.tsx, PWAInitializer.tsx.

[29.08 18:50Z] BANNERFIX2 сдан (6441790f, wave/bannerfix2, база dacfbb94): единственный блокер ACCBANNERFIX закрыт — второй update-путь (updatefound/waiting toast) в PWAInitializer.tsx переведён через ту же защищённую функцию с versionMarker/backoff. → на приёмке ACCBANNERFIX2 (queue/655). Отчёты A1: /home/ubuntu/waves/{BANNERFIX2,ACCBANNERFIX}-REPORT.md.

[29.08 19:20Z] ACCBANNERFIX2 NO-GO: пути защищены, но banner и legacy toast без общего dedupe — один update может показать ДВА UI одновременно. → BANNERFIX3 (queue/665: единый контроллер показа, ровно один UI). Цепочка: dacfbb94→NO-GO(второй путь)→6441790f→NO-GO(двойной UI).

[29.08 19:50Z] BANNERFIX3 сдан (58ee9850): единый контроллер показа. → ACCBANNERFIX3 (queue/670: негативы обоих прошлых кругов + гонки событий + сверка исходных требований тикета).

[29.08 20:30Z] ACCBANNERFIX3 GO — ЛИНИЯ ЗАКРЫТА (финальный 58ee9850): единый контроллер показа принят, негативы всех трёх кругов зелёные, исходные требования тикета сверены (позиция/крестик/петля/CACHE_VERSION из артефакта). Кандидат посадки l71. Цепочка: dacfbb94→второй путь→6441790f→двойной UI→58ee9850→GO.

[30.08 07:00Z] 🛬 ПОСАЖЕН В l71 (артефакт ad094b26, commit 4a6b7ae5, посадка 30.08 00:53Z, обе службы, paidReady enforce_ready). Полный журнал посадки с 5 находками стражей — WEB-320 [30.08]. ЖИВОЙ ПРУФ: sw.js CACHE_VERSION=v4-4a6b7ae573cd == live-sha — корень вечной карусели мёртв на проде. Линия закрыта полностью.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-436","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-30T06:27:27.322Z