fix: restore per-app device switching, harden session teardown, and tighten diagnostic privacy last month
Authored
Cursor Agent 8/13/2026, 9:07:54 PM .NET 8 dropped HSTRING/IInspectable P/Invoke marshallers, so RoGetActivationFactory
threw MarshalDirectiveException and per-app endpoint moves never reached Windows
(GitHub #37). Use manual HSTRING lifetime, gate the flyout UI on COM success, make
session disconnect idempotent (#43), and add a review-before-zip diagnostic export
with path sanitization plus deferred Sentry/GitHub traffic until first-run consent (#41).
Co-authored-by: xmn <xammen@users.noreply.github.com> Parentbff7f10
33 files changed
AGENTS.md +9 −3 EarTrumpet/App.xaml.cs +31 −6 EarTrumpet/AppSettings.cs +2 −0 EarTrumpet/DataModel/Audio/Mocks/AudioDeviceSession.cs +2 −2 EarTrumpet/DataModel/UpdateService.cs +7 −0 EarTrumpet/DataModel/WindowsAudio/IAudioDeviceManagerWindowsAudio.cs +1 −1 EarTrumpet/DataModel/WindowsAudio/Internal/AudioDeviceManager.cs +4 −2 EarTrumpet/DataModel/WindowsAudio/Internal/AudioDeviceSession.cs +16 −4
EarTrumpet/DataModel/WindowsAudio/Internal/AudioDeviceSessionGroup.cs +17 −9
EarTrumpet/DataModel/WindowsAudio/Internal/AudioPolicyConfigService.cs +59 −12
EarTrumpet/DataModel/WindowsAudio/Internal/IAudioDeviceSessionInternal.cs +1 −1
EarTrumpet/Diagnosis/CrashHandler.cs +9 −14
EarTrumpet/Diagnosis/ErrorReporter.cs +44 −2
EarTrumpet/Diagnosis/LocalDataExporter.cs +95 −21
EarTrumpet/Diagnosis/PathSanitizer.cs +64 −0
EarTrumpet/Interop/Combase.cs +61 −4
EarTrumpet/Interop/Helpers/AudioPolicyConfigFactory.cs +11 −5
EarTrumpet/Interop/Helpers/AudioPolicyConfigFactoryImplFor21H2.cs +15 −3
EarTrumpet/Interop/Helpers/AudioPolicyConfigFactoryImplForDownlevel.cs +15 −3
EarTrumpet/Interop/MMDeviceAPI/IAudioPolicyConfigFactoryVariantFor21H2.cs +1 −1
EarTrumpet/Interop/MMDeviceAPI/IAudioPolicyConfigFactoryVariantForDownlevel.cs +1 −1
EarTrumpet/Properties/Resources.Designer.cs +30 −0
EarTrumpet/Properties/Resources.fr-FR.resx +52 −1
EarTrumpet/Properties/Resources.resx +52 −1
EarTrumpet/UI/ViewModels/AppItemViewModel.cs +28 −3
EarTrumpet/UI/ViewModels/DeviceCollectionViewModel.cs +7 −2
EarTrumpet/UI/ViewModels/DeviceViewModel.cs +8 −1
EarTrumpet/UI/ViewModels/FlyoutViewModel.cs +2 −1
EarTrumpet/UI/ViewModels/IAppItemViewModel.cs +1 −1
EarTrumpet/UI/ViewModels/OnboardingViewModel.cs +1 −0
EarTrumpet/UI/ViewModels/SettingsAppItemViewModel.cs +1 −1
EarTrumpet/UI/ViewModels/TemporaryAppItemViewModel.cs +9 −4
PRIVACY.md +62 −19