CrashSight API Triage Tools
TH1 CrashSight analysis can run without browser automation through these two helpers:
crashsight_api.py: low-level signed OpenAPI calls and sample/detail fetches.crashsight_daily.py: version/date scoped ERROR collection, classification, context fetch, decode input generation, and Markdown report writing.
Credentials are read from:
Temp/CrashSight/crashsight_api_credentials.json
That file is local-only and must not be committed.
Daily Workflow
python Tools\CrashSight\crashsight_daily.py collect --version 0.7.2b --date last_1_day --rows 100 --out-dir Temp\CrashSight\Daily_2026-06-01_0.7.2b
python Tools\CrashSight\crashsight_daily.py fetch-context --version 0.7.2b --date last_1_day --out-dir Temp\CrashSight\Daily_2026-06-01_0.7.2b --sample-rows 5 --sample-docs 2 --access-rows 30 --sleep 0.1
pwsh -NoProfile -ExecutionPolicy Bypass -File Tools\DecodeOnlineError.ps1 -InputPath Temp\CrashSight\Daily_2026-06-01_0.7.2b\blocking_decode_input.txt -OutputPath Temp\CrashSight\Daily_2026-06-01_0.7.2b\blocking_decoded.txt
python Tools\CrashSight\crashsight_daily.py write-reports --version 0.7.2b --date last_1_day --out-dir Temp\CrashSight\Daily_2026-06-01_0.7.2b --report-dir MD\CrashSight_2026-06-01_0.7.2b_1day --contexts-per-report 3
Classification Rule
The daily tool classifies every CrashSight ERROR issue into one of two buckets:
blocking: real exceptions, native CrashSight exception rows, orUnityLogErrorrows that wrap a concrete exception object/stack.logerror: project diagnosticLogSystem.LogErrorrows without a concrete exception object/stack.
Blocking reports are merged by root-cause family and written under
MD/CrashSight_<date>_<version>_1day/blocking/. Non-blocking diagnostics are
merged into logerror_summary.md.