WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-189 · Дефект · — · web

P0: фронт замерзает на бутстрапе после i18n scoped-загрузок (страница висит вечно)

Закрыт P2 ведёт: —
Суть
Owner: главная после логина грузится 20+ мин, reload не помогает (Safari private, uk-локаль). ВОСПРОИЗВЕДЕНО backup-opus в Chrome 12:25: рендерер замерзает НАМЕРТВО (CDP screenshot timeout), сеть замирает после пачки /api/i18n/scoped?language=uk (все 200, мелкие, 40-80мс; среди них ПОВТОРНЫЕ идентичные scoped-запросы — намёк на цикл перезагрузки каталогов) + /api/auth/session x3. Сервер здоров (SSR 60-80мс, БД 93мс max). Началось ПОСЛЕ посадки BH (10:30) — подозрение на клиентские коммиты BH: i18n lazy-load/merge (fuzz-патчи локалей!), store bootstrap (182 панель v2 persist), 156 нейминг/каталоги, 184 гард. Искать: синхронный бесконечный цикл render→effect→setState или merge-цикл каталогов. git diff 29dd79a..a1de3b750 по клиентским файлам i18n/store/layout.
Починено в
v4-ca678c0
Лента
2026-08-05 12:57:49 · backup-opus
ЗАКРЫТ волной BK (прод v4-7690a63, 13:52). КОРЕНЬ (Opus-диагноз): бутстрап-эффекты AppShell зависели от ОБЪЕКТА session — next-auth v5 отдаёт новую ссылку на каждый рефетч, на / смонтированы ДВА SessionProvider → каждая ссылка перегидрирует 9 срезов стора → бесконечный цикл, мёртвый main thread. Фикс: эффекты на authenticatedUserId (строка) + useScopedTranslations deps только примитивы (было 37 scoped-запросов на 13 наборов → стало 13). Регресс-тесты red-before/green-after + матрица 6 форм бутстрапа. ЖИВАЯ ПРОВЕРКА: свежая вкладка рендерит приложение за секунды (было: вечный фриз).
2026-08-05 13:03:27 · backup-opus
REOPEN owner 05.08 14:02: в ЧАСТНОМ окне Safari после логина — вечная ромашка 10-15 мин, «как было раньше» (на v4-7690a63!). Обычное окно вылечено (Chrome свежая вкладка = секунды). Значит вторая петля в private-специфичном пути: подозреваемые из BH — canPersistPrivateClientState, серверное зеркало аватара «для частных окон» (WEB-123), персист выделений (182), zustand persist при недоступном localStorage (retry-цикл записи?), возможное отсутствие SW в private Safari. Opus продолжает охоту (o189b).
2026-08-05 13:55:42 · backup-opus
ФИНАЛ (волна BL, v4-7ae397d): вторая петля снята — AccountIsolationBoundary не различал «другая вкладка держит purge» и «хранилище не пишется» (приватный Safari: QuotaExceeded ИЛИ молчаливая потеря записи) → бесконечный bind-цикл и вечная «Checking account data». Фикс: read-back проба хранилища + degraded-режим без цикла + guard на setItem в setAuthStatus. Матрица бутстрапа 6 форм + private-window тест green. NEEDS-VISUAL owner: главная в ЧАСТНОМ окне Safari.
2026-08-05 14:09:44 · backup-opus
REOPEN 15:07 (v4-7ae397d, BL): приватное окно ВСЁ ЕЩЁ висит. Живая диагностика: ОБЫЧНОЕ окно теперь рендерит и доходит до /reaffirm-age (Age confirmation) — петли 189/189b сняты. Приватное: спиннер Checking account data не гаснет — degraded-режим o189b в РЕАЛЬНОМ WebKit не освобождает boundary (jsdom-симуляция освобождала, живой Safari нет). Третья петля: AccountIsolationBoundary держит checking когда storedOwner никогда не === userId в приватном (localStorage не пишется), нужен in-memory/sessionStorage bind. Охотники: o189c Opus(M4)+DS(интел).
2026-08-05 14:43:42 · backup-opus
Фикс приватного окна ПОСАЖЕН (v4-0d1972d, serving подтверждён, canon, тесты boundary 33/33): in-memory+sessionStorage bind. Самопроверка невозможна — приватный просмотр Safari на QA-маке заблокирован Touch ID/паролем (вводить нельзя). Визуальную приёмку приватного окна делает owner.
2026-08-05T15:56:56Z · backup-opus
o189d посажен в BO (v4-e1060f1): жёсткий дедлайн boundary — не сходится за ~2.5с → релиз в degraded (серверная auth), fail-closed для чужого владельца/незавершённого switch (разлогин). 61/61 тестов. 4-й заход; предыдущие o189/b/c зеленели в jsdom но не лечили WebKit. Ждём owner-проверку приватного окна (msg 10889).
2026-08-05T18:44:15Z · backup-opus
Owner подтвердил 20:10: АРКАДЫ РАБОТАЮТ, выброса в логин при reload больше нет (v4-cef810e, o189e). Сага 189: ромашка убита (o189d), разлогин убит (o189e, телеметрия), Космос жил своей жизнью (WEB-185, тоже закрыт). Остался хвост: пустой кабинет на ПЕРВОМ заходе приватного окна (данные до-заезжают со 2-го reload) — o189f в работе (автодогрузка + second-beacon тайминга next-auth). Тикет держим до посадки o189f.
2026-08-05 20:17:55 · backup-opus
OWNER ПРИНЯЛ 05.08 21:15: «приватное окно, первый заход — кабинет наполняется сам, без второго reload — да, есть, работает». Цепочка o189d (таймаут-разблокировка) + o189e (пустой userId не foreign) + o189f (форс-рефетч сессии до совпадения с server-probe, корень: next-auth v5 глотает первый неудавшийся fetch сессии и кэширует гостя). Закрыто.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-189","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-05 20:17:55