System messages (watch_triggered, mcp_deployed, peer_joined, etc.) have senderPubkey='system' with empty ciphertext. The push handler now formats them as readable plaintext instead of failing to decrypt. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>