Отчёты о проблемах и приём архивов

Какие данные собирает EyeAuras и как пользователям и авторам шар работать с архивами отчётов

Отчёты о проблемах и приём архивов

Отчёт EyeAuras — это архив с описанием проблемы, диагностическими данными и выбранными вложениями. Мини-приложения на базе EyeAuras используют ту же систему сбора отчётов.

Пользователь может отправить отчёт в поддержку EyeAuras или сохранить архив и передать его автору шары напрямую. Авторы уже могут принимать такие архивы. API для получения отчётов авторами планируется, но пока недоступен.

Как отправить или сохранить отчёт

  1. Откройте Report a problem в EyeAuras. У мини-приложения может быть своя кнопка, открывающая то же окно. Оно также может появиться после исключения.
  2. Опишите свои действия, результат и ожидаемое поведение. Мини-приложение может заранее заполнить комментарий; его можно изменить или очистить.
  3. Выберите нужные логи и другие вложения. Приложите логи того запуска, в котором возникла проблема, даже если уже перезапустили приложение. Если автору нужна конфигурация для воспроизведения, выберите вложение с аурами.
  4. Отправьте отчёт на центральный сервер 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 условные; ниже сокращённый снимок:

text
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 с той же схемой имени.

  1. Прочитайте comment.txt и доступный stacktrace.txt, чтобы понять проблему и исключение.
  2. Откройте applicationInfo.txt: проверьте приложение, версию, профиль, отправителя, параметры запуска и нужную ревизию шары. Если шар или клонов несколько, используйте весь список подписок.
  3. Сопоставьте проблему с логами того запуска. При необходимости попросите архив с более ранними логами или выбранной конфигурацией аур.
  4. Сохраните оригинальный архив рядом с обращением. Сформированное описание может сокращать длинный текст запуска; полный собранный файл остаётся в архиве.

Если applicationInfo.txt нет, используйте комментарий, сведения о системе и логи. Старые отчёты остаются пригодными для диагностики. Отсутствующие сведения о пользователе, шаре или лицензии не нужно заполнять догадками.

Что записывает центральный обработчик

Для отчётов EyeAuras обработчик сначала использует непустой User.Name, сохраняя прежний поиск имени в сведениях о системе и логах. При наличии данных в YouTrack заполняются строковые поля:

ПолеИсточник
External IdID отчёта из имени архива; используется для поиска дублей в целевом проекте.
External UserNameИмя отправителя с прежним запасным способом извлечения.
External AppNameApp.Name.
External UserIdUser.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. Закрытие задачи или перезапуск незавершённого импорта не создаёт новую задачу. Сохранённая запись импорта позволяет дозагрузить вложения в уже опубликованную задачу.

Что почитать дальше