11.1
message: Use .is_channel_message column instead of is_stream_message().
test_mattermost_importer: Condition html2text crash on Python version.
subscription_info: Improve subscriber fetch preformance.
update_subscriber_counts: Add tool to re-sync subscriber counts.
external_auth_id: Add new unique constraint.
retention: Eliminate join with Recipient table when archiving DMs.
openapi: Mark server_supported_permission_settings field as stable.
test-subs: Make new channel name consistent in notification bot test.
events: Add support for sending presence events in modern format.
test_user_groups: Add `durable=True` to the independent transaction.
api_docs: Fix 500 error on `/api/register-remote-push-device`.
grafana: Be more forgiving of missing alert keys.
thumbnail: Avoid BytesIO.getbuffer.
django: Upgrade Zulip to Django 3.2 LTS.
forms: Use monkey-patched SetPasswordForm generic.
realm_creation_form: Capture `import_from` if realm import enabled.
integrations: Prevent logging of MissingHTTPEventHeaderError.
filters: Do not report AVATAR_SALT, or other salts.
i18n: Swap three docs for ellipsis.
ruff: Fix UP007 Use `X | Y` for type annotations.
push_notification: Add support to send E2EE test push notification.
send_email: Set the Date header according to local enqueue time.