Repository navigation
Oopsling 1.0.0
Crash reports for .NET apps that send nothing: after a crash, the user files the report as a GitHub issue from their own browser.
Try it
dotnet add package Oopsling.Avalonia- Call
CrashReports.Start("My App", "owner/my-app")first thing inMain. - Call
CrashReportWindow.ShowUnshown(desktop.MainWindow)where you create your main window, then crash your app and start it again.
What's in it
- Masked before it's written: home folders, user, machine and domain names, and tokens, in every path shape found so far, including JSON-escaped and percent-encoded ones.
- Shown once: at the next launch, a window shows the report with Report on GitHub, Copy and Dismiss.
- Filled-in issues: Report on GitHub opens your repo's new-issue page with the report in it. A report too long for a link goes on the clipboard whole.
- Safe in a dying process: the handler never marks a crash handled, never changes how the app exits, and masks a huge message in linear time.
- Tray apps:
ShowUnshown()with no owner shows the report on its own. - NativeAOT and trim safe on Windows, macOS and Linux, with no network code at all.
Heads-up
- Needs .NET 10 and Avalonia 12.
- If your repo has issue templates, keep blank issues enabled, or some users may get the template picker instead of the filled-in issue.
- Stack overflows,
Environment.FailFastand native crashes end the process before any handler runs, so they leave no report. - NativeAOT stacks show offsets instead of line numbers.