Отчёты о проблемах и приём архивов
Какие данные собирает EyeAuras и как пользователям и авторам шар работать с архивами отчётов
Отчёты о проблемах и приём архивов
Отчёт EyeAuras — это архив с описанием проблемы, диагностическими данными и выбранными вложениями. Мини-приложения на базе EyeAuras используют ту же систему сбора отчётов.
Пользователь может отправить отчёт в поддержку EyeAuras или сохранить архив и передать его автору шары напрямую. Авторы уже могут принимать такие архивы. API для получения отчётов авторами планируется, но пока недоступен.
Как отправить или сохранить отчёт
- Откройте Report a problem в EyeAuras. У мини-приложения может быть своя кнопка, открывающая то же окно. Оно также может появиться после исключения.
- Опишите свои действия, результат и ожидаемое поведение. Мини-приложение может заранее заполнить комментарий; его можно изменить или очистить.
- Выберите нужные логи и другие вложения. Приложите логи того запуска, в котором возникла проблема, даже если уже перезапустили приложение. Если автору нужна конфигурация для воспроизведения, выберите вложение с аурами.
- Отправьте отчёт на центральный сервер EyeAuras или сохраните архив и передайте его через канал поддержки автора.
Отправка в EyeAuras не означает автоматическую доставку всем авторам из списка подписок. Если автор попросил архив, сохраните его и передайте этот файл.
При сохранении и отправке используется один подготовленный снимок диагностических данных. Смена аккаунта или подписок после открытия окна не обновляет этот снимок.
Что находится в архиве
| Файл | Содержимое и условия включения |
|---|---|
comment.txt | Итоговый комментарий, если он не пустой. |
systemInfo.txt | Сведения о системе и процессе, включая версию ОС, имя пользователя Windows, имя компьютера, пути и командную строку. Включается автоматически, если удалось собрать. |
applicationInfo.txt | Приложение, отправитель, лицензия, запуск, статистика дерева и подписки. В текущих клиентах EyeAuras включается обязательно, независимо от выбора логов и конфигурации аур. В старых версиях может отсутствовать. |
stacktrace.txt | Сведения об исключении; обычно выбраны, если доступны. У отчёта, открытого вручную, исключения может не быть. |
.log приложения | Выбранные логи. Недавние файлы выбраны по умолчанию; более ранние запуски можно выбрать в окне отчёта. |
EventLog_*.log, metrics.txt и другие диагностические файлы | События Windows, показатели производительности и другие данные, доступные в конкретном приложении. |
Wnd *.png / Screen *.png | Скриншоты окон приложения и рабочего стола. Доступные скриншоты окон выбраны по умолчанию; скриншоты рабочего стола — нет. |
Auras.zip, файлы конфигурации | Выбранные вложения с деревом аур и настройками. По умолчанию не выбраны. |
В окне можно выбирать необязательные вложения. Обязательные диагностические файлы включаются автоматически. Перед передачей проверьте содержимое: командная строка, текст запуска, логи, скриншоты и выбранная конфигурация могут содержать локальные пути или данные из ваших скриптов.
Информация о приложении
applicationInfo.txt содержит локально доступное состояние на момент подготовки отчёта. Сбор данных не выполняет вход, не обновляет лицензию или подписки и не обращается к серверу.
| Ключи | Что означают |
|---|---|
CapturedAtUtc, App.* | Время снимка, фактическое имя, версия и профиль приложения, готовность и время работы. |
User.Id, User.Name | Отправитель из локального снимка активной лицензии. Это отдельные данные от владельцев шар. |
User.License.* | Тип лицензии, валидность, доступные даты начала и окончания, названия возможностей. Этот блок не содержит ключ лицензии или полную подписанную лицензию. |
Startup.CommandLine, Startup.Config | Исходная командная строка процесса и текст startup.cfg выбранного профиля на момент сбора. Исходный текст сохраняется, даже если парсер запуска не может его прочитать. |
Startup.Parsed.* | Доступные фактические настройки запуска — режимы EyePad, окна и готовности, флаги безопасного режима и режима только чтения, параметры input/run/eval/compile/output. |
Tree.* | Количество папок, аур, деревьев поведения и включённых элементов. Макросы входят в деревья поведения. Текстового дерева и списка имён нет; для этого приложите конфигурацию аур. |
Subscriptions.Count, Subscriptions.N.* | ID и путь папки, тип подписки, ID шары, доступные ревизия, название, владелец и URI, признак локального клона. Каждая подписка или клон занимает отдельную строку. |
UnavailableSections.* | Разделы, которые не удалось собрать. Остальные доступные данные сохраняются. |
Текст startup.cfg читается при подготовке отчёта и может отличаться от файла, использованного при запуске. Данные отправителя и лицензии служат для диагностики и не подтверждают авторизацию. Наличие шары в отчёте не доказывает, что именно она вызвала ошибку.
Формат и пример
Файл записан в UTF-8, каждая строка имеет вид Key=Value. Разделяйте строку по первому =. Регистр ключей важен. Неизвестные ключи и пустые строки можно пропускать; порядок ключей не гарантируется.
В значениях обратный слеш записывается как \\, возврат каретки — \r, новая строка — \n, табуляция — \t. Декодируйте один раз, слева направо, без повторных замен. Знаки равенства и кавычки остаются обычными символами. Булевы значения — true/false, числа записаны независимо от локали, даты — в ISO 8601 UTC.
Version=1 соответствует IPoeEyeConfigVersioned.Version и обозначает границу несовместимого формата. Добавление ключа не меняет эту версию. App.Version — версия самого приложения. Центральный обработчик сейчас поддерживает версию 1. Отсутствующий, нечитаемый или неподдерживаемый контекст не мешает обработке основного отчёта; исходный архив сохраняется.
Неизвестные значения пропускаются. Доступная пустая строка записывается как Key=, пустая коллекция — как Prefix.Count=0. У недоступной коллекции нет счётчика. Индексы коллекций начинаются с нуля.
Имена и ID условные; ниже сокращённый снимок:
Version=1
CapturedAtUtc=2026-10-11T10:15:30.0000000Z
App.Name=DemoMiniApp
App.Version=1.9.10047.0
App.Profile=release
App.IsLoaded=true
App.UptimeSeconds=125
User.Id=8b8fae9e-1c40-4b37-bbc7-c9728c12db34
User.Name=Alice
User.License.Type=Standard
User.License.IsValid=true
User.License.Features.Count=2
User.License.Features.0=EyeAuras.DefaultAuras
User.License.Features.1=EyeAuras.Social
Startup.CommandLine=DemoMiniApp.exe --profile release
Startup.Config={"CommandLine":"--profile release"}\r\n
Startup.Parsed.IsEyePad=true
Tree.TotalItems=7
Tree.Folders=3
Tree.Auras=3
Tree.BehaviorTrees=1
Tree.EnabledItems=6
Subscriptions.Count=2
Subscriptions.0.FolderPath=DemoMiniApp
Subscriptions.0.SubscriptionType=ShareAuraSubscriptionConfig
Subscriptions.0.ShareId=demo-share-one
Subscriptions.0.Revision=12
Subscriptions.0.OwnerUserName=AuthorOne
Subscriptions.0.IsLocalClone=false
Subscriptions.1.FolderPath=Helpers
Subscriptions.1.SubscriptionType=ShareAuraSubscriptionConfig
Subscriptions.1.ShareId=demo-share-two
Subscriptions.1.OwnerUserName=AuthorTwo
Subscriptions.1.IsLocalClone=true
UnavailableSections.Count=0
Как автору шары принимать архивы
Попросите пользователя сохранить отчёт и передать исходный архив с кратким описанием действий для воспроизведения. Одного скриншота окна отчёта обычно недостаточно для диагностики.
Имя по умолчанию имеет вид AppName_version_profile_reportId.7z, например:
DemoMiniApp_1.9.10047.0_release_0123456789abcdef0123456789abcdef.7z
Имя приложения может содержать подчёркивания. При регистрации обращения сохраняйте исходное имя файла и ID отчёта. Сервер EyeAuras также распознаёт .zip с той же схемой имени.
- Прочитайте
comment.txtи доступныйstacktrace.txt, чтобы понять проблему и исключение. - Откройте
applicationInfo.txt: проверьте приложение, версию, профиль, отправителя, параметры запуска и нужную ревизию шары. Если шар или клонов несколько, используйте весь список подписок. - Сопоставьте проблему с логами того запуска. При необходимости попросите архив с более ранними логами или выбранной конфигурацией аур.
- Сохраните оригинальный архив рядом с обращением. Сформированное описание может сокращать длинный текст запуска; полный собранный файл остаётся в архиве.
Если applicationInfo.txt нет, используйте комментарий, сведения о системе и логи. Старые отчёты остаются пригодными для диагностики. Отсутствующие сведения о пользователе, шаре или лицензии не нужно заполнять догадками.
Что записывает центральный обработчик
Для отчётов EyeAuras обработчик сначала использует непустой User.Name, сохраняя прежний поиск имени в сведениях о системе и логах. При наличии данных в YouTrack заполняются строковые поля:
| Поле | Источник |
|---|---|
External Id | ID отчёта из имени архива; используется для поиска дублей в целевом проекте. |
External UserName | Имя отправителя с прежним запасным способом извлечения. |
External AppName | App.Name. |
External UserId | User.Id. |
External ShareId | Первая подписка с непустым ShareId в порядке файла. |
External OwnerUserName | Канонический владелец первой шары и её ревизии на сервере, если удалось определить. |
Все подписки и клоны остаются в описании и исходном файле. Индексируется только выбранная первая шара; последующие не подставляются вместо неё или её владельца. OwnerUserName из клиентского файла — локальная подсказка, а не каноническое имя с сервера. Если ревизия не указана, используется активная серверная; недоступная явно указанная ревизия не заменяется на активную.
Лицензия, возможности, статистика дерева и параметры запуска попадают в описание, а не в отдельные поисковые поля. Исходный архив прикладывается к задаче. Идентичность определяется по точному ID отчёта независимо от состояния задачи. После включения доставки мини-приложений поиск идёт по EA и MAPS; POE обрабатывается отдельно.
Обычные отчёты EyeAuras попадают в EA. PoEBane сохраняет отдельный обработчик и свой целевой проект, по умолчанию POE. Если его импорт отключён, архивы PoEBane_ пропускаются. API для получения отчётов авторами планируется; принимать сохранённые архивы вручную можно уже сейчас.
Отчёты мини-приложений в YouTrack
После включения центральной доставки новые отчёты мини-приложений попадают в EyeAuras MiniApps (MAPS). Старые отчёты сохраняют прежний маршрут. Приостановка доставки оставляет новые архивы в очереди вместо отправки в EA.
Для первой непустой ShareId сервер определяет сведения о шаре и создаёт либо переиспользует группу reports-share-ShareId. Группа общая для всех ревизий этой шары. Отчёт виден внутренней поддержке и этой группе. Если первой шары нет или определить её не удалось, отчёт остаётся внутренним; следующая шара не подставляется для выдачи доступа.
Администратор YouTrack добавляет автора и его команду в нужную группу. Имена пользователя и владельца из отчёта никого не добавляют автоматически. Участники группы могут работать с доступными отчётами, комментариями, состояниями и вложениями; менять заполненные обработчиком поля отчёта, отправителя и шары, проект и видимость может внутренняя поддержка. Помеченные ответы могут отправляться отправителю отчёта; закрытые внутренние заметки не пересылаются.
Доступ распространяется на весь отчёт, включая исходный архив, сведения о лицензии и другие подписки или приложенную конфигурацию. Группа определяет, кто может прочитать отчёт, и не удаляет из архива остальные данные.
После включения обработчик сохраняет идентичность отчёта между EA и MAPS. Закрытие задачи или перезапуск незавершённого импорта не создаёт новую задачу. Сохранённая запись импорта позволяет дозагрузить вложения в уже опубликованную задачу.