Spaces:
Running
Running
Почему на Hugging Face «умирали» все кнопки (версии с прогресс-баром)
По фактам из консоли (не гипотезы):
1. SES_UNCAUGHT_EXCEPTION: SyntaxError: missing : in conditional expression
На странице Space подключается SES lockdown (lockdown-install.js). Его парсер/конвейер для кода страницы не эквивалентен последнему движку Firefox/Chrome в части синтаксиса ES2020+.
- Операторы
??(nullish coalescing) и?.(optional chaining) в одном исходнике с большим inline-<script>давали ошибку разбора, интерпретируемую как сломанный тернарный? … :→ missing ':'. - После этой ошибки весь клиентский скрипт приложения не выполняется → не регистрируются ни
onclick, ни делегированиеdata-app-action→ кажется, что «сломались все кнопки».
Исправление: не использовать ?? / ?. в коде приложения; вместо них — функция nv(v, d) и проверки obj && obj.prop.
2. Глобальный #loader
Если на время оптимизатора включать полноэкранный оверлей и по какой-то причине не снять display в finally, все клики уходят в оверлей. Это уже не SES, а логика UI.
Исправление: во время LLM-оптимизации не трогать #loader; прогресс только в локальной панели под кнопками.
3. Строки CSP про inpage.js, Stripe, content.js
В логе часто идут расширения браузера и iframe HF, а не ваш index.html. На диагностику кнопок приложения они обычно не влияют.
Текущая схема (после правок)
- Логика UI в
/static/js/app.js(отдельный файл, не гигантский inline). - Прогресс оптимизатора: панель с
<pre>-логом + тонкая полоса; без блокировки всего экрана. - Поток
/api/v1/optimizer/run-stream(SSE) +/api/v1/optimizer/cancelдля остановки с частичным результатом.