Summary
The Sound combo box in Settings (Default / None / Subtle) saves and restores correctly, but the selected value is never applied when building toast notifications. Every notification always fires with the system default sound regardless of user preference.
Root cause
SettingsData.NotificationSound is read and written by SettingsWindow.xaml.cs, but none of the ~14 ToastContentBuilder call sites in App.xaml.cs check it. The setting is essentially a no-op.
Relevant code:
- SettingsWindow.xaml.cs lines 46–57, 81–83: reads/writes
NotificationSound correctly.
- App.xaml.cs:
new ToastContentBuilder() is called at lines 571, 600, 657, 674, 1160, 1179, 1187, 1203, 1379, 1416, 1501, 1515, 1526, 1752 — none call .AddAudio().
Proposed fix
Add a helper that translates NotificationSound to a ToastAudio / silent flag:
private void ApplyNotificationSound(ToastContentBuilder builder)
{
switch (_settings.NotificationSound)
{
case "None":
builder.AddAudio(silent: true);
break;
case "Subtle":
builder.AddAudio(new Uri("ms-winsoundevent:Notification.IM"));
break;
// "Default": no-op — use system default
}
}
Then call ApplyNotificationSound(builder) before .Show() at every toast site.
Additional context
The same pattern exists in OpenClaw.Tray.WinUI. The setting was originally discovered as dead code in this comment.
This is a good first issue — straightforward mechanical change, no logic involved, easy to test by changing the setting and sending a test notification.
Generated by Repo Assist · ◷
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/repo-assist.md@cbb46ab386962aa371045839fc9998ee4e97ca64
Summary
The Sound combo box in Settings (Default / None / Subtle) saves and restores correctly, but the selected value is never applied when building toast notifications. Every notification always fires with the system default sound regardless of user preference.
Root cause
SettingsData.NotificationSoundis read and written bySettingsWindow.xaml.cs, but none of the ~14ToastContentBuildercall sites inApp.xaml.cscheck it. The setting is essentially a no-op.Relevant code:
NotificationSoundcorrectly.new ToastContentBuilder()is called at lines 571, 600, 657, 674, 1160, 1179, 1187, 1203, 1379, 1416, 1501, 1515, 1526, 1752 — none call.AddAudio().Proposed fix
Add a helper that translates
NotificationSoundto aToastAudio/ silent flag:Then call
ApplyNotificationSound(builder)before.Show()at every toast site.Additional context
The same pattern exists in
OpenClaw.Tray.WinUI. The setting was originally discovered as dead code in this comment.This is a good first issue — straightforward mechanical change, no logic involved, easy to test by changing the setting and sending a test notification.