Commit Graph

55931 Commits

Author SHA1 Message Date
Osama Sayegh 4406bbb020
FIX: Prevent recurring automations from getting stalled under specific conditions (#28913)
Under certain conditions, a recurring automation can end up in a state with no pending automation records, causing it to not execute again until manually triggered.

We use the `RRule` gem to calculate the next execution date and time for recurring automations. The gem takes the interval, frequency, start date, and a time range, and returns all dates/times within this range that meet the recurrence rule. For example:

```ruby
RRule::Rule
  .new("FREQ=DAILY;INTERVAL=1", dtstart: Time.parse("2023-01-01 07:30:00 UTC"))
  .between(Time.zone.now, Time.zone.now + 2.days)
# => [Sat, 14 Sep 2024 07:30:00.000000000 UTC +00:00, Sun, 15 Sep 2024 07:30:00.000000000 UTC +00:00]
```

However, if the time component of the first point provided to `.between()` is slightly ahead of the start date (e.g., `dtstart`), the first date/time returned by `RRule` can fall outside the specified range by the same subsecond amount. For instance:

```ruby
RRule::Rule
  .new("FREQ=DAILY;INTERVAL=1", dtstart: Time.parse("2023-01-01 07:30:00 UTC"))
  .between(Time.parse("2023-01-01 07:30:00.999 UTC"), Time.parse("2023-01-03 07:30:00 UTC"))
  .first
# => Sun, 01 Jan 2023 07:30:00.000000000 UTC +00:00
```

Here, the start date/time given to `.between()` is 999 milliseconds after 07:30:00, but the first date returned is exactly 07:30:00 without the 999 milliseconds. This causes the next recurring date to fall into the past if the automation executes within a subsecond of the start time, leading to the automation stalling.

I'm not sure why `RRule` does this, but it seems intentional judging by the source of the `.between()` method:

b9911b7147/lib/rrule/rule.rb (L28-L32)

This commit fixes the issue by selecting the first date ahead of the current time from the list returned by `RRule`, rather than the first date directly.

Internal topic: t/138045.
2024-09-16 18:23:26 +03:00
David Battersby b60f4606e5
FEATURE: allow names in chat channel title (#28843)
This change adds full names to direct message channel titles when the following conditions are met:

- SiteSetting.enable_names = true
- SiteSetting.display_name_on_posts = true
- SiteSetting.prioritize_username_in_ux = false

If a user's full name is blank, it will fallback to their username in both 1-1 channels and Group DM channels.
2024-09-16 18:12:13 +04:00
Jarek Radosz 8a57e50664
DEV: Fix some js deprecations (#28915)
1. `MediaQueryList.addListener` is deprecated in favor of `addEventListener`
2. `HTMLStyleElement.type` is deprecated with no replacement
2024-09-16 13:56:54 +02:00
David Battersby d7293eafef
DEV: add spec for chat drawer channel lists (#28927)
Adds a spec for chat channels lists in desktop drawer mode.
2024-09-16 12:15:21 +04:00
dependabot[bot] 38c286ac40
Build(deps-dev): Bump @floating-ui/dom from 1.6.10 to 1.6.11 (#28918)
Bumps [@floating-ui/dom](https://github.com/floating-ui/floating-ui/tree/HEAD/packages/dom) from 1.6.10 to 1.6.11.
- [Release notes](https://github.com/floating-ui/floating-ui/releases)
- [Changelog](https://github.com/floating-ui/floating-ui/blob/master/packages/dom/CHANGELOG.md)
- [Commits](https://github.com/floating-ui/floating-ui/commits/@floating-ui/dom@1.6.11/packages/dom)

---
updated-dependencies:
- dependency-name: "@floating-ui/dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 15:40:30 +08:00
dependabot[bot] 94a48e06d2
Build(deps-dev): Bump unicode-display_width from 2.5.0 to 2.6.0 (#28921)
Bumps [unicode-display_width](https://github.com/janlelis/unicode-display_width) from 2.5.0 to 2.6.0.
- [Changelog](https://github.com/janlelis/unicode-display_width/blob/main/CHANGELOG.md)
- [Commits](https://github.com/janlelis/unicode-display_width/compare/v2.5.0...v2.6.0)

---
updated-dependencies:
- dependency-name: unicode-display_width
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 15:40:14 +08:00
dependabot[bot] afe581ae5c
Build(deps-dev): Bump jsuites from 5.6.0 to 5.6.1 (#28920)
Bumps [jsuites](https://github.com/jsuites/jsuites) from 5.6.0 to 5.6.1.
- [Release notes](https://github.com/jsuites/jsuites/releases)
- [Changelog](https://github.com/jsuites/jsuites/blob/master/changelog.md)
- [Commits](https://github.com/jsuites/jsuites/commits)

---
updated-dependencies:
- dependency-name: jsuites
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 15:39:34 +08:00
dependabot[bot] 4f0a23e06f
Build(deps): Bump @faker-js/faker from 9.0.0 to 9.0.1 (#28922)
Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/faker-js/faker/releases)
- [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md)
- [Commits](https://github.com/faker-js/faker/compare/v9.0.0...v9.0.1)

---
updated-dependencies:
- dependency-name: "@faker-js/faker"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 15:39:22 +08:00
Alan Guo Xiang Tan c415b916a2
DEV: Switch to our own hosted runners for tests workflow everywhere (#28926) 2024-09-16 12:03:10 +08:00
Linca 741e9d70ad
FIX: Don't show move topic for private messages for TL4 (#28871)
In TopicController, in addition to ensure_can_move_posts!, we also
checked if the topic is private message in this line:

```ruby
raise Discourse::InvalidAccess if params[:archetype] == "private_message" && !guardian.is_staff?
```

However, this was not present in `guardian.can_move_posts?`. As a result,
the frontend topic view got an incorrect serialized result, thinking
that TL4 could move the private message post. In fact, once they tried
to move it, they got the `InvalidAccess` error message.

This commit fixes that TL4 will no longer sees the "move to" option in
the "select post" panel for a private message.
2024-09-16 11:30:05 +08:00
Sam 991227337a
Revert "DEV: attempt a mini_racer upgrade (#28924)" (#28925)
This reverts commit dc8620a491.

Still segfaulting - missing artifact for ARM darwin
2024-09-16 12:10:32 +10:00
dependabot[bot] 0ab0066b41
Build(deps-dev): Bump sinon from 19.0.1 to 19.0.2 (#28919)
Bumps [sinon](https://github.com/sinonjs/sinon) from 19.0.1 to 19.0.2.
- [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.1...v19.0.2)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 09:02:04 +10:00
Sam dc8620a491
DEV: attempt a mini_racer upgrade (#28924)
This is attempt 4 or 5. This time we compiled libv8-node using clang vs gcc.

The working theory is that something may be off with the gcc compile.
2024-09-16 08:38:40 +10:00
Ted Johansson edd221fbf9
DEV: Convert DashboardProblems component to GJS (#28917)
Working on some new functionality around admin notices. This is a preparatory refactoring that converts the DashboardProblems component to GJS.
2024-09-15 17:16:01 +08:00
Jan Cernik 0c019b2e45
FIX: Error when moving the group default notification state (#28910) 2024-09-13 16:01:20 -03:00
David Taylor e7e9c99568
DEV: Drop ScrollTracker component (#28911)
Restoring scroll position is now handled by the route-scroll-manager service, so this is unneeded
2024-09-13 19:19:40 +01:00
Kris a914d3230b
DEV: remap all core icons for fontawesome 6 upgrade (#28715)
Followup to 7d8974d02f

Co-authored-by: David Taylor <david@taylorhq.com>
2024-09-13 16:50:52 +01:00
dependabot[bot] 9afc9a6e28
Build(deps): Bump @glimmer/syntax from 0.92.0 to 0.92.3 (#28906) 2024-09-13 15:47:25 +02:00
Osama Sayegh 3baf6233aa
FIX: Remove anonymous users from users directory (#28892)
Anonymous users are "shadow" users created when an existing real user desires to post anonymously. This feature is off by default, but it can be enabled via the `allow_anonymous_posting` site setting. Those shadow users shouldn't be included in the users directory (`/u`).
2024-09-13 15:12:57 +03:00
dependabot[bot] ef9ba294e9
Build(deps-dev): Bump sinon from 18.0.1 to 19.0.1 (#28905) 2024-09-13 14:12:37 +02:00
Penar Musaraj 18dacfdeec
DEV: Add plugin outlet wrapper around footer nav (#28863) 2024-09-13 07:57:46 -04:00
Alan Guo Xiang Tan 4377649077
DEV: Only run `check-flaky-spec-report when enabled in tests workflow` (#28903) 2024-09-13 14:59:49 +08:00
Alan Guo Xiang Tan 9a4f71353d
DEV: Fix incorrect `github.ref` value in tests workflow (#28902) 2024-09-13 14:24:42 +08:00
David Battersby e9b7663798
UX: sort chat channels by activity in desktop drawer (#28822)
This change sorts the desktop chat channels by activity in drawer mode, and keeps sidebar channel list sorted by slug.
2024-09-13 10:14:37 +04:00
Alan Guo Xiang Tan f6ba5ed4d9
DEV: Use hosted runners on main branch for tests workflow (#28901)
Follow-up to 92f7b3e789
2024-09-13 13:43:06 +08:00
Michael Fitz-Payne 92f7b3e789
Reapply "DEV: update runners to debian-12" (#28899)
docker.io rate limits _should_ be addressed now. Switch back to
`debian-12` runners.

This is now a conditional within the `tests` workflow as we evaluate the
migration.

This reverts commit a99e2c62e6.
2024-09-13 13:35:32 +08:00
chapoi b59056780c
UX: upodate stying of chat composer focused state (#28900) 2024-09-13 07:34:40 +02:00
Martin Brennan 31ff371ccf
UX: Add link to bootstrap mode docs (#28898)
Links to https://meta.discourse.org/t/understanding-and-managing-bootstrap-mode/322876
in site settings and getting started guide.
2024-09-13 12:44:39 +10:00
Alan Guo Xiang Tan 97143efc52
PERF: Drop `user_search_similar_results` site setting (#28874)
In 14cf8eacf1, we added the
`user_search_similar_results` site setting which when enabled will use
trigram matching for similarity search in `UserSearch`. However, we
noted that adding the `index_users_on_username_lower_trgm` index is
causing the PG planner to not use the `index_users_on_username_lower`
index when the `=` operator is used against the `username_lower` column.

Based on the PG mailing list discussion where support for the `=`
operator in gist_trgm_ops was being considered, it stated that "I also have checked that btree_gist is preferred over pg_trgm gist
index for equality search." This is however quite different from reality
on our own PG clusters where the btree index is not preferred leading to
significantly slower queries when the `=` operator is used.

Since the pg_trgm gist index is only used for queries when the `user_search_similar_results` site setting
is enabled, we decided to drop the feature instead as it is hidden and
disabled by default. As such, we can consider it experiemental and drop
it without deprecation.

PG mailing list discussiong: https://www.postgresql.org/message-id/CAPpHfducQ0U8noyb2L3VChsyBMsc5V2Ej2whmEuxmAgHa2jVXg%40mail.gmail.com
2024-09-13 09:04:02 +08:00
Penar Musaraj c182bb34ad
DEV: Skip flakey admin flags test (#28895) 2024-09-13 09:22:30 +10:00
Joffrey JAFFEUX ad90b9cfd1
DEV: Increases external avatar url limit (#28893)
We recently increased it to 1500 but that was not enough: 113e6fd274
2024-09-13 01:08:01 +02:00
Michael Fitz-Payne a99e2c62e6 Revert "DEV: update runners to debian-12"
Need to address rate limits from docker.io

This reverts commit 6ba0dcdb0e.
2024-09-13 08:19:51 +10:00
Jarek Radosz 896f116443
DEV: Fix random typos (#28891) 2024-09-12 23:25:34 +02:00
Jarek Radosz 6bc9153a0d
DEV: Remove duplicated tests (#28889) 2024-09-12 23:20:49 +02:00
Jarek Radosz 4d484d89d0
DEV: Add a missing service injection (#28890) 2024-09-12 23:20:33 +02:00
Michael Fitz-Payne 6ba0dcdb0e DEV: update runners to debian-12
The self-hosted Github runners have been provisioned, and we can switch
to using them for evaluation.

To prefer Github-hosted runners, you can safely revert this commit.

See: t/123181.
2024-09-13 06:32:55 +10:00
Krzysztof Kotlarek 560b01f0cf
FIX: flaky system admin flags specs (#28873)
Recently `custom_` prefix was added for flags https://github.com/discourse/discourse/pull/28839

When we wait to ensure that `Tasteless` flag is deleted, we need to use new prefix as well.
2024-09-13 06:25:30 +10:00
Osama Sayegh 64b67e0a4f
FIX: Exclude inactive and silenced users from /about page stats (#28877)
The user directory (`/u`) excludes inactive and silenced users from the list, so for the sake parity, it makes sense to also exclude those users from the /about page stats.

Internal topic: t/70928.
2024-09-12 22:28:49 +03:00
dependabot[bot] b49280871d
Build(deps-dev): Bump express from 4.20.0 to 4.21.0 (#28886)
Bumps [express](https://github.com/expressjs/express) from 4.20.0 to 4.21.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.20.0...4.21.0)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-12 21:21:46 +02:00
dependabot[bot] ed89440405
Build(deps-dev): Bump concurrently from 9.0.0 to 9.0.1 (#28887)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v9.0.0...v9.0.1)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-12 21:21:39 +02:00
Ella E. fa83e7b07d
FIX: Regression in short description in admin badges page (#28884) 2024-09-12 12:21:42 -06:00
Keegan George 9dadf43e83
FEATURE: Toolbar API supports custom action for keyboard shortcuts (#28883)
Previously shortcuts added to toolbar buttons will automatically use the same action assigned to the button when clicked. This PR adds an additional optional key that can be passed when creating a new toolbar button: shortcutAction which allows for passing a custom action for the keyboard shortcut. This way a button can have a specific action when a keyboard shortcut is pressed that's different from when the button is clicked.
2024-09-12 11:12:01 -07:00
David McClure d0cd0fd841
UX: Link to sections in getting started guide (#28882) 2024-09-12 13:04:57 -04:00
Tobias Eigen 451572cf0d
updated sidebar links to security settings and spam settings (#27993)
made sidebar links to "security settings" and "spam settings" unambiguous.
2024-09-12 09:03:04 -07:00
Tobias Eigen ca232d834b
removed periods from one-liner instructions on signup form (#27902)
* removed periods from one-liner instructions on signup form

we want to skip periods and unnecessary punctuation on single sentence instructions in the UI, to make them easier to scan for users

* Update client.en.yml
2024-09-12 09:01:52 -07:00
Kris 06b9e58542
UX: tell 1Password to ignore the link name input (#28559) 2024-09-12 11:13:43 -04:00
David Taylor a7cd220704
PERF: Use insertText more efficiently in `replaceText` (#28880)
Followup to e25578d702

Using execCommand to replace the entire contents of the textarea is very slow for larger posts (it seems the browser does a reflow after every 'virtual keypress'.

This commit updates the `replaceText` function to be more surgical with its `insertAt` calls. Now it only selects & replaces the characters which are actually being replaced.
2024-09-12 16:11:39 +01:00
David Taylor 600801f194
DEV: Automatically add `--ignore-workspace` when pnpm used in plugins (#28878) 2024-09-12 13:45:25 +01:00
Jarek Radosz 00ae6cc430
DEV: Update ember-resolver to 13.0.0 (#28876)
See: https://github.com/ember-cli/ember-resolver/releases/tag/v13.0.0
2024-09-12 12:09:11 +02:00
Loïc Guitaut b806dce13d DEV: Refactor suspend/silence user services
- fetch models inside services
- validate `user_id` in contracts
- use policy objects
- extract more logic to actions
- write specs for services and action
2024-09-12 10:28:48 +02:00