Browser notifications (Web Push)¶
StockClaw can send system-level notifications to any browser you've signed in from — the moment a FLASH or ALERT signal lands, without you having the tab open. Click the notification and it deep-links back into the dashboard on that specific signal.
What you get¶
- Desktop: macOS Notification Center, Windows Action Center, Linux DE notifications. FLASH banners stay sticky until dismissed; ALERT fades after the OS default.
- Android: lockscreen banner + persistent entry in the notification shade.
- iOS Safari: only after you install StockClaw as a PWA — "Add to Home Screen" from the Share menu, iOS 16.4 or later. Standard Safari tabs do not support Web Push, per Apple's rules.
Clicking the banner:
- If you already have a StockClaw tab open, it focuses that tab and navigates it to the specific signal.
- Otherwise opens a new tab on the signal.
Either way, the dashboard scrolls to that signal card and flashes the accent border for ~2 seconds so it's easy to find.
Enable¶
Settings → Browser notifications → Enable. The flow:
- StockClaw shows a short explainer confirming what you're opting into.
- Browser shows its native permission prompt — choose Allow.
- StockClaw registers your browser's push endpoint with the backend.
- Button flips to Disable.
Each browser you sign in from subscribes separately — your phone and your laptop can both receive, or just one of them, independently. Unsubscribing from one device does not affect the other.
Disable / revoke¶
- Inside StockClaw: Settings → Browser notifications → Disable. One click. Unsubscribes that browser and tells the backend to prune the row.
- Browser-wide: site permissions in Chrome (or equivalent) → revoke notifications for StockClaw. Server-side subscription rows get pruned on next delivery attempt (404/410 from the push service).
iOS PWA install¶
To receive web push on iPhone / iPad:
- Open StockClaw in Safari (Chrome on iOS doesn't count — it uses WebKit but has fewer PWA features).
- Hit the Share icon → Add to Home Screen.
- Launch StockClaw from the home-screen icon (not from Safari). This starts the app in standalone PWA mode.
- Go to Settings → Browser notifications → Enable. iOS will prompt for permission.
- Close the app. Notifications now land on the lock screen.
Privacy¶
Payload contents are encrypted end-to-end between our backend and your browser using VAPID + the subscription's own P-256 keys — intermediate push relays (Apple, Google FCM, Mozilla autopush) cannot read the payload, only route it. We store the subscription (endpoint URL, public keys, user agent) on your push_subscriptions row with the same row-level security as every other table. Nobody else's browser can receive your signals.
Troubleshooting¶
"Enable" button is greyed out and reads "Unsupported":
- Your browser doesn't have a
PushManager(very old Safari, older Firefox). Upgrade the browser.
"Enable" button reads "Blocked in browser":
- You previously denied the permission prompt, and the browser remembers. Click the URL-bar padlock icon → reset notifications to "Ask", then reload.
Subscribed but no notifications arriving:
- Celery workers must be running (pipeline writes + delivery happen there).
- Only FLASH and ALERT signals push; DIGEST/FYI are dashboard-only.
- Try the Console smoke test from the sign-in page documentation to send yourself a local notification and confirm the service worker is alive.
One notification for each Beat cycle instead of one per signal:
- Expected when multiple signals land together — each one becomes its own banner but they share a common icon and share a deep-link back to the specific signal.