Commit Graph

58677 Commits

Author SHA1 Message Date
eae68e121e UX: improve mobile topic list tag layout (#32048)
* Prevents tag separators (commas by default) from wrapping separately
by using absolute positioning so they don't impact the width (thus a
comma can't wrap on its own, because a tag can't influence the width)

* Removes some whitespace creating extra space between categories and
tags (to better match desktop)

* Removes a redundant `flex-wrap: wrap` as `.discourse-tags` already
carries this

* Improves vertical alignment of commas (they were too high on mobile,
which is avoided on desktop with baseline alignment in flex)

* Fixes an issue where tag and separator color could be mismatched
because of a too-broad color being applied to all links

Before:

![image](https://github.com/user-attachments/assets/bc4b0f52-5eff-467f-ae0d-95661bd57351)


After:

![image](https://github.com/user-attachments/assets/dcdf39a4-4f23-4b23-a7b5-5f6a60c1ca6f)
2025-03-27 15:34:52 -04:00
1be7b1ed90 DEV: Remove clearfix class from topic title link in topic lists (#32047) 2025-03-27 14:30:11 -05:00
e3fcec356e Build(deps): Bump the prosemirror group with 3 updates (#32042)
Bumps the prosemirror group with 3 updates:
[prosemirror-commands](https://github.com/prosemirror/prosemirror-commands),
[prosemirror-schema-list](https://github.com/prosemirror/prosemirror-schema-list)
and
[prosemirror-transform](https://github.com/prosemirror/prosemirror-transform).


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

Updates `prosemirror-schema-list` from 1.5.0 to 1.5.1
-
[Changelog](https://github.com/ProseMirror/prosemirror-schema-list/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/prosemirror/prosemirror-schema-list/compare/1.5.0...1.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 17:53:30 +01:00
467bcc7d98 Build(deps): Bump a11y-dialog from 8.1.1 to 8.1.2 (#32045)
Bumps [a11y-dialog](https://github.com/KittyGiraudel/a11y-dialog) from
8.1.1 to 8.1.2.
- [Release notes](https://github.com/KittyGiraudel/a11y-dialog/releases)
-
[Commits](https://github.com/KittyGiraudel/a11y-dialog/compare/8.1.1...8.1.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 17:53:21 +01:00
8c42be15ae Build(deps-dev): Bump ember-qunit from 9.0.1 to 9.0.2 (#32044)
Bumps [ember-qunit](https://github.com/emberjs/ember-qunit) from 9.0.1
to 9.0.2.
- [Release notes](https://github.com/emberjs/ember-qunit/releases)
-
[Changelog](https://github.com/emberjs/ember-qunit/blob/main/.release-plan.json)
- [Commits](https://github.com/emberjs/ember-qunit/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 17:53:02 +01:00
8a51726678 Build(deps): Bump logger from 1.6.6 to 1.7.0 (#32043)
Bumps [logger](https://github.com/ruby/logger) from 1.6.6 to 1.7.0.
- [Release notes](https://github.com/ruby/logger/releases)
- [Commits](https://github.com/ruby/logger/compare/v1.6.6...v1.7.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 17:47:08 +01:00
e5c919ac39 Build(deps-dev): Bump lint-to-the-future-eslint from 3.0.0 to 3.1.0 (#31807)
Bumps
[lint-to-the-future-eslint](https://github.com/mansona/lint-to-the-future-eslint)
from 3.0.0 to 3.1.0.
- [Release
notes](https://github.com/mansona/lint-to-the-future-eslint/releases)
-
[Changelog](https://github.com/mansona/lint-to-the-future-eslint/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/mansona/lint-to-the-future-eslint/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 17:25:27 +01:00
61b5408ab9 DEV: Group prosemirror dependabot updates (#32041) 2025-03-27 17:19:02 +01:00
ee1ad8e19e Build(deps): Bump babel-plugin-ember-template-compilation from 2.3.0 to 2.4.1 (#32025)
Bumps
[babel-plugin-ember-template-compilation](https://github.com/emberjs/babel-plugin-ember-template-compilation)
from 2.3.0 to 2.4.1.
- [Release
notes](https://github.com/emberjs/babel-plugin-ember-template-compilation/releases)
-
[Changelog](https://github.com/emberjs/babel-plugin-ember-template-compilation/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/emberjs/babel-plugin-ember-template-compilation/commits)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-03-27 16:33:19 +01:00
be6315dd1f Build(deps-dev): Bump ember-cli from 6.2.3 to 6.3.0 (#31982)
Bumps [ember-cli](https://github.com/ember-cli/ember-cli) from 6.2.3 to
6.3.0.
- [Release notes](https://github.com/ember-cli/ember-cli/releases)
-
[Changelog](https://github.com/ember-cli/ember-cli/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/ember-cli/ember-cli/compare/v6.2.3...v6.3.0)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-03-27 16:33:03 +01:00
3c7b532245 UX: removing baseline alignment from topic title wrapper (#32040)
This is causing misalignment with displayed metadata such as category,
tags, assigned,… We don't remember why it was added in the first place.
2025-03-27 16:07:02 +01:00
d4fa777bfd UX: emoji styling adjustments (#32039)
Small alignment and sizing improvements for emojis/icons added to
categories.

We are also fixing the private category locked icon to retain the grey
color.
2025-03-27 18:45:39 +04:00
c3795177f2 Build(deps-dev): Bump @discourse/lint-configs from 2.11.2 to 2.12.0 (#31890)
Bumps
[@discourse/lint-configs](https://github.com/discourse/lint-configs)
from 2.11.2 to 2.12.0.
- [Commits](https://github.com/discourse/lint-configs/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 15:36:27 +01:00
e0bb7e936b DEV: Update content-tag from 3.1.1 to 3.1.2 (#32038) 2025-03-27 15:33:59 +01:00
b570dea85b UX: align the previewless composer with posts (#31960)
This aligns the composer with the post when the preview is
hidden. 

Once the width gets a bit too narrow it occupies the full width. 

[Screen Recording 2025-03-21 at 2.50.50
PM.webm](https://github.com/user-attachments/assets/4a854642-5b20-41fd-a478-7a943dfe0dd4)

The sidebar requires this to get a little magic numbery, but I tried to
anchor to predictable values otherwise.

---------

Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com>
2025-03-27 10:13:03 -04:00
9d3a4cadfa DEV: Add outlet args to new login template (#31997)
- Add new args to outlet
2025-03-27 10:43:40 -03:00
22f3341d68 Build(deps-dev): Bump rubocop from 1.74.0 to 1.75.1 (#32026)
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.74.0 to
1.75.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
-
[Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/rubocop/rubocop/compare/v1.74.0...v1.75.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 14:13:17 +01:00
8e24d4e7de UI: storage stats content overflow (#31840) 2025-03-27 08:55:57 -04:00
29cbbd6b31 DEV: Fix Lint/ShadowingOuterLocalVariable (#32036)
unblocks a rubocop update
2025-03-27 13:50:24 +01:00
4f82ceaf39 DEV: Introduce core features system specs for plugins
This patch adds a new shared example to be used as a smoke test in
plugins and themes.

A `skip_examples` argument is available to easily opt-out from a
category of tests.

Example:
```rb
RSpec.describe "Testing core features", type: :system do
  it_behaves_like "having working core features", skip_examples: %i[search login]
end
```
2025-03-27 12:12:01 +01:00
7b9976795e UX: Display button loading state upon submit on password reset form (#32034) 2025-03-27 16:26:57 +08:00
664f0b116c Build(deps-dev): Bump @ember/test-helpers from 5.1.0 to 5.2.0 (#32024)
Bumps
[@ember/test-helpers](https://github.com/emberjs/ember-test-helpers)
from 5.1.0 to 5.2.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-03-27 09:11:58 +01:00
6f92f42eb8 DEV: Print puma threads backtraces when Capybara's helpers time out (#32033)
When a Capybara helper times out after hitting
`Capybara.default_max_wait_time`, we will now
dump the puma server threads backtraces. This information will help us
diagnose test failures due to requests not completing within
`Capybara.default_max_wait_time`.

Example test failure output:

```
Failures:

  1) User resetting password when desktop when user has multi-factor authentication configured when user has TOTP, security key and backup codes configured should allow a user to toggle from security key to TOTP and between TOTP and backup codes
     Failure/Error: expect(page).to have_current_path("/u/#{user.username}/preferences/second-factor")
       expected `#<Capybara::Session>.has_current_path?("/u/john/preferences/second-factor")` to be truthy, got false

     [Screenshot Image]: /Users/tgxworld/work/discourse/tmp/capybara/failures_r_spec_example_groups_user_resetting_password_when_desktop_when_user_has_multi_factor_authentication_configured_when_user_has_totp_security_key_and_backup_codes_configured_should_allow_a_user_to_toggl_874.png

     ~~~~~~~ SERVER THREADS BACKTRACES ~~~~~~~
     /Users/tgxworld/work/discourse/app/controllers/users_controller.rb:2216:in 'Kernel#sleep'
     /Users/tgxworld/work/discourse/app/controllers/users_controller.rb:2216:in 'UsersController#confirm_secure_session'
     /Users/tgxworld/work/discourse/app/controllers/users_controller.rb:1543:in 'UsersController#confirm_session'
     /Users/tgxworld/work/discourse/app/controllers/application_controller.rb:427:in 'block in ApplicationController#with_resolved_locale'
     /Users/tgxworld/work/discourse/app/controllers/application_controller.rb:427:in 'ApplicationController#with_resolved_locale'
     /Users/tgxworld/work/discourse/lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
     /Users/tgxworld/work/discourse/lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
     /Users/tgxworld/work/discourse/lib/middleware/anonymous_cache.rb:368:in 'Middleware::AnonymousCache#call'
     /Users/tgxworld/work/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
     /Users/tgxworld/work/discourse/spec/rails_helper.rb:48:in 'RspecErrorTracker#call'
     /Users/tgxworld/work/discourse/config/initializers/008-rack-cors.rb:14:in 'Discourse::Cors#call'
     /Users/tgxworld/work/discourse/lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
     /Users/tgxworld/work/discourse/config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
     /Users/tgxworld/work/discourse/config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
     /Users/tgxworld/work/discourse/lib/middleware/enforce_hostname.rb:24:in 'Middleware::EnforceHostname#call'
     /Users/tgxworld/work/discourse/lib/middleware/processing_request.rb:12:in 'Middleware::ProcessingRequest#call'
     /Users/tgxworld/work/discourse/lib/middleware/request_tracker.rb:385:in 'Middleware::RequestTracker#call'
     /Users/tgxworld/work/discourse/config/initializers/200-first_middlewares.rb:30:in 'TestMultisiteMiddleware#call'
     /Users/tgxworld/work/discourse/config/initializers/200-first_middlewares.rb:77:in 'BlockRequestsMiddleware#call'
     ~~~~~~~ END SERVER THREADS BACKTRACES ~~~~~~~

     ~~~~~~~ JS LOGS ~~~~~~~
     (no logs)
     ~~~~~ END JS LOGS ~~~~~
```


### Reviewer notes

In this [flaky test
example](https://github.com/discourse/discourse/actions/runs/14087382392/job/39454911943),
the test failed because a capybara assertion did not pass within
`Capybara.default_max_wait_time`. From the screenshot below, we see that
the submit button is still loading which indicates that the request is
still being processed by the server. However, we need to know why the
server is taking more than 10 seconds to generate a response.


```
Failure/Error: expect(page).to have_current_path("/u/#{user.username}/preferences/second-factor")
  expected `#<Capybara::Session>.has_current_path?("/u/john/preferences/second-factor")` to be truthy, got false

[Screenshot Image]: /__w/discourse/discourse/tmp/capybara/failures_r_spec_example_groups_user_resetting_password_when_desktop_when_user_has_multi_factor_authentication_configured_when_user_only_has_security_key_configured_should_allow_a_user_to_reset_password_with_a__75.png

~~~~~~~ JS LOGS ~~~~~~~
(no logs)
~~~~~ END JS LOGS ~~~~~

Shared Example Group: "forgot password scenarios" called from ./spec/system/forgot_password_spec.rb:213

./spec/system/page_objects/pages/user_preferences_security.rb:15:in `visit_second_factor'
./spec/system/forgot_password_spec.rb:30:in `create_user_security_key'
./spec/system/forgot_password_spec.rb:79:in `block (4 levels) in <main>'
./spec/rails_helper.rb:619:in `block (3 levels) in <top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.0/lib/benchmark.rb:304:in `measure'
./spec/rails_helper.rb:619:in `block (2 levels) in <top (required)>'
./spec/rails_helper.rb:580:in `block (3 levels) in <top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:185:in `block in timeout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:192:in `timeout'
./spec/rails_helper.rb:570:in `block (2 levels) in <top (required)>'
./spec/rails_helper.rb:527:in `block (2 levels) in <top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/webmock-3.25.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'
```


![image](https://github.com/user-attachments/assets/9a6b4c91-1d17-4c23-9239-f4440fe7fb07)
2025-03-27 16:05:39 +08:00
0862c7d9b0 Build(deps-dev): Bump the embroider group with 3 updates (#31939)
Bumps the embroider group with 3 updates:
[@embroider/compat](https://github.com/embroider-build/embroider/tree/HEAD/packages/compat),
[@embroider/core](https://github.com/embroider-build/embroider/tree/HEAD/packages/core)
and
[@embroider/macros](https://github.com/embroider-build/embroider/tree/HEAD/packages/macros).


Updates `@embroider/compat` from 3.8.4 to 3.8.5
- [Release notes](https://github.com/embroider-build/embroider/releases)
-
[Changelog](https://github.com/embroider-build/embroider/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/embroider-build/embroider/commits/HEAD/packages/compat)

Updates `@embroider/core` from 3.5.4 to 3.5.5
- [Release notes](https://github.com/embroider-build/embroider/releases)
-
[Changelog](https://github.com/embroider-build/embroider/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/embroider-build/embroider/commits/HEAD/packages/core)

Updates `@embroider/macros` from 1.16.11 to 1.16.12
- [Release notes](https://github.com/embroider-build/embroider/releases)
-
[Changelog](https://github.com/embroider-build/embroider/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/embroider-build/embroider/commits/HEAD/packages/macros)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-03-27 08:34:16 +01:00
2c54cd914b Build(deps-dev): Bump extralite-bundle from 2.10 to 2.12 (#32029)
Bumps [extralite-bundle](https://github.com/digital-fabric/extralite)
from 2.10 to 2.12.
-
[Changelog](https://github.com/digital-fabric/extralite/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digital-fabric/extralite/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 08:18:10 +01:00
3935cd7e0f Build(deps): Bump google-protobuf from 4.30.1 to 4.30.2 (#32028)
Bumps [google-protobuf](https://github.com/protocolbuffers/protobuf)
from 4.30.1 to 4.30.2.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
-
[Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
-
[Commits](https://github.com/protocolbuffers/protobuf/compare/v4.30.1...v4.30.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 08:17:43 +01:00
e7c2846efc Build(deps-dev): Bump parser from 3.3.7.2 to 3.3.7.3 (#32027)
Bumps [parser](https://github.com/whitequark/parser) from 3.3.7.2 to
3.3.7.3.
-
[Changelog](https://github.com/whitequark/parser/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/whitequark/parser/compare/v3.3.7.2...v3.3.7.3)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 08:17:03 +01:00
c7abae2741 DEV: Disable site setting save/discard buttons while saving (#32030)
This change disables the save and undo buttons for site settings while the setting is being saved. This gives some visual indication that saving is underway, and prevents unnecessarily sending more than one request (which will be no-ops anyway.)
2025-03-27 09:43:10 +08:00
c671cfff84 DEV: Upgrade the post widgets to Glimmer components (#31375)
Co-authored-by: David Taylor <david@taylorhq.com>
2025-03-26 18:53:46 -03:00
4e918e1d3d DEV: Add value transformer to post-text-selection (#32023)
This update adds a new value transformer to the `PostTextSelection`
component. This allows for dynamically setting a `preventClose`
property. This is useful to prevent the `onSelectionChange` listener
from firing a toolbar close. In particular, we want to use this in
Discourse AI to prevent the selection change from closing the toolbar
when selecting new text inside the explain popup
(https://github.com/discourse/discourse-ai/pull/1221)
2025-03-26 11:28:31 -07:00
a6394f7f57 UX: change focus to focus-visible (#32021) 2025-03-26 18:51:39 +01:00
f277e0bce5 FIX: Reapply 94ee3554 (#32020)
This was accidentally reverted as part of the rebasing/merging of the
gjs conversions in b29e0b6e1b6001890ce92f96448258550f80132b

Co-authored-by: Robert <35533304+merefield@users.noreply.github.com>
2025-03-26 16:31:42 +00:00
45029c28ce UX: improve hashtag emoji alignment (#32019)
Improves alignment of emojis within hashtags.
2025-03-26 19:36:08 +04:00
7decb88ce0 UX: only check for toolbar-visible class in mobileView (#32018)
Follow-up to bbea7c3b11054b8e7faeee85a0336ecc45b84890

This behavior should only be applied to mobile view, otherwise there are
some scenarios (Android tablets) where the composer toolbar will become
inaccessible.
2025-03-26 10:43:59 -04:00
feb30c2382 Build(deps-dev): Bump sinon from 19.0.4 to 20.0.0 (#31981)
Bumps [sinon](https://github.com/sinonjs/sinon) from 19.0.4 to 20.0.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
-
[Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v19.0.4...v20.0.0)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jarek Radosz <jarek@cvx.dev>
2025-03-26 15:11:20 +01:00
ac26a52c6d DEV: Improve PageObjects::Pages::UserPreferencesSecurity#visit_second_factor (#32017)
This commit improves said method to ensure that user is redirected to
the right page before returning.

### Reviewer notes

Example of test flakiness:
https://github.com/discourse/discourse/actions/runs/14081653020/job/39435797236

```
Failure/Error: raise capybara_timeout_error

CapybaraTimeoutExtension::CapybaraTimedOut:
  This spec passed, but capybara waited for the full wait duration (10s) at least once. This will slow down the test suite. Beware of negating the result of selenium's RSpec matchers.

[Screenshot Image]: /__w/discourse/discourse/tmp/capybara/failures_r_spec_example_groups_user_resetting_password_when_desktop_when_user_has_multi_factor_authentication_configured_when_user_has_security_key_and_backup_codes_configured_should_allow_a_user_to_reset_pass_261.png

~~~~~~~ JS LOGS ~~~~~~~
~~~~~ END JS LOGS ~~~~~

Shared Example Group: "forgot password scenarios" called from ./spec/system/forgot_password_spec.rb:213

./spec/rails_helper.rb:426:in `block (3 levels) in <top (required)>'
./spec/rails_helper.rb:619:in `block (3 levels) in <top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.0/lib/benchmark.rb:304:in `measure'
./spec/rails_helper.rb:619:in `block (2 levels) in <top (required)>'
./spec/rails_helper.rb:580:in `block (3 levels) in <top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:185:in `block in timeout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:192:in `timeout'
./spec/rails_helper.rb:570:in `block (2 levels) in <top (required)>'
./spec/rails_helper.rb:527:in `block (2 levels) in <top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/webmock-3.25.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'
```
2025-03-26 22:11:03 +08:00
adea877a45 Build(deps): Bump ace-builds from 1.39.0 to 1.39.1 (#31943)
Bumps [ace-builds](https://github.com/ajaxorg/ace-builds) from 1.39.0 to
1.39.1.
- [Release notes](https://github.com/ajaxorg/ace-builds/releases)
-
[Changelog](https://github.com/ajaxorg/ace-builds/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/ajaxorg/ace-builds/compare/v1.39.0...v1.39.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 15:00:26 +01:00
5754368586 Build(deps-dev): Bump ember-cli-deprecation-workflow from 3.2.0 to 3.3.0 (#31963)
Bumps
[ember-cli-deprecation-workflow](https://github.com/ember-cli/ember-cli-deprecation-workflow)
from 3.2.0 to 3.3.0.
- [Release
notes](https://github.com/ember-cli/ember-cli-deprecation-workflow/releases)
-
[Changelog](https://github.com/ember-cli/ember-cli-deprecation-workflow/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/ember-cli/ember-cli-deprecation-workflow/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 14:41:34 +01:00
16857060df Build(deps-dev): Bump rubocop-ast from 1.41.0 to 1.43.0 (#32004)
Bumps [rubocop-ast](https://github.com/rubocop/rubocop-ast) from 1.41.0
to 1.43.0.
- [Release notes](https://github.com/rubocop/rubocop-ast/releases)
-
[Changelog](https://github.com/rubocop/rubocop-ast/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/rubocop/rubocop-ast/compare/v1.41.0...v1.43.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 14:21:55 +01:00
f13ff5088c FIX: update chat icon position on mobile (#32016)
The chat icon was repositioned in #31951 but we should also account for
mobile, where it should appear before the hamburger icon.
2025-03-26 17:03:47 +04:00
75dd327c75 Build(deps-dev): Bump html-entities from 2.5.2 to 2.5.3 (#31964) 2025-03-26 13:09:05 +01:00
df69f1a628 Build(deps): Bump rdoc from 6.12.0 to 6.13.0 (#31966) 2025-03-26 13:08:22 +01:00
2441a54e33 Build(deps-dev): Bump @swc/core from 1.11.9 to 1.11.13 (#31984) 2025-03-26 13:07:00 +01:00
0ec5816f05 Build(deps-dev): Bump diff-lcs from 1.6.0 to 1.6.1 (#32003) 2025-03-26 13:03:58 +01:00
c3bd2f8629 Build(deps): Bump @babel/standalone from 7.26.10 to 7.27.0 in the babel group (#31980) 2025-03-26 13:02:58 +01:00
a302320791 Build(deps-dev): Bump lefthook from 1.11.4 to 1.11.5 (#32006) 2025-03-26 13:02:37 +01:00
b0780a482c Build(deps): Bump stringio from 3.1.5 to 3.1.6 (#32005) 2025-03-26 13:02:08 +01:00
042c480049 FIX: Do not @import .css assets for plugins (#32014)
b1924c35 switched our compiler to use `@import` internally for scss
entrypoints. This logic also applied to `.css` files, but unfortunately
sass doesn't do anything with `@import` of CSS files, so they'll be left
intact all the way to the browser. Continue using the old concatenation
approach for them in the compiler.

Followup to b1924c352487ab2c85ae50af45c5b3e098589014
2025-03-26 11:01:24 +00:00
b1924c3524 DEV: Allow stylesheet entrypoints to use @use (#31905)
Previously we would prepend extra content to developer-authored files,
which means adding `@use` in some files would throw an error because
`@use` must be at the top of any compiled file.

Instead, we can ensure any developer-authored files are on the load
path, and then `@import` them into the synthetic entrypoint.

Plugin color_definitions stylesheets are an edge case here, and will
need to be handled separately (or... wait until we move to native css
relative-color syntax, then we can drop color-definition stylesheets
altogether)
2025-03-26 09:15:32 +00:00
c8ccd4da31 DEV: Move setting deprecation check to SiteSetting::Update service (#31993)
This PR moves the logic that checks if a site setting we're trying to update has been deprecated from one of the controllers into a policy of the SiteSetting::Update service.

It also gives us the opportunity to shift the error message into a locale file.
2025-03-26 15:56:18 +08:00