mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 09:46:54 +02:00
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This PR adds three parts of the original big bad global error handler (error report builder, sanitization and internal tools UI). ### Error Report Generation - `ErrorReportBuilder`: Produces a detailed, technical report with system context. - Comprehensive data: OS version, architecture, culture, app version, elevation status, etc. - Exception analysis: Coalesces nested exception messages and HRESULT details for clearer diagnostics. <details><summary>Example</summary> <pre> This is an error report generated by Windows Command Palette. If you are seeing this, it means something went a little sideways in the app. You can help us fix it by filing a report at https://aka.ms/powerToysReportBug. (While you’re at it, give the details below a quick skim — just to make sure there’s nothing personal you’d prefer not to share. It’s rare, but sometimes little surprises sneak in.) ============================================================ Summary: Message: Test exception; thrown from the UI thread Type: System.NotImplementedException Source: Microsoft.CmdPal.UI Time: 2025-08-25 18:54:44.3854569 HRESULT: 0x80004001 (-2147467263) Context: MainThreadException Application: App version: 0.0.1.0 Is elevated: no Environment: OS version: Microsoft Windows 10.0.26120 OS architecture: X64 Runtime identifier: win-x64 Framework: .NET 9.0.8 Process architecture: X64 Culture: cs-CZ UI culture: en-US Stack Trace: at Microsoft.CmdPal.UI.Settings.InternalPage.ThrowPlainMainThreadException_Click(Object sender, RoutedEventArgs e) at WinRT._EventSource_global__Microsoft_UI_Xaml_RoutedEventHandler.EventState.<GetEventInvoke>b__1_0(Object sender, RoutedEventArgs e) at ABI.Microsoft.UI.Xaml.RoutedEventHandler.Do_Abi_Invoke(IntPtr thisPtr, IntPtr sender, IntPtr e) ------------------ Full Exception Details ------------------ System.NotImplementedException: Test exception; thrown from the UI thread at Microsoft.CmdPal.UI.Settings.InternalPage.ThrowPlainMainThreadException_Click(Object sender, RoutedEventArgs e) at WinRT._EventSource_global__Microsoft_UI_Xaml_RoutedEventHandler.EventState.<GetEventInvoke>b__1_0(Object sender, RoutedEventArgs e) at ABI.Microsoft.UI.Xaml.RoutedEventHandler.Do_Abi_Invoke(IntPtr thisPtr, IntPtr sender, IntPtr e) ============================================================ </pre> </details> Real-world example: #41362 ### PII Sanitization Framework - `ErrorReportSanitizer`: Multi-layer sanitization pipeline for sensitive data. - Nine specialized rule providers: - `PiiRuleProvider`: Personally identifiable information (emails, phone numbers, SSNs). - `ProfilePathAndUsernameRuleProvider`: Windows user profiles and usernames. - `NetworkRuleProvider`: IP addresses, MAC addresses, network identifiers. - `SecretKeyValueRulesProvider`: API keys, tokens, passwords in key/value formats. - `FilenameMaskRuleProvider`: Sensitive file paths and extensions. - `UrlRuleProvider`: URLs and web addresses. - `TokenRuleProvider`: JWT and other auth tokens. - `ConnectionStringRuleProvider`: Database connection strings. - `EnvironmentPropertiesRuleProvider`: Environment variables and system properties. ### Internals Tools Page A page in settings available in non-CI-builds: <img width="1305" height="745" alt="image" src="https://github.com/user-attachments/assets/3145ecfd-997f-491d-8c8a-6096634b6045" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed
142 lines
3.8 KiB
Plaintext
142 lines
3.8 KiB
Plaintext
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
|
|
(?:^|/)(?i)COPYRIGHT
|
|
(?:^|/)(?i)LICEN[CS]E
|
|
(?:^|/)(?i)third[-_]?party/
|
|
(?:^|/)3rdparty/
|
|
(?:^|/)generated/
|
|
(?:^|/)go\.sum$
|
|
(?:^|/)package(?:-lock|)\.json$
|
|
(?:^|/)Pipfile$
|
|
(?:^|/)power-rename-ui-flags$
|
|
(?:^|/)pyproject.toml
|
|
(?:^|/)sample\.qoi$
|
|
(?:^|/)vendor/
|
|
(?:^|/)WindowsSettings\.json$
|
|
(?:^|/|\b)requirements(?:-dev|-doc|-test|)\.txt$
|
|
(?:|$^ 92.31% - excluded 12/13)/editor/[^/]+$
|
|
/images/launcher/[^/]+$
|
|
/TestFiles/
|
|
[^/]\.cur$
|
|
[^/]\.gcode$
|
|
[^/]\.bgcode$
|
|
[^/]\.rgs$
|
|
\.a$
|
|
\.ai$
|
|
\.all-contributorsrc$
|
|
\.avi$
|
|
\.bmp$
|
|
\.bz2$
|
|
\.cert?$|\.crt$
|
|
\.class$
|
|
\.coveragerc$
|
|
\.crl$
|
|
\.csr$
|
|
\.dll$
|
|
\.docx?$
|
|
\.drawio$
|
|
\.DS_Store$
|
|
\.eot$
|
|
\.eps$
|
|
\.exe$
|
|
\.filters$
|
|
\.gif$
|
|
\.git-blame-ignore-revs$
|
|
\.gitattributes$
|
|
\.gitkeep$
|
|
\.graffle$
|
|
\.gz$
|
|
\.icns$
|
|
\.ico$
|
|
\.ipynb$
|
|
\.jar$
|
|
\.jks$
|
|
\.jpe?g$
|
|
\.key$
|
|
\.lib$
|
|
\.lock$
|
|
\.map$
|
|
\.min\..
|
|
\.mo$
|
|
\.mod$
|
|
\.mp[34]$
|
|
\.o$
|
|
\.ocf$
|
|
\.otf$
|
|
\.p12$
|
|
\.parquet$
|
|
\.pdf$
|
|
\.pem$
|
|
\.pfx$
|
|
\.png$
|
|
\.psd$
|
|
\.pyc$
|
|
\.pylintrc$
|
|
\.qm$
|
|
\.s$
|
|
\.sig$
|
|
\.snk$
|
|
\.so$
|
|
\.stl$
|
|
\.svgz?$
|
|
\.sys$
|
|
\.tar$
|
|
\.tgz$
|
|
\.tiff?$
|
|
\.ttf$
|
|
\.wav$
|
|
\.webm$
|
|
\.webp$
|
|
\.woff2?$
|
|
\.xcf$
|
|
\.xlsx?$
|
|
\.xpm$
|
|
\.xz$
|
|
\.zip$
|
|
^\.github/actions/spell-check/
|
|
^\.github/workflows/spelling\d*\.yml$
|
|
^\.gitmodules$
|
|
^\Q.pipelines/ESRPSigning_core.json\E$
|
|
^\Qdoc/devdocs/localization.md\E$
|
|
^\Qsrc/modules/MouseUtils/MouseJump.Common/NativeMethods/User32/UI/WindowsAndMessaging/User32.SYSTEM_METRICS_INDEX.cs\E$
|
|
^doc/devdocs/akaLinks\.md$
|
|
^NOTICE\.md$
|
|
^src/common/CalculatorEngineCommon/exprtk\.hpp$
|
|
^src/common/ManagedCommon/ColorFormatHelper\.cs$
|
|
^src/common/notifications/BackgroundActivatorDLL/cpp\.hint$
|
|
^src/common/sysinternals/Eula/
|
|
^src/modules/cmdpal/doc/initial-sdk-spec/list-elements-mock-002\.pdn$
|
|
^src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownImagesPage\.cs$
|
|
^src/modules/cmdpal/Microsoft\.CmdPal\.UI/Settings/InternalPage\.SampleData\.cs$
|
|
^src/modules/cmdpal/Tests/Microsoft\.CmdPal\.Core\.Common\.UnitTests/.*\.TestData\.cs$
|
|
^src/modules/colorPicker/ColorPickerUI/Shaders/GridShader\.cso$
|
|
^src/modules/launcher/Plugins/Microsoft\.PowerToys\.Run\.Plugin\.TimeDate/Properties/
|
|
^src/modules/MouseUtils/MouseJumpUI/MainForm\.resx$
|
|
^src/modules/MouseWithoutBorders/App/.*/NativeMethods\.cs$
|
|
^src/modules/MouseWithoutBorders/App/Form/.*\.Designer\.cs$
|
|
^src/modules/MouseWithoutBorders/App/Form/.*\.resx$
|
|
^src/modules/MouseWithoutBorders/App/Form/frmAbout\.cs$
|
|
^src/modules/MouseWithoutBorders/App/Form/frmInputCallback\.resx$
|
|
^src/modules/MouseWithoutBorders/App/Form/frmLogon\.resx$
|
|
^src/modules/MouseWithoutBorders/App/Form/frmMatrix\.resx$
|
|
^src/modules/MouseWithoutBorders/App/Form/frmMessage\.resx$
|
|
^src/modules/MouseWithoutBorders/App/Form/frmMouseCursor\.resx$
|
|
^src/modules/MouseWithoutBorders/App/Form/frmScreen\.resx$
|
|
^src/modules/MouseWithoutBorders/App/Helper/.*\.resx$
|
|
^src/modules/MouseWithoutBorders/ModuleInterface/generateSecurityDescriptor\.h$
|
|
^src/modules/peek/Peek.Common/NativeMethods\.txt$
|
|
^src/modules/peek/Peek.UITests/TestAssets/4\.qoi$
|
|
^src/modules/powerrename/PowerRenameUITest/testItems/folder1/testCase2\.txt$
|
|
^src/modules/powerrename/PowerRenameUITest/testItems/folder2/SpecialCase\.txt$
|
|
^src/modules/powerrename/PowerRenameUITest/testItems/testCase1\.txt$
|
|
^src/modules/previewpane/SvgPreviewHandler/SvgHTMLPreviewGenerator\.cs$
|
|
^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag\.txt$
|
|
^src/modules/registrypreview/RegistryPreviewUILib/Controls/HexBox/.*$
|
|
^src/modules/ZoomIt/ZoomIt/ZoomIt\.idc$
|
|
^src/Monaco/
|
|
^tools/project_template/ModuleTemplate/resource\.h$
|
|
^tools/Verification scripts/Check preview handler registration\.ps1$
|
|
ignore$
|
|
^src/modules/registrypreview/RegistryPreviewUILib/Controls/HexBox/.*$
|
|
^src/common/CalculatorEngineCommon/exprtk\.hpp$
|
|
src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownImagesPage.cs
|