The push title contains "Sender to @recipient" but Communication
Notifications replace the title with the sender name, losing the
recipient info. Extract "to @recipient" and set it as the subtitle.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CDN may serve WebP by default which INImage doesn't reliably handle.
Append @jpeg to the URL to request JPEG format instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Uses INSendMessageIntent to display sender profile pictures in DM
notifications. The NSE downloads the avatar thumbnail and creates a
Communication Notification, falling back gracefully if the download
fails or the avatar URL is absent.
Also adds chat-reaction support to the notification handler on both
iOS and Android.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* disable badge increments for dms
* revert decrementing in js for dms
* reset badge on read notifications
* remove some other code
* prevent duplicate notification events