Behaviour-preserving move of ShellPage side effects into named hooks:
- useShellSounds: audio ducking, the app-start sound and the sounds for
bots that need the user, finished work, run errors, handoffs and group
sparks.
- useHeuteActionCount: the 15-second Today brief poll behind the sidebar
badge.
- useBrowserNotifications: pending and delivered browser notification
bookkeeping plus notifyBrowserForEvent / flushPendingBrowserNotifications.
The hooks run where the code was. The Today poll effect sat between the
app-start sound and the bot status sound; it now runs just before the sound
hook, ahead of the two mount-only audio effects it does not interact with.
Effect bodies, refs and dependency arrays move verbatim.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MRtGG9ARfqqhma3t85Ro2u