Commit Graph

65650 Commits

Author SHA1 Message Date
Shubham Padia
4f23bd2e68 help-beta: Decrease heading sizing by a factor of 1.
Fixes #35123.
2025-07-15 09:11:27 -07:00
Alex Vandiver
6d80d4c77f restart-server: Skip weekly restart-server if a deploy is in process.
This is unlikely, but cron running `restart-server` at the random
wrong time mid-deploy could be bad.
2025-07-15 09:07:36 -07:00
Alex Vandiver
a5a5791794 management: Skip hourly crons during deploys.
This is most important for `send_zulip_update_announcements`, which
can race with the version run as a post-deploy hook.  However, all of
these crons can tolerate being slightly delayed, and there's little
benefit to them taking CPU or possibly hitting odd borderline race
conditions when the deploy is in progress.

For safety, we only trust the deploy lockfile if it was created
within the last hour -- deploys should not take more than an hour, and
failing to ever run hourly crons is much worse than perhaps running
them during a real very-long deploy.
2025-07-15 09:07:36 -07:00
Prakhar Pratyush
7d6b18976a api-docs: Fix link formatting and improve status value presentation.
Corrected a broken Markdown link.

Also updated the description of the `status` field to use backticks
with values.
2025-07-15 07:33:16 -07:00
Anders Kaseorg
b1a7db3662 forms: Use monkey-patched SetPasswordForm generic.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-15 07:32:44 -07:00
Anders Kaseorg
3be686fa86 requirements: Upgrade Python requirements.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-15 07:32:44 -07:00
Anders Kaseorg
996eb72e2a install-uv: Upgrade uv from 0.7.15 to 0.7.21.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-15 07:32:44 -07:00
Tim Abbott
bd29fb3e26 push_registration: Fix incorrect line-wrapping. 2025-07-14 15:12:30 -07:00
Mateusz Mandera
374c1a93ee realm_audit_logs: Add clarifying comment to REALM_IMPORTED event. 2025-07-14 15:11:43 -07:00
Mateusz Mandera
35ed45ce44 import: Send Welcome Bot messages to users from non-Zulip exports.
Exports from other apps obviously don't come with Welcome Bot messages -
which isn't a great experience as it is, as those are meant to help with
onboarding. We should generate them for all users at import time.

We limit the set of users to active accounts to make the workload more
reasonable in case of large orgs with plenty of deactivated accounts.
The downside is that an imported user joining after being reactivated
will be lacking these messages. We can re-think this approach if needed.

Fixes #34820.
2025-07-14 15:11:43 -07:00
Mateusz Mandera
a43bdcd166 import: Fix is_realm_imported_from_other_zulip_server logic.
This logic was fundamentally broken:
```
    is_realm_imported_from_other_zulip_server = RealmAuditLog.objects.filter(
        realm=realm, event_type=AuditLogEventType.REALM_EXPORTED
    ).exists()
    if not is_realm_imported_from_other_zulip_server:
        send_zulip_update_announcements_to_realm(
            realm, skip_delay=False, realm_imported_from_other_product=True
        )
```

Because the `REALM_EXPORTED` was only created after the export completed
- meaning it couldn't be included in the export data at all. Thus
considering exports to be "not from Zulip" incorrectly.

We get around this issue by explicitly including an import_source in the
realm dict in the export data from 3rd party apps. The importer can then
rely on this value to determine if it's dealing with a Zulip-originated
export or not.
2025-07-14 15:11:43 -07:00
Mateusz Mandera
1c5c2b79ca import: Fix import of RealmAuditLogs with modified_channel_folder.
RealmAuditLog objects with `modified_channel_folder` set would crash the
import because we were missing the `re_map_foreign_keys` call for the
field.
2025-07-14 15:11:43 -07:00
Prakhar Pratyush
5f8edf669d zerver: Add endpoint to register a push device to server.
This commit adds an endpoint to register a push device
to receive E2EE push notifications.
2025-07-14 14:52:39 -07:00
Prakhar Pratyush
c846302417 send_to_push_bouncer: Avoid repeated code lookup in error handling.
This commit extracts `code` lookup into a local variable
to simplify and de-duplicate the conditional logic for
handling different error codes.
2025-07-14 14:52:38 -07:00
Prakhar Pratyush
afe6986991 register-queue: Add push_devices in response.
This commit adds a `push_devices` dictionary to
`POST /register` response, keyed with push account ID,
where each entry describes the user's push device's
registration status and error code (if registration failed).
2025-07-14 14:52:38 -07:00
Prakhar Pratyush
6a4b06b6f4 zerver: Add PushDevice model.
This commit adds a `PushDevice` model where each row
corresponds to an account on an install of the app
that has attempted to register with the bouncer to
receive mobile push notifications.

