main
test_push_notification: Rework using `Device` model.
models: Extract zerver.models.alert_words.
ruff: Fix UP006 Use `list` instead of `List` for type annotation.
channel-folders: Add order field and backfill it alphabetically.
clients: Drop "desktop app" substring check.
models: Extract zerver.models.constants.
custom_profile_fields: Rename internal "select" identifiers.
push_notifications: Rework using `Device` model.
realm: Check workplace_users_group value when updating it.
linkifiers: Handle optional groups in expand_reverse_template.
lookups: Adjust for django-stubs change.
models: Do not add an index on just user_message_id.
models: Extract zerver.models.muted_users.
navigation_views: Add backend for navigation views in left sidebar.
compose: Show banner to explain non interleaved view messages fading.
auth: Identify pending invitations by their Confirmation type.
presence: Add helpful in-code comments pointing to API docs.
realm: Log WORKPLACE_USERS_COUNT_CHANGED on setting group change.
upload: Add wrappers for externally-used backend methods.
playgrounds: Validate language input for spaces and reserved keywords.
export: Update status of RealmExport rows while exporting.
migrations: Drop UserProfile.recipient and personal recipient rows.
saved_snippets: Add backend for saved snippets.
message: Use .is_channel_message column instead of is_stream_message().
streams: Add default_push_notifications field to Stream.
models: Migrate ids of all non-Message-related tables to bigint.
user_topics: Index the per-message visibility policy lookup.
event_queue: Don't send new message events to unsubscribed guests.