Commit Graph
57 Commits
Author SHA1 Message Date
David Battersby 01e7f27607 FIX: category badge hide parent with ancestors (#35734)
The subcategory dropdown is showing parent categories due to ancestor
data being passed to the category link component. The ancestor option
should respect the `hideParentCategory` option passed down from
select-kit.

### Before

<img width="489" height="322" alt="Screenshot 2025-10-31 at 2 19 49 PM"
src="https://github.com/user-attachments/assets/17ce5002-0c69-4a9f-8d21-62e7a4bb517e"
/>


### After

<img width="482" height="338" alt="Screenshot 2025-10-31 at 2 19 16 PM"
src="https://github.com/user-attachments/assets/1d251649-f77f-48cb-b407-bdbf40627607"
/>
2025-10-31 14:47:55 +04:00
Joffrey JAFFEUX 57173bf961 DEV: implements a <DOTP /> component (#35149)
This component can be used for any code to be input by the end user.

Example usage:

```gjs
<DOTP @onFill={{this.onFill}} @onChange={{this.onChange}} @slots={{4}} />
```

It supports:
- variable number of slots
- `@onFill` callback, fired when all the slots are filled
- `@onChange` callback, fired on every change
- pasting
- cleaning input data (eg: when pasting 1 2 3 4 5 6 it will be set as
123456)
- look and feel of digicode

A styleguide has been added to try this component:
`/styleguide/atoms/otp`
2025-10-31 10:02:54 +01:00
Régis Hanol 45286f84d1 FIX: UI showed wrong error message when deleted a moderator (#35496)
The UI wasn't "synced" with the backend and showed the wrong error
message when trying to delete a moderator.

In the back-end, only admins can't be deleted.
In the front-end, it was tied to a "staff" check.

Ref - https://meta.discourse.org/t/-/386013
2025-10-31 09:40:16 +01:00
Isaac Janzen 055da4ac16 DEV: Add post-menu-like-button-icon value transformer (#35720) 2025-10-30 11:48:51 -05:00
Yuriy Kurant 21447cdaa4 DEV: migrate from Advanced Search banner to Welcome banner (#34534)
1. Changes translation to a more meaningful: `welcome_banner.search` =>
`welcome_banner.search_placeholder`.
* and passes along translation key, rather then `i18n` helper in
`<SearchMenu>` - to make translation handling more consistent

2. Transitions communities from the **Advanced Search Banner** (ASB)
theme component to the **core welcome banner** (CWB). It handles the
transition in three major steps:
* migrates site settings: task
"themes:advanced_search_banner:migrate_settings_to_welcome_banner"
* migrates translations: task
"themes:advanced_search_banner:migrate_translations_to_welcome_banner"
* excludes ASB from themes using it, enables CWB, disables ASB: task
"themes:advanced_search_banner:exclude_and_disable"

### Settings migration
1. Happy path
<img width="1029" height="192" alt="Screenshot 2025-10-29 at 12 40 51"
src="https://github.com/user-attachments/assets/5d29ef48-ce60-4222-b32a-217390967b8d"
/>

### Translations migration
1. Migrates overridden and default texts
<img width="1062" height="291" alt="Screenshot 2025-10-29 at 12 44 26"
src="https://github.com/user-attachments/assets/c43d51a4-59f8-4751-8abb-ae8824a7100f"
/>

### Exclude ASB, enable CWB, disable ASB

2. When ASB is not included in any of themes, all migrations are
skipped, except for disabling ASB
<img width="807" height="458" alt="Screenshot 2025-10-30 at 11 48 43"
src="https://github.com/user-attachments/assets/34e7bd5f-b334-4833-89a1-00d02faac23b"
/>
2025-10-30 12:00:42 +08:00
Sam 5a8d31385c FIX: set reminder options on menu render (#35694)
Without this when we set bookmark reminders the time is based on when
the element was first added to the page which may be much prior
2025-10-30 12:40:47 +11:00
Martin Brennanandawesomerobot d4ac43e605 FEATURE: Upcoming changes part 1 (#34617)
This PR introduces part one of the "Upcoming changes" interface for
Discourse admins.

The upcoming changes feature is an enhancement around our existing
site-setting based feature flagging and experiments system. With some
light metadata, we can give admins a much better overview of the current
work we are doing, with ways for them to opt-out in early stages and
opt-in to things that we haven’t yet turned on by default for them.

This system, along with encouraging a more liberal use of site setting
flags for features, experiments, and refactors in the app, should
minimise the problem of breakages and disruptions for all Discourse
users. It is also our intent with this system for it to be easier for
designers to add and remove these changes.

Finally, it also gives us a kind of running changelog that we can use to
communicate with site owners before releases and “What’s new?” updates.

### FOR REVIEWERS

This initial PR is gated behind a hidden `enable_upcoming_changes` site
setting, because there is still more work to do before we reveal this to
admins.

To test the UI, you can add this metadata under any boolean-based site
setting, though upcoming change settings will specifically be hidden:

```
upcoming_change:
   status: "alpha" (see UpcomingChanges.statuses.keys)
   impact: "feature,staff" (feature|other for the first part, staff|admins|moderators|all_members|developers for the second part)
   learn_more_url: "https://some.url"
```

To test the images, add an image under `public/images/upcoming_changes`
with the file name as `SITE_SETTING_NAME.png`

### Interface

Admins can see the following in the interface for upcoming changes:

* The status of the change. Changes can progress along these statuses:
   * Pre-Alpha
   * Alpha
   * Beta
   * Stable
   * Permanent
* The impact of the change. This is split into Type and Role. Type can
be "Feature" or "Other" for now. Changes may affect the following roles:
   * Admins
   * Moderators
   * Staff
   * All members
* The plugin that is making the change
* The groups that are opted-in to the change. Admins can control these
groups for a gradual rollout. If a change is enabled, it is limited to
these groups.
* In some cases, an image related to the change, behind the "Preview"
link
* A link to learn more about the change

Admins can filter the changes by name, description, plugin, status,
impact type, and whether the change is enabled.

### Promotion system

For our hosted customers, we intend to have a status-based
auto-promotion system as changes progress.

For all sites, once a change reaches the Stable status, if an admin
opts-out of that change it will generate an admin problem message that
will be shown on the dashboard.

For self-hosted Discourse admins, changes will only be forcibly enabled
when they reach the Permanent state.

### Notification system

A notification system for upcoming changes so admins can stay informed
will be added in a followup PR.

---------

Co-authored-by: awesomerobot <kris.aubuchon@discourse.org>
2025-10-30 10:46:14 +10:00
Martin Brennan 93862b98dd FEATURE: Convert watched_precedence_over_muted to default site setting (#35671)
We have a setting and a user option called watched_precedence_over_muted
. This is supposed to allow members to see/be notified of topics in
categories they are watching even if those topics also include a tag the
user has muted, or vice-versa if they disable this option.

However, this setting and user option combination doesn't follow our
existing default_ user preference site setting system, where admins can
set a default for all users, but users can change the preference for
themselves. This is leading to a bug in the topic feed logic.

If the site setting watched_precedence_over_muted is set to true, and
the user preference is set to false, the user preference is essentially
ignored. This will lead to users seeing topics with muted tags inside a
watched category feed.

This commit converts watched_precedence_over_muted to a proper default
user preference site setting, which admins can set for all users at
once, then users can override individually.
2025-10-30 10:04:18 +10:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 25afe176ce Build(deps-dev): Bump vitest from 4.0.3 to 4.0.5 (#35688)
Bumps
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)
from 4.0.3 to 4.0.5.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
-
[Commits](https://github.com/vitest-dev/vitest/commits/v4.0.5/packages/vitest)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-29 23:27:42 +01:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 660993c0ad Build(deps-dev): Bump @swc/core from 1.13.5 to 1.14.0 (#35687)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.13.5 to
1.14.0.
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/swc-project/swc/compare/v1.13.5...v1.14.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-29 22:37:47 +01:00
Sérgio Saquetim 0a6c7a5f28 FIX: Infinite scrolling on user notification pages; modernize controller (#35677)
Modernizes the user notifications controller/template to native Ember
patterns and corrects infinite scrolling behavior.

* Convert legacy computed properties to getters; rely on model.content
and model.loading
* Fix memory leak build notification items with
curryComponent(RelativeDate) instead of `<template>`
* Remove listContainerClassNames; compose classes in template with
concatClass and avatar toggle
* Update markRead to set read on model.content; simplify updateFilter
* Adjust unit tests to use ResultSet and updated access patterns
* Add system spec validating progressive loading on scroll (infinite
scrolling)
2025-10-29 15:28:06 -03:00
Ted Johansson e932298486 FEATURE: Add new, unified image_quality site setting (#35467)
We recently hid multiple very technical site settings related to image quality. In this PR we add a unified image_quality setting.

Power users can still configure the individual settings (now defaulting to 0) and they will take precedence.
2025-10-29 13:17:28 +08:00
Gary PendergastandKrzysztof Kotlarek 3b3064498b FEATURE: Update the ReviewableUser UI for the review queue refresh. (#35515)
##  What's This?

See: t/165312

This is an initial update to make `ReviewableUser`s work inside of the
refreshed review queue experience.

## 📺 Screenshots

<img width="1148" height="524" alt="Screenshot 2025-10-27 at 10 35
29 am"
src="https://github.com/user-attachments/assets/c9c52904-0706-4338-91a4-ca944ce19e89"
/>

---------

Co-authored-by: Krzysztof Kotlarek <kotlarek.krzysztof@gmail.com>
2025-10-29 08:54:08 +08:00
Sérgio Saquetim 6f06709643 DEV: Replace ArrayProxy with tracked array for ResultSets (#35527)
Refactors ResultSet handling to use tracked arrays and native array
APIs, removing ArrayProxy semantics.

- Access items via .content across controllers, routes, components, and
templates (conditionals, #each, find, map)
- Replace Ember array mutators on ResultSets:
  * removeObject → removeValueFromArray
  * addObjects → addUniqueValuesToArray
  * setObjects → content.splice(...)
  * unshiftObjects → content.unshift(...)
- Use modern native APIs on ResultSets:
  * toSorted for non-mutating sort
  * .at(-1) for last element access
- Update adapter/util logic to iterate results.content (e.g., theme
afterFindAll, default theme lookup)
- Initialize tracked collections where needed (e.g., themes list via
TrackedArray) to maintain reactivity
2025-10-28 16:04:09 -03:00
Renato Atilio 052b07a7f0 FIX: avoid ProseMirror handling paste when unauthorized (#35640)
When `authorizesOneOrMoreExtensions` is `false`, we don't call
`ComposerUpload#setup` to add the paste event listener, which originally
handles the `preventDefault`:


https://github.com/discourse/discourse/blob/d1e1c02fcb0cbc6722280afb6e086cb6a8b53882/frontend/discourse/app/components/composer-editor.gjs#L274-L276


https://github.com/discourse/discourse/blob/d1e1c02fcb0cbc6722280afb6e086cb6a8b53882/frontend/discourse/app/lib/uppy/composer-upload.js#L151-L153


https://github.com/discourse/discourse/blob/d1e1c02fcb0cbc6722280afb6e086cb6a8b53882/frontend/discourse/app/lib/uppy/composer-upload.js#L566-L569

This makes it so ProseMirror handles paste events itself, which leads to
base64 data src images. This PR adds a custom paste handler for
`prosemirror-editor` that prevents default in this case.
2025-10-28 12:21:04 -03:00
Renato Atilio 118b182dba FIX: (safari-only) avoid image duplication on cross-window drop to rich editor (#35643)
Exclusively on Mac Safari, dragging and dropping an image from another
window to the composer is processing the image twice, one as an HTML
paste, another as an upload.

This `drop` handler is intended to delegate the processing so Uppy's
`DropTarget` can handle the upload.

This is very hard to add a test for, unfortunately.
2025-10-28 11:33:36 -03:00
Renato Atilio de3be31f48 FIX: admin theme grid preview link missing subfolder path (#35645)
Uses `getURL` to prepend the subfolder path if necessary.
2025-10-28 11:29:29 -03:00
Renato Atilio a61009284e UX: re-uses the autocomplete hashtag cache when applied to the rich editor (#35532)
Re-uses the autocomplete results cache to avoid a slight flicker when
selecting a hashtag from the results menu.

Before


https://github.com/user-attachments/assets/cfdf668a-3d12-4c28-9a67-5c6781195fc9

After


https://github.com/user-attachments/assets/e4025927-e3e1-4311-a3d2-2bd80c979d6e
2025-10-28 10:54:19 -03:00
Juan David Martínez Cubillos d7487b00c6 FIX: Show flair visibility warning when creating hidden groups with icons or uploaded images (#35517)
**Description**

When creating a group with limited visibility (ie, not everyone), the
warning about group name visibility was missing. This occurred because
the logic involved was in another component that was not rendered in
this form. After refactoring the logic involved the flair is still
visible in both places and in all other previous places.

[Meta issue
link](https://meta.discourse.org/t/warning-that-flair-will-make-group-visible-for-everyone-doesnt-work-for-image-uploads/385552)

Group creation form
**Before**

<img width="1237" height="1005" alt="imagen"
src="https://github.com/user-attachments/assets/ba4af002-1594-4830-8aa0-e4fa33cf7652"
/>

**After**

<img width="1989" height="1090" alt="imagen"
src="https://github.com/user-attachments/assets/71608738-9515-4db5-8fb4-da4a05d54c98"
/>

Manage group page
**After**
`g/test_group/manage/profile`
<img width="1393" height="1317" alt="imagen"
src="https://github.com/user-attachments/assets/7ae9c1a6-33b8-4829-9da4-d10f7010d90c"
/>

`g/test_group/manage/membership`
<img width="1426" height="1228" alt="imagen"
src="https://github.com/user-attachments/assets/ef7edfd4-baa1-4dfa-ba5f-4cf8f7e2a752"
/>

`g/test_group/manage/interaction`
<img width="1441" height="1452" alt="imagen"
src="https://github.com/user-attachments/assets/10aec54b-7a47-432d-9051-400d1b2dc3b6"
/>
2025-10-28 12:58:35 +01:00
Sam 368690f850 UX: when closing lightbox avoid jitter if thumb is cropped (#35646) 2025-10-28 13:11:04 +11:00
Alan Guo Xiang Tan dea00180a9 FIX: Can't update close based on last post timer to close timer (#35541) 2025-10-28 09:07:43 +08:00
David Taylor 9322a46fa4 DEV: Remove unneeded const self = this; from qunit tests (#35632)
This was required in older versions of Ember. But now, bare template
tags can access `this.`. This commit was created by upgrading lint-configs, and then running 
`pnpm lint:js:fix && pnpm lint:prettier:fix`

Rule development: https://github.com/discourse/lint-configs/pull/154
2025-10-27 18:07:22 +00:00
David Taylor 88d4e242ea DEV: Remove RouteTemplate wrapper (#35414)
Ember now has native support for route components, so we don't need the wrapper. This commit was generated automatically using `pnpm lint:js:fix && pnpm lint:prettier:fix`.
2025-10-27 15:38:00 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 6024246ecf Build(deps): Bump magic-string from 0.30.19 to 0.30.21 (#35612)
Bumps [magic-string](https://github.com/Rich-Harris/magic-string) from
0.30.19 to 0.30.21.
- [Release notes](https://github.com/Rich-Harris/magic-string/releases)
-
[Changelog](https://github.com/Rich-Harris/magic-string/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/Rich-Harris/magic-string/compare/v0.30.19...v0.30.21)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 15:38:55 +01:00
David Battersby 29356fa136 DEV: enable new lightbox by default (#35625)
Adds the experimental lightbox to admin site settings and enables it by
default.

Internal ref: /t/-/165698
2025-10-27 17:07:08 +04:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1590965968 Build(deps): Bump immer from 10.1.3 to 10.2.0 (#35613)
Bumps [immer](https://github.com/immerjs/immer) from 10.1.3 to 10.2.0.
- [Release notes](https://github.com/immerjs/immer/releases)
- [Commits](https://github.com/immerjs/immer/compare/v10.1.3...v10.2.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 13:51:55 +01:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 5634a3108a Build(deps-dev): Bump vitest from 4.0.2 to 4.0.3 (#35610)
Bumps
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)
from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
-
[Commits](https://github.com/vitest-dev/vitest/commits/v4.0.3/packages/vitest)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 13:50:12 +01:00
David Taylor 09e8a87316 DEV: Modernize composer-messages implementation (#35627)
Replaces resolver-based template lookups with simple components.

Added a value transformer for plugins to modify the components if
needed. This does not appear to be a common or documented pattern, so
this change does not include backwards-compatibility for plugins which
may have been adding their own messages in the `templates` directory
2025-10-27 12:42:38 +00:00
David Taylor 65282022a1 DEV: Remove unused site service in templates/review/show (#35624)
The lint rule missed this one because of the RouteTemplate wrapper. But
that problem will be fixed in
https://github.com/discourse/discourse/pull/35414
2025-10-27 11:43:03 +00:00
Joffrey JAFFEUX e37cfcda1d DEV: fixes linting (#35623)
Different PRs ended up removing the need for this import, but each of
them still needed it so they were all green.
2025-10-27 10:15:20 +00:00
Joffrey JAFFEUX b9c47d4dec FIX: ensures edited post in fast edit is not mutated (#35622)
The `toggleFastEdit` has an async function in the middle of it and we
were using a global post object which can take time and things can
happen to our post object (most likely be nulled) which can lead to
unexpected behavior. The edited post is now saved at the beginning of
the toggling preventing this issue.

There are already specs for this behavior, but this specific case is
hard to test.
2025-10-27 10:49:22 +01:00
Joffrey JAFFEUX 2cd801bf31 FIX: improves position of post toolbar on iOS (#35574)
Since iOS 26 it seems the callout from iOS is following this heuristic:
position the callout where there's the most space. When it used to
favour positioning it above the selection.
2025-10-27 10:47:21 +01:00
Joffrey JAFFEUX fc791d2bf7 UI: show magnifying glass on left for picker (#35621)
Before:

<img width="449" height="74" alt="Screenshot 2025-10-27 at 10 05 59"
src="https://github.com/user-attachments/assets/66252246-233e-41d2-9865-b0dbf7dfd076"
/>

After:

<img width="433" height="73" alt="Screenshot 2025-10-27 at 10 05 38"
src="https://github.com/user-attachments/assets/5dfb894b-31ac-46e3-a19d-2fe15c787a42"
/>
2025-10-27 10:47:10 +01:00
Joffrey JAFFEUX cb116b534d DEV: removes ios hack fixed in iOS 26 (#35620)
This is not such an important bug that we need to carry this over for
old versions.
2025-10-27 10:47:02 +01:00
Joffrey JAFFEUX 0804046ef6 FIX: improves modal on iOS when input is focused (#35619)
This commit removes various hacks and replace them by using the new
modifier: `{{preventScrollOnFocus}}`.

Applied this fix to:
- emoji picker modal
- fast edit modal
- add post notice

We might have other modals to fix in the future. Generally the fix
should be the same, order matters though, and the modifier has to be
before any `{{autoFocus}}` or similar behavior.
2025-10-27 10:46:47 +01:00
David Taylor 51501cb281 FIX: Restore support for normalized plugin routes under admin/ (#35598)
Following 37648149c4, it became impossible
to resolve some deprecations with plugin admin templates. This commit
fixes that problem, and also resolves the deprecation for the
chat-integration plugin.
2025-10-27 09:19:06 +00:00
Joffrey JAFFEUX bb8b5c349e UX: simplify PM participant removal (#34022) 2025-10-27 08:17:00 +01:00
David Battersby 62ed3bed2f UX: close lightbox on backdrop tap on mobile (#35571)
Allows closing of lightbox by tapping outside of the image on mobile,
while retaining the toggle UI functionality when single tapping an image
on mobile lightbox.

This change also adds a useful system helper for `tap_screen_at(x, y)`
when working with mobile specs. To use it just set `mobile: true` on the
test or surrounding context block.
2025-10-27 10:23:16 +04:00
Krzysztof Kotlarek 58165eec7f DEV: Extract help resources into conditional component (#35592)
Extracts the help resources section from the reviewable item template
into a separate `ReviewableHelpResources` component.

The help resources are now conditionally rendered based on a `@showHelp`
parameter, allowing them to be shown only when viewing a single
reviewable item (review/show route) and hidden in the queue list view.

Also removes unused "Copy Link" and "View Source" buttons from the
moderator actions section, and adjusts the claimed topic section to only
render when claim functionality is enabled.
2025-10-27 13:53:58 +08:00
Renato Atilio 3b1964f3ed FIX: rich editor input rule wrapping missing options (#35548)
Adjusts the input rule wrapper to properly use InputRule attributes when
applicable.
2025-10-26 12:39:04 -03:00
Jarek Radosz 47559c86f5 DEV: Add a default options arg to closeOnClickOutside (#35603) 2025-10-25 00:49:53 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 416f8fb64e Build(deps-dev): Bump @ember/test-helpers from 5.3.0 to 5.4.0 (#35586)
Bumps
[@ember/test-helpers](https://github.com/emberjs/ember-test-helpers)
from 5.3.0 to 5.4.0.
- [Release
notes](https://github.com/emberjs/ember-test-helpers/releases)
-
[Changelog](https://github.com/emberjs/ember-test-helpers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/emberjs/ember-test-helpers/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-24 22:32:02 +02:00
chapoi c252698c96 UX: add missing btn class (#35562) 2025-10-24 09:54:52 -04:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> e621f87906 Build(deps): Bump prosemirror-state from 1.4.3 to 1.4.4 in the prosemirror group (#35583)
Bumps the prosemirror group with 1 update:
[prosemirror-state](https://github.com/prosemirror/prosemirror-state).


Updates `prosemirror-state` from 1.4.3 to 1.4.4
-
[Changelog](https://github.com/ProseMirror/prosemirror-state/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/prosemirror/prosemirror-state/compare/1.4.3...1.4.4)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-24 14:25:46 +02:00
dependabot[bot] aeda5eecbb Build(deps): Bump the babel group with 3 updates (#35582) 2025-10-24 13:25:57 +02:00
dependabot[bot] 3b0653fc07 Build(deps-dev): Bump vitest from 4.0.1 to 4.0.2 (#35584) 2025-10-24 13:24:51 +02:00
Alan Guo Xiang Tan f25dca494c UX: Link to post when clicking on subject in received email logs (#35567)
This commit also updates the rejected email logs tab to show the details
of the rejected email when the error message is clicked instead of the
subject.
2025-10-24 10:19:30 +08:00
Martin Brennan b45676e7c5 FIX: Handle media optimization worker load timeouts and errors (#34943)
This commit handles an issue some customers are having with
the media optimization worker when uploading images.

1. Sometimes the `new Worker()` call hangs indefinitely. To handle
   this, we can check if it installed within 3 seconds, and if not
   we fail and reject the promise.
2. We also add a `try...catch` around the `new Worker()` call to
   catch any CSP issues or exceptions that may occur during worker
   instantiation.
2025-10-24 11:13:00 +10:00
Yan 4d8e8c2cb8 DEV: Add PluginOutlets to Second Factor page and modal (#35465)
This PR adds PluginOutlets to Second Factor page for the User and the
modal where the instructions provided.
2025-10-23 16:57:22 +01:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> f19f6077f0 Build(deps-dev): Bump vitest from 3.2.4 to 4.0.1 (#35558)
Bumps
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)
from 3.2.4 to 4.0.1.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
-
[Commits](https://github.com/vitest-dev/vitest/commits/v4.0.1/packages/vitest)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-23 12:42:18 +02:00