This is the core server table storing registrations
that are potentially registered with the mobile push
notifications bouncer service.
2025-07-14 14:52:38 -07:00
Prakhar Pratyush
3c6a3b0d77 zilencer: Add endpoint to register push device to bouncer.
This commit adds a zilencer endpoint to let self-hosted
servers register push devices to whom mobile push notifications
will be sent.

POST "/api/v1/remotes/push/e2ee/register"
Payload: realm_uuid, push_account_id, encrypted_push_registration,
bouncer_public_key

The post request needs to be authenticated with the server’s API key.

Note: For Zulip Cloud, a background fact about the push bouncer is
that it runs on the same server and database as the main application;
it’s not a separate service.
So, as an optimization, we plan to directly call the
`do_register_remote_push_device` function and skip the HTTP request.
2025-07-14 14:52:38 -07:00
Prakhar Pratyush
5facec1cc3 zilencer: Remove 'user_uuid' parameter of 'get_remote_realm_helper'.
The 'user_uuid' parameter of 'get_remote_realm_helper' was only
used for logging when realm lookup fails, but we've never made
use of that detail in practice.

There is no strong reason to keep that.
2025-07-14 14:52:38 -07:00
Prakhar Pratyush
e10d413476 RemotePushDevice: Migrate token_kind from IntegerChoices to TextChoices.
Improves code readability by using string values ("apns", "fcm")
instead of integers (1, 2).
2025-07-14 14:52:38 -07:00
Sayam Samal
7a26c41c42 inputs: Remove JS logic to determine empty/non-empty input fields.
This commit removes the JavaScript logic that was used to determine
whether an input field was empty or non-empty. The CSS pseudo-classes
and selectors seem robust enough to handle the styling based on the
input state without needing additional JS logic at the moment, and
removing this JS logic simplifies the codebase and prevents potential
conflicts with the CSS styles.
2025-07-14 13:58:02 -07:00
Sayam Samal
4341453568 left_sidebar: Improve logic to detect empty filter input with pills.
This commit refines the logic for determining when the filter input with
pills is empty. The JS logic is removed from web/src/topic_list.ts,
as this new logic is now handled in the CSS, common across all filter
inputs with pills — resulting in a consistent and predictable behavior
for empty states on all the new filter inputs.
2025-07-14 13:58:02 -07:00
Sayam Samal
ac27299cc9 left_sidebar: Fix filter input alignment with common left sidebar grid.
This commit adjusts the left and right padding of the input element in
the filter topics input to account for the left and right borders.
This ensures that the text inside the input is aligned with the text in
other elements of the left sidebar grid.
2025-07-14 13:58:02 -07:00
Sayam Samal
c90190bcdb left_sidebar: Make icon column width scale with font size. 2025-07-14 13:58:02 -07:00
Sayam Samal
8b236e6f29 left_sidebar: Stretch filter inputs to fill available space on right. 2025-07-14 13:58:02 -07:00
Sayam Samal
5e92a57adb inputs: Fix input color values deviating from the design.
This follow-up commit fixes the incorrect input color values that were
introduced in the initial commit. This change is most visible in the
'hover' state where the values were incorrectly set to the same values
as that of the normal state, leading to a lack of visual distinction.
2025-07-14 13:58:02 -07:00
Sayam Samal
f3fc26c6ff left_sidebar: Standardize topic list filter input.
This follow-up commit replaces the current left sidebar topic list
filter input implementation with the redesigned input_wrapper
component.

This commit also serves as the base for supporting inputs using the
search_pill_widget, and thus adjusts the previously defined logic at
certain places to ensure that the input pills are handled and
displayed accurately.

Fixes part of #34476.
2025-07-14 13:58:02 -07:00
Sayam Samal
a4dd8e515d input_pill: Move input pill styles to app_variables.css.
This prep commit consolidates the input pill styles into
`app_variables.css` and uses the light-dark notation for the color
variables to avoid specificity issues that arose from `dark_theme.css`.
2025-07-14 13:58:02 -07:00
Sayam Samal
f4ec5f9741 topic_list: Fix and improve selectors related to the topic list filter. 2025-07-14 13:58:02 -07:00
Niloth P
c75a48b63b integrations: Remove Phabricator integration.
Phabricator has not been actively maintained since June 2021.
2025-07-14 12:03:48 -07:00
Sayam Samal
1c58dcddfa compose: Fix buggy tooltip hotkey hint placement in compose send button.
This commit eliminates a bug, introduced in commit
7bc04bb829, where the send button's
tooltip hotkey hint would have incorrect placement when the user had
triggered a tippy instance on the send button while it was disabled.

The reason behind this bug was the conflict between code in the
previously mentioned commit which set the tooltip content to
`display: block` to account for the inline italicized empty topic name
in the error message, and the need for `display: flex` to ensure the
hotkey hint was positioned correctly.
2025-07-14 11:36:19 -07:00
Anders Kaseorg
ea48a283b1 mypy: Add google-re2-stubs.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-07-14 14:33:54 -04:00
Shubham Padia
de472a09f9 help-beta: Add footer to the new help center.
Fixes #35116.
We copied whatever logic we needed from documentation_main.html. We have
not added the policy footer case from that html file into our footer
since that case does not apply to the new help center yet.
We process and pass the support email in the build help center step.
2025-07-14 10:45:40 -07:00
Shubham Padia
37da139442 help-beta: Use CORPORATE_ENABLED instead of SHOW_BILLING_HELP_LINKS.
We should use the generic name of the env variable since we intend to
use it in places without the billing help links context.
2025-07-14 10:45:40 -07:00
Shubham Padia
124da4d588 help-beta: Nested lists should not have 1rem margin.
Fixes #35126.
2025-07-14 10:42:25 -07:00
Lauryn Menard
b24f82e152 help: Update out-of-date icons in help center instructions. 2025-07-14 10:41:17 -07:00
Lauryn Menard
64cdd13c18 help: Remove restore draft/scheduled message icons.
We updated these overlays to only require clicking the selected
draft or message to open them in the compose box.
2025-07-14 10:41:17 -07:00
Lauryn Menard
3bfa4afff9 help: Update docs for message header bar button changes.
These icons were updated in #34777.
2025-07-14 10:41:17 -07:00
Lauryn Menard
3e6492a0fd help: Fix description of edit channel name and description icon. 2025-07-14 10:39:50 -07:00
Lauryn Menard
4473a1ef89 help: Update mobile tabs for channel feed and topic list icons. 2025-07-14 10:39:19 -07:00
Tim Abbott
07bb806b28 streams: Extract access_requested_group_permissions.
This code will need to be called from both API endpoints for creating
channels soon.
2025-07-14 07:44:01 -07:00
apoorvapendse
cb487da45a streams: Set system_groups_name_dict in add_subscriptions_backend.
We need system_groups_name_dict in all cases.

Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-14 07:44:01 -07:00
apoorvapendse
e2f3b64b35 streams: Extract channel creation permissions check logic.
Prep commit to add the channel creation API
endpoint.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2025-07-14 07:44:01 -07:00
Vector73
3fecbe41c5 compose_recipient: Fix fade when narrowing to empty topic only channel.
Previously, narrowing to empty topic only channel keeps message list
faded even if the compose recipient to set to that channel. This commit
fixes this bug.
2025-07-11 16:00:11 -07:00
Vector73
741b38ecfa sidebar: Show "New message" tooltip for empty topic only channel.
Show "New message" tooltip for empty topic only channel instead
of "New topic" in left channel sidebar row.
2025-07-11 16:00:11 -07:00
Alya Abbott
e6845a9b9a help: Document new options for which messages are marked as read. 2025-07-11 15:55:35 -07:00
Tim Abbott
5b1ec00350 remove_single_newlines: Fix double-space issue.
The Flutter mobile apps don't collapse repeated spaces into single
spaces the same way HTML text does, so leading/trailing whitespace in
these automated messages end up rendering weirdly.

The regex previously didn't handle a corner case that appears in the
latest message.

Co-authored-by: Greg Price <greg@zulip.com>
2025-07-11 15:52:24 -07:00
Karl Stolley
77cd886e24 settings_overlay: Remove the settings-section show class on close. 2025-07-11 15:50:12 -07:00
Aditya Kumar Kasaudhan
f6f4e3886e navigation_view: Add "scheduled" to built-in view fragments.
It was missed in #32528.
2025-07-11 15:48:20 -07:00
Aditya Kumar Kasaudhan
76811e0171 event: Fix navigation view event schema validation.
This commit aligns navigation view event type with Python event schema
classes. The schema validation script constructs class names from event
types, so this commit ensures the navigation view event type match the
expected EventNavigationView class names.
2025-07-11 15:48:20 -07:00
Tim Abbott
c584478c76 api_docs: Fix malformed feature level typo. 2025-07-11 14:55:00 -07:00