Отчёты о сбоях и восстановление после ошибок: согласие и запасной экран

Когда экран 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 и ключей перед отправкой.
Чем отчёт о сбое отличается от отчёта о проблеме?
Отчёт о сбое автоматический, минимальный и молчаливый при неудаче. Отчёт о проблеме пишете вы на экране «Сообщить о проблеме»: он показывает, что прилагает, и сообщает, если отправка не удалась.