sercrod

*push

*push delegates remote push registration and receive/action events to sercrod.push. It is separate from local *notification display.

If delayed checks are acceptable, begin with *background-notification. Use this remote-push route for chat, calls, emergencies, or another feature that requires timely delivery. See the notification route guide.

<button type="button" *push.request-permissions *response="'pushPermissions'">Allow push</button>
<button type="button" *push.register *response="'pushRegistration'">Register device</button>
<p *push.watch *response="'lastPushEvent'"></p>
<button type="button" *push.clear>Stop watch</button>

Timing and data

Register, unregister, permission, and clear actions are explicit. *push.watch starts from activation on clickable elements and automatically once on non-clickable declarations.

Registration writes $push, $push_registration, and $push_token. Permission results also write $push_permissions. Watch callbacks write $push_event and $push_notification; watch start writes $push_watch and $push_watch_id.

Responsibility boundary

The adapter selects a project bridge, Capacitor PushNotifications, browser Web Push, or explicit no-op. Browser registration requires an existing Service Worker registration and an application-server/VAPID public key.

The Capacitor app must install @capacitor/push-notifications. Android also requires the selected Firebase project's google-services.json; iOS requires the Push Notifications capability and Capacitor AppDelegate registration hooks. Confirm current setup in the Capacitor, Firebase, and Apple documentation.

*push does not send notifications or silently upload tokens. Use an explicit *api or *post action to hand a registration result to an application endpoint. Provider accounts, private credentials, token databases, hosting, server-side FCM/APNs delivery, recipient selection, and production notification policy remain application-operator responsibilities.