Owner.expoPushToken + owner.registerPushToken/clearPushToken, plus a best-effort Expo push send wired into notify() alongside the existing in-app Notification row. Missing/expired token or unreachable Expo push service silently no-ops — push delivery must never break the underlying action it's attached to. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>