Skip to content

Commit f45d213

Browse files
committed
Squashed commit of the following:
commit 6f16011 Author: Claire <claire.github-309c@sitedethib.com> Date: Wed Apr 2 09:14:21 2025 +0200 Bump version to v4.3.7 (mastodon#34328) commit 65a6840 Author: Claire <claire.github-309c@sitedethib.com> Date: Tue Apr 1 10:53:49 2025 +0200 Fix static version of animated PNG emojis not being properly extracted (mastodon#34337) commit 527d920 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue Apr 1 11:10:20 2025 +0200 New Crowdin Translations for stable-4.3 (automated) (mastodon#34336) Co-authored-by: GitHub Actions <noreply@github.com> commit 6d53e8c Author: Claire <claire.github-309c@sitedethib.com> Date: Fri Mar 28 16:30:28 2025 +0100 Add delay to profile updates to debounce them (mastodon#34137) commit d9fb61f Author: Claire <claire.github-309c@sitedethib.com> Date: Fri Mar 28 10:20:32 2025 +0100 Change account suspensions to be federated to recently-followed accounts as well (mastodon#34294) commit 6af733d Author: Claire <claire.github-309c@sitedethib.com> Date: Thu Mar 27 14:41:13 2025 +0100 Change `AccountReachFinder` to consider statuses based on suspension date (mastodon#34291) commit 29eae75 Author: Matt Jankowski <matt@jankowski.online> Date: Tue Nov 12 03:38:08 2024 -0500 Define constants for sampling sizes in `AccountReachFinder` (mastodon#32805) commit 8a3f25a Author: David Roetzel <david@roetzel.de> Date: Wed Mar 26 14:26:24 2025 +0100 Use fixed order in flaky spec (mastodon#34279) commit 0615feb Author: Claire <claire.github-309c@sitedethib.com> Date: Wed Mar 26 12:33:59 2025 +0100 Add support for paginating partial collections in `SynchronizeFollowersService` (mastodon#34277) commit 86d8df0 Author: Claire <claire.github-309c@sitedethib.com> Date: Tue Mar 25 16:50:05 2025 +0100 Fix follower synchronization mechanism erroneously removing followers from multi-page collections (mastodon#34272) commit 105e5b1 Author: Claire <claire.github-309c@sitedethib.com> Date: Tue Mar 25 16:20:36 2025 +0100 Fix bookmarks and favourites not being filtered (mastodon#34260) commit d6442b5 Author: Claire <claire.github-309c@sitedethib.com> Date: Tue Mar 25 14:11:49 2025 +0100 Fix filters not applying in detailed view (mastodon#34259) commit 653868b Author: Claire <claire.github-309c@sitedethib.com> Date: Mon Mar 24 10:59:05 2025 +0100 Change user archive signed URL TTL from 10 seconds to 1 hour (mastodon#34254) commit 4cb3fe3 Author: Claire <claire.github-309c@sitedethib.com> Date: Tue Mar 18 15:50:41 2025 +0100 Fix handling of malformed/unusual HTML (mastodon#34201) commit 8197e65 Author: Claire <claire.github-309c@sitedethib.com> Date: Mon Mar 24 09:58:15 2025 +0100 Fix `CacheBuster` being queued for missing media attachments (mastodon#34253) commit c48413a Author: Claire <claire.github-309c@sitedethib.com> Date: Mon Mar 17 17:40:28 2025 +0100 Fix incorrect URL being used when cache busting (mastodon#34189) commit 9be3915 Author: Claire <claire.github-309c@sitedethib.com> Date: Mon Mar 24 15:07:27 2025 +0100 Fix streaming server refusing unix socket path in `DATABASE_URL` (mastodon#34091) commit 2340f4d Author: Claire <claire.github-309c@sitedethib.com> Date: Wed Jan 29 11:15:32 2025 +0100 Fix “x” hotkey not working on boosted filtered posts (mastodon#33758) commit cdcd77e Author: David Roetzel <david@roetzel.de> Date: Thu Mar 13 13:32:38 2025 +0100 Bump version to v4.3.6 commit c79c9e8 Author: Claire <claire.github-309c@sitedethib.com> Date: Thu Mar 13 09:37:45 2025 +0100 Update dependency `omniauth-saml` commit e84031e Author: Claire <claire.github-309c@sitedethib.com> Date: Thu Mar 13 09:22:13 2025 +0100 Update dependency `rack` commit d01e407 Author: Claire <claire.github-309c@sitedethib.com> Date: Mon Mar 10 15:27:43 2025 +0100 Fix Stoplight errors when using `REDIS_NAMESPACE` (mastodon#34126)
1 parent df4bb20 commit f45d213

107 files changed

Lines changed: 1727 additions & 1016 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,29 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [4.3.7] - 2025-04-02
6+
7+
### Add
8+
9+
- Add delay to profile updates to debounce them (#34137 by @ClearlyClaire)
10+
- Add support for paginating partial collections in `SynchronizeFollowersService` (#34272 and #34277 by @ClearlyClaire)
11+
12+
### Changed
13+
14+
- Change account suspensions to be federated to recently-followed accounts as well (#34294 by @ClearlyClaire)
15+
- Change `AccountReachFinder` to consider statuses based on suspension date (#32805 and #34291 by @ClearlyClaire and @mjankowski)
16+
- Change user archive signed URL TTL from 10 seconds to 1 hour (#34254 by @ClearlyClaire)
17+
18+
### Fixed
19+
20+
- Fix static version of animated PNG emojis not being properly extracted (#34337 by @ClearlyClaire)
21+
- Fix filters not applying in detailed view, favourites and bookmarks (#34259 and #34260 by @ClearlyClaire)
22+
- Fix handling of malformed/unusual HTML (#34201 by @ClearlyClaire)
23+
- Fix `CacheBuster` being queued for missing media attachments (#34253 by @ClearlyClaire)
24+
- Fix incorrect URL being used when cache busting (#34189 by @ClearlyClaire)
25+
- Fix streaming server refusing unix socket path in `DATABASE_URL` (#34091 by @ClearlyClaire)
26+
- Fix “x” hotkey not working on boosted filtered posts (#33758 by @ClearlyClaire)
27+
528
## [4.3.6] - 2025-03-13
629

730
### Security

app/controllers/api/v1/accounts/credentials_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def update
1414
@account = current_account
1515
UpdateAccountService.new.call(@account, account_params, raise_error: true)
1616
current_user.update(user_params) if user_params
17-
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
17+
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
1818
render json: @account, serializer: REST::CredentialAccountSerializer
1919
rescue ActiveRecord::RecordInvalid => e
2020
render json: ValidationErrorFormatter.new(e).as_json, status: 422

app/controllers/api/v1/profile/avatars_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class Api::V1::Profile::AvatarsController < Api::BaseController
77
def destroy
88
@account = current_account
99
UpdateAccountService.new.call(@account, { avatar: nil }, raise_error: true)
10-
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
10+
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
1111
render json: @account, serializer: REST::CredentialAccountSerializer
1212
end
1313
end

app/controllers/api/v1/profile/headers_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class Api::V1::Profile::HeadersController < Api::BaseController
77
def destroy
88
@account = current_account
99
UpdateAccountService.new.call(@account, { header: nil }, raise_error: true)
10-
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
10+
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
1111
render json: @account, serializer: REST::CredentialAccountSerializer
1212
end
1313
end

app/controllers/backups_controller.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ class BackupsController < ApplicationController
99
before_action :authenticate_user!
1010
before_action :set_backup
1111

12+
BACKUP_LINK_TIMEOUT = 1.hour.freeze
13+
1214
def download
1315
case Paperclip::Attachment.default_options[:storage]
1416
when :s3, :azure
15-
redirect_to @backup.dump.expiring_url(10), allow_other_host: true
17+
redirect_to @backup.dump.expiring_url(BACKUP_LINK_TIMEOUT.to_i), allow_other_host: true
1618
when :fog
1719
if Paperclip::Attachment.default_options.dig(:fog_credentials, :openstack_temp_url_key).present?
18-
redirect_to @backup.dump.expiring_url(Time.now.utc + 10), allow_other_host: true
20+
redirect_to @backup.dump.expiring_url(BACKUP_LINK_TIMEOUT.from_now), allow_other_host: true
1921
else
2022
redirect_to full_asset_url(@backup.dump.url), allow_other_host: true
2123
end

app/controllers/settings/pictures_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class PicturesController < BaseController
88
def destroy
99
if valid_picture?
1010
if UpdateAccountService.new.call(@account, { @picture => nil, "#{@picture}_remote_url" => '' })
11-
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
11+
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
1212
redirect_to settings_profile_path, notice: I18n.t('generic.changes_saved_msg'), status: 303
1313
else
1414
redirect_to settings_profile_path

app/controllers/settings/privacy_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def show; end
88
def update
99
if UpdateAccountService.new.call(@account, account_params.except(:settings))
1010
current_user.update!(settings_attributes: account_params[:settings])
11-
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
11+
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
1212
redirect_to settings_privacy_path, notice: I18n.t('generic.changes_saved_msg')
1313
else
1414
render :show

app/controllers/settings/profiles_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def show
99

1010
def update
1111
if UpdateAccountService.new.call(@account, account_params)
12-
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
12+
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
1313
redirect_to settings_profile_path, notice: I18n.t('generic.changes_saved_msg')
1414
else
1515
@account.build_fields

app/controllers/settings/verifications_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def show; end
88

99
def update
1010
if UpdateAccountService.new.call(@account, account_params)
11-
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
11+
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
1212
redirect_to settings_verification_path, notice: I18n.t('generic.changes_saved_msg')
1313
else
1414
render :show

app/helpers/admin/trends/statuses_helper.rb

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22

33
module Admin::Trends::StatusesHelper
44
def one_line_preview(status)
5-
text = if status.local?
6-
status.text.split("\n").first
7-
else
8-
Nokogiri::HTML5(status.text).css('html > body > *').first&.text
9-
end
5+
text = begin
6+
if status.local?
7+
status.text.split("\n").first
8+
else
9+
Nokogiri::HTML5(status.text).css('html > body > *').first&.text
10+
end
11+
rescue ArgumentError
12+
# This can happen if one of the Nokogumbo limits is encountered
13+
# Unfortunately, it does not use a more precise error class
14+
# nor allows more graceful handling
15+
''
16+
end
1017

1118
return '' if text.blank?
1219

0 commit comments

Comments
 (0)