Why
With N bridges streaming logs, notification noise is multiplied. Users need per-bridge enable/mute and visual provenance.
What
NotificationPreferences gains an optional per-bridge override map: [BridgeID: Set<NotificationCategory>]. If the bridge has no entry, fall back to global.
InAppNotification carries bridgeID. The overlay displays a small bridge badge on each notification card.
- Add a "Mute notifications" toggle on each Saved Bridges row — silences bridge X without disconnecting it.
Files
Shellbee/Core/Store/NotificationPreferences.swift — per-bridge override.
Shellbee/Core/Store/AppStore+Notifications.swift — filter call respects per-bridge setting.
Shellbee/Features/Notifications/InAppNotificationOverlay.swift — display badge.
Shellbee/Features/Settings/SavedBridgesView.swift — mute toggle.
Verification
- Spam logs from bridge A via test center while bridge B is muted in saved-bridges settings; only bridge A notifications appear in the overlay.
- Mute bridge A and unmute bridge B; behavior reverses.
Phase
Phase 2 of multi-bridge support. Depends on #2.2.
Why
With N bridges streaming logs, notification noise is multiplied. Users need per-bridge enable/mute and visual provenance.
What
NotificationPreferencesgains an optional per-bridge override map:[BridgeID: Set<NotificationCategory>]. If the bridge has no entry, fall back to global.InAppNotificationcarriesbridgeID. The overlay displays a small bridge badge on each notification card.Files
Shellbee/Core/Store/NotificationPreferences.swift— per-bridge override.Shellbee/Core/Store/AppStore+Notifications.swift— filter call respects per-bridge setting.Shellbee/Features/Notifications/InAppNotificationOverlay.swift— display badge.Shellbee/Features/Settings/SavedBridgesView.swift— mute toggle.Verification
Phase
Phase 2 of multi-bridge support. Depends on #2.2.