WEB-185 · Дефект · Граф · web
Космос: ложный «Cosmos needs WebGL» при рабочем GPU (вкладка вернулась WEB-159, но не стартует)
Закрыт
P1 · важно
ведёт: q185-m4
Суть
ЗАКРЫТ 05.08 10:35, прод v4-a1de3b7 (мега-волна BH, 34 коммита). WebGL каскад без failIfMajorPerformanceCaveat. NEEDS-VISUAL: Космос.
Починено в
v4-cef810e
Лента
2026-08-05 10:21:54 · backup-opusREOPEN owner 05.08: тот же «Cosmos needs WebGL». Owner в ЧАСТНОМ окне Safari — детект/фолбэк обязан переживать private-mode; owner ждёт работающий 3D.
2026-08-05 12:57:49 · backup-opusВолна BK: WebGL-детект с фолбэк-контекстами + рабочий Try again. NEEDS-VISUAL owner: Космос в частном окне Safari.
2026-08-05T17:29:56Z · backup-opusOwner НЕ подтвердил 18:36: Cosmos needs WebGL в его основном браузере. Диагноз: owner работает в ПРИВАТНОМ Safari — Safari 17+ в приватных окнах с расширенной защитой БЛОКИРУЕТ WebGL (антифингерпринт). Фолбэк-карточка работает как задумано. Действия: (1) попросил owner-а проверить Космос в ОБЫЧНОМ окне Safari/Chrome; (2) если там ок — доработать карточку: детект приватного Safari и честный текст про причину + авто-открытие 2D. Не закрывать до проверки owner-ом в обычном окне.
2026-08-05T17:34:20Z · backup-opusOwner: НЕ работает и в обычном окне (раньше работало в приватном) — теория приватного Safari снята. Найдено в коде: карточка needs WebGL показывается и при failed=true — т.е. при ЛЮБОМ исключении createCosmosController, которое ПРОГЛАТЫВАЕТСЯ без лога (useCosmosGraph.ts:1425 catch {}). Вероятен регресс конструктора/адаптера, а не WebGL. Роздан o185b: лог+beacon исключения, отдельный текст карточки для construction-failure, поиск корня. 2026-08-05T18:40:09Z · backup-opusOwner подтвердил 20:05 (скрин): Космос загрузился в приватном Safari после BR. Корень (o185b): pointClusters нёс сырой djb2-хеш вместо индекса кластера → cosmos.gl размерял cluster-force как max(index)+1 → аллокация до 2^32 → конструктор бросал, catch{} глотал, карточка врала про WebGL. Починено + честные карточки construct-failed + телеметрия в /api/diagnostics/hang. done
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-185","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-05T18:40:09Z