Отчёты о сбоях и восстановление после ошибок: согласие и запасной экран
Когда экран Senzoukria Desktop падает при отрисовке, граница ошибок заменяет только эту зону карточкой «Этот экран остановился» с кнопками перезагрузки и копирования деталей. Отчёт о сбое уходит, только если вы включили отчёты о сбоях на странице аккаунта, и в нём никогда нет учётных данных, позиций или P&L.
Senzoukria · Документация · Обновлено: сентябрь 2026
Где найти
- Где
- Страница аккаунта → Предпочтения → Отчёты о сбоях (флажок Вкл / Выкл)
- По умолчанию
- Выключено. Ничего не уходит, пока вы не включите
- Точка приёма
- POST https://senzoukria.com/api/crash, тайм-аут 5 с, при сбое молча
- Полезная нагрузка
- kind, message (максимум 1 000 символов), stack (максимум 4 000 символов), appVersion, platform, метка времени
Что это делает
Работают два механизма. Первый — граница ошибок React вокруг каждой защищённой зоны приложения. Если компонент в этой зоне падает при отрисовке, React иначе размонтировал бы всё дерево и оставил чёрное окно; граница ловит ошибку, записывает её в консоль вместе со стеком компонентов и рисует карточку на месте зоны. Остальное приложение продолжает работать: поток данных и подключение к брокеру не затронуты.
Второй — отправщик отчётов о сбоях. Когда граница поймала ошибку отрисовки либо глобальный обработчик увидел необработанный отказ промиса или непойманную ошибку вне React, отчёт собирается и отправляется — но только если вы дали согласие. Настройка хранится локально под одним ключом; её отсутствие означает отсутствие согласия. Отправка идёт по принципу «отправил и забыл»: экран ошибки никогда не ждёт запроса, а неудачная отправка проваливается без всплывающих окон.
Параметры
| Элемент | По умолчанию | На что влияет |
|---|---|---|
| Отчёты о сбоях (страница аккаунта) | Выключено | Во включённом состоянии сбой отправляет версию, платформу и трассировку ошибки на senzoukria.com. В выключенном не уходит ничего; консоль и кнопка копирования продолжают работать |
| Перезагрузить | — | Перезагружает окно (window.location.reload). Сохранённые хранилища восстанавливаются из локального хранилища; подключение к брокеру живёт в бэкенде и не сбрасывается |
| Скопировать детали | — | Копирует сообщение об ошибке, её стек и стек компонентов React в буфер обмена; подпись меняется на «Скопировано». Сбой буфера обмена игнорируется, а не показывается |
Что содержит отчёт
В полезной нагрузке шесть полей: kind (panic для стороны Rust, render для ошибки отрисовки React, unhandled для отклонённого промиса или непойманной ошибки), message, stack, appVersion, platform и метка времени. Сообщение обрезается на 1 000 символах, стек — на 4 000, с сохранением верхних кадров, которые и несут информацию.
Перед попаданием в нагрузку message и stack проходят через очиститель, маскирующий API-ключи ИИ, токены Bearer и Basic, пользовательские пути Windows и Unix (с границей по разделителю пути, чтобы имя учётной записи Windows из двух слов не потеряло вторую половину), адреса почты и чувствительные пары ключ/значение вроде password, token, api_key, user_id, unique_user_id, login или account. Тест закрепляет эти шаблоны в том виде, в каком они реально встречаются в сообщениях об ошибках приложения. Учётные данные брокера, имя счёта, позиции, P&L, торгуемые символы и ключ ИИ в отчёт не попадают никогда.
Ограничитель оставляет по одному отчёту на различимую сигнатуру (kind плюс первые 200 символов вычищенного сообщения) и не более пяти различных сигнатур за сессию, чтобы цикл отрисовки, падающий на каждом кадре, не породил сотни запросов.
Как этим пользоваться
- Если экран показывает «Этот экран остановился», сначала нажмите «Перезагрузить». Если повторится — нажмите «Скопировать детали» и вставьте текст в отчёт с экрана «Сообщить о проблеме», который к тому же сам приложит последние строки ошибок.
- Включите отчёты о сбоях на странице аккаунта, если хотите, чтобы ошибки отрисовки и необработанные ошибки доходили до разработчиков без действий с вашей стороны. Подпись рядом с флажком точно говорит, что уходит, а что нет.
- Экран «Сообщить о проблеме» — отдельный добровольный канал со своими видимыми сообщениями о сбое; отправщик отчётов о сбоях по замыслу автоматический и молчаливый.
Ограничения и подводные камни
- Граница покрывает ошибки отрисовки в своей зоне. Ошибки в обработчиках событий, таймерах и динамических импортах ловят глобальные обработчики: они отправляют отчёт, но карточку не показывают.
- Согласие — это один ключ локального хранилища на этом компьютере; новый профиль, очищенное хранилище или хранилище, недоступное приложению, означают отсутствие согласия, и ничего не уходит.
- Отчёт отправляется на канонический домен с тайм-аутом 5 секунд; если машина офлайн, отчёт отбрасывается, а не ставится в очередь.
Связанные страницы
Эта страница на других языках
Частые вопросы
- Обрушит ли сбой одной панели моё подключение к брокеру?
- Нет. Подключение держит процесс бэкенда. Карточка заменяет только упавшую зону, а перезагрузка обновляет окно, пока подключение остаётся прежним.
- Отправляются ли отчёты о сбоях автоматически?
- Только после того, как вы включите отчёты о сбоях на странице аккаунта. По умолчанию выключено и остаётся выключенным, пока вы не измените это. Даже включёнными они лишаются учётных данных, позиций, P&L и ключей перед отправкой.
- Чем отчёт о сбое отличается от отчёта о проблеме?
- Отчёт о сбое автоматический, минимальный и молчаливый при неудаче. Отчёт о проблеме пишете вы на экране «Сообщить о проблеме»: он показывает, что прилагает, и сообщает, если отправка не удалась.