Compare commits

...

920 Commits

Author SHA1 Message Date
Claire
eeadda0e71 Merge pull request #3310 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to 770cf42085 into stable-4.3
2025-12-08 17:31:12 +01:00
Echo
96a5d173f1 [Glitch] Fixes YouTube embeds
Port 9bc9ebc59e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-12-08 17:07:01 +01:00
Bruno Viveiros
5057735a54 [Glitch] fix: YouTube iframe being able to start at a defined time
Port bdff970a5e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-12-08 17:03:04 +01:00
Claire
27b74ba7b8 Merge commit '770cf420854b03c1994ed21baa32a05b75ed34b4' into glitch-soc/merge-4.3 2025-12-08 17:01:25 +01:00
Claire
770cf42085 Bump version to v4.3.16 (#37163) 2025-12-08 16:20:21 +01:00
Claire
ef1af11956 Merge commit from fork 2025-12-08 15:44:08 +01:00
Echo
140e011e73 Fixes YouTube embeds (#37126) 2025-12-05 11:15:00 +01:00
Bruno Viveiros
43f8760c95 fix: YouTube iframe being able to start at a defined time (#26584) 2025-12-05 11:15:00 +01:00
Claire
473c112dae Increase HTTP read timeout for expensive S3 batch delete operation (#37004) 2025-12-05 11:15:00 +01:00
Matt Jankowski
821e735524 Suggest ES image version 7.17.29 in docker compose (#36972) 2025-12-05 11:15:00 +01:00
Claire
167c46adce Merge pull request #3293 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to 3260d25a8e into stable-4.3
2025-11-20 15:25:26 +01:00
Claire
7040d14476 Merge commit '3260d25a8e77635aa7ab874c9ca9acf51dfb36fb' into glitch-soc/merge-4.3 2025-11-20 15:01:17 +01:00
Claire
3260d25a8e Bump version to v4.3.15 (#36947) 2025-11-20 14:41:15 +01:00
Claire
b635c419fc Update dependency glob (#36943) 2025-11-19 16:29:53 +01:00
Shugo Maeda
d2f1767b81 Fix ArgumentError of tootctl upgrade storage-schema (#36914) 2025-11-19 15:20:08 +01:00
Claire
9636fc22cc Fix Update importing old previously-unknown activities and treating them as recent ones (#36848) 2025-11-19 15:20:08 +01:00
Claire
3924b33914 Update security policy for 4.3 (#36756) 2025-11-06 14:58:16 +01:00
Claire
99efed9aee Merge pull request #3233 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to 6dee9a12d2 into stable-4.3
2025-10-13 16:15:00 +02:00
Claire
f97834019a Merge commit '6dee9a12d2c2c3671ad9f4bc035f050a7c9549c5' into glitch-soc/merge-4.3 2025-10-13 15:58:48 +02:00
Claire
6dee9a12d2 Bump version to v4.3.14 (#36445) 2025-10-13 15:49:51 +02:00
Claire
81ed241061 Fix streaming still being authorized for suspended accounts (#36450) 2025-10-13 15:49:30 +02:00
Emelia Smith
aa1d3825cd Merge commit from fork 2025-10-13 14:20:57 +02:00
Claire
032aa9eb68 Merge commit from fork
* Ensure tootctl revokes sessions, access tokens and web push subscriptions

* Fix test coverage

---------

Co-authored-by: Emelia Smith <ThisIsMissEm@users.noreply.github.com>
2025-10-13 14:20:23 +02:00
Claire
50b586ef02 Merge commit from fork
* Streaming: Ensure disabled users cannot connect to streaming

* Streaming: Disconnect when the user is disabled

---------

Co-authored-by: Emelia Smith <ThisIsMissEm@users.noreply.github.com>
2025-10-13 14:19:14 +02:00
Claire
233f7570b3 Update dependency openssl 2025-10-13 11:03:46 +02:00
Claire
51b1a49834 Update dependency rack 2025-10-13 11:03:46 +02:00
Claire
90955d4ca5 Merge pull request #3229 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to 5983f8292b into stable-4.3
2025-10-10 20:27:30 +02:00
Claire
5ef8a632bf Merge commit '5983f8292b0e61f3878718a81ae708bf99462892' into glitch-soc/merge-4.3 2025-10-10 19:20:48 +02:00
github-actions[bot]
6d55436687 New Crowdin Translations for stable-4.3 (automated) (#3223)
* New Crowdin translations

* Fix bogus no.yml

* Fix bogus simple_form.no.yml

---------

Co-authored-by: GitHub Actions <noreply@github.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2025-10-10 18:52:22 +02:00
github-actions[bot]
5983f8292b New Crowdin Translations for stable-4.3 (automated) (#36432)
Co-authored-by: GitHub Actions <noreply@github.com>
2025-10-10 18:17:25 +02:00
Claire
30c34606a1 Merge pull request #3219 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to 22c9f190e8 into stable-4.3
2025-10-09 14:08:15 +02:00
Claire
a53edd223e Merge commit '22c9f190e8f7b79ac6b66343680ed58d8ae65cc5' into glitch-soc/merge-4.3 2025-10-08 18:02:53 +02:00
Claire
22c9f190e8 Update dependency urì 2025-10-08 15:45:47 +02:00
Claire
f88b139a70 Update dependency rack 2025-10-08 15:45:47 +02:00
Claire
82edd1bcf5 Add integration tests for mastodon-streaming (#36025)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Co-authored-by: David Roetzel <david@roetzel.de>
2025-10-08 15:45:47 +02:00
Claire
414f8ff60d Fix redirect to external object when URL is missing or malformed (#36347) 2025-10-08 15:45:47 +02:00
Claire
9e1c33f96a Merge upstream changes up to a86078e8bb into stable-4.3 (#3196)
* Fix getting `Create` and `Update` out of order (#36176)

* Fix processing of out-of-order `Update` as implicit updates (#36190)

* Update dependency `rexml`

* Bump version to v4.3.13
2025-09-23 18:47:29 +02:00
Claire
ef4ecd5eeb Merge commit 'a86078e8bb082eb15e0fd0d183a8a610f043827f' into glitch-soc/merge-4.3 2025-09-23 18:19:32 +02:00
Claire
a86078e8bb Bump version to v4.3.13 2025-09-23 14:33:27 +02:00
Claire
a3a02549e8 Update dependency rexml 2025-09-23 14:33:27 +02:00
Claire
06081721ef Fix processing of out-of-order Update as implicit updates (#36190) 2025-09-23 14:33:27 +02:00
Claire
60771df3e7 Fix getting Create and Update out of order (#36176) 2025-09-23 14:33:27 +02:00
Claire
21b324cc88 Merge pull request #3183 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to 51b29f4c30 to stable-4.3
2025-09-16 18:17:29 +02:00
Claire
5f07606955 Merge commit '51b29f4c30ef40d6f4ca6f8589b6093a5665c3a3' into glitch-soc/merge-4.3 2025-09-16 18:01:13 +02:00
Claire
51b29f4c30 Bump version to v4.3.12 2025-09-16 13:54:37 +02:00
Claire
0ec46833fa Update rails dependencies 2025-09-16 13:54:37 +02:00
Claire
de488fbea2 Merge pull request #3175 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to 6b78be274b into stable-4.3
2025-09-05 19:24:46 +02:00
Claire
d595641b73 [Glitch] Fix editing or deleting and redrafting polls in 4.3
Port 055be70c59 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-09-05 12:18:27 +02:00
Claire
fd733d0603 Merge remote-tracking branch 'upstream/stable-4.3' into glitch-soc/merge-4.3 2025-09-05 12:18:08 +02:00
Claire
055be70c59 Fix editing or deleting and redrafting polls in 4.3 (#36036) 2025-09-05 12:17:02 +02:00
Claire
0eeb0f00ba [Glitch] Fix API return types for interaction API helpers
Port 8777443c9b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-09-04 19:18:23 +02:00
Claire
6e406e119f [Glitch] Fix Edit as well as “Delete & Redraft” on a poll not inserting empty option
Port a48567784c to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-09-04 19:18:17 +02:00
Claire
789df6b196 Merge remote-tracking branch 'upstream/stable-4.3' into glitch-soc/merge-4.3 2025-09-04 19:14:04 +02:00
fiona
6b78be274b Fix handling of edited status with new media and no text (#35970) 2025-09-04 15:44:53 +02:00
Claire
a3d4b7c9b9 Fix API return types for interaction API helpers (#35915) 2025-09-04 15:44:53 +02:00
Claire
d2b544e584 Fix Edit as well as “Delete & Redraft” on a poll not inserting empty option (#35892) 2025-09-04 15:44:53 +02:00
Claire
84c5ffb565 Fix self-destruct scheduler behavior on some Redis setups (#35823) 2025-09-04 15:44:53 +02:00
Claire
1d26fa9fed Merge pull request #3151 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes up to v4.3.11
2025-08-05 15:31:47 +02:00
Claire
62f21ab1fc Merge commit '42594f253e64c559ca2462abab0623dddc82f54c' into glitch-soc/backports-4.3 2025-08-05 15:16:11 +02:00
Claire
42594f253e Bump version to v4.3.11 (#35685) 2025-08-05 15:14:32 +02:00
Claire
b21e29cc7c Merge commit from fork 2025-08-05 14:53:04 +02:00
github-actions[bot]
ef8b45f004 New Crowdin Translations for stable-4.3 (automated) (#35682)
Co-authored-by: GitHub Actions <noreply@github.com>
2025-08-05 14:02:30 +02:00
Claire
16a3fcbe26 Update dependency ruby-saml to v1.18.1 2025-08-05 11:43:25 +02:00
Claire
65f1d77043 Disable ActiveRecord query cache in Create critical path (#35662) 2025-08-05 11:43:25 +02:00
Claire
6202cf6b65 Fix WebUI crashing for accounts with null URL (#35651) 2025-08-05 11:43:25 +02:00
Claire
8ee8228d46 Fix friends-of-friends recommendations suggesting already-requested accounts (#35604) 2025-08-05 11:43:25 +02:00
Claire
18869e9c90 Merge pull request #3139 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes up to v4.3.10 into stable-4.3
2025-07-23 18:26:07 +02:00
Claire
70ca99224f Merge commit '2232de0bfa6ce1854cd4cb4f7080a181be0b5a35' into glitch-soc/backports-4.3 2025-07-23 18:06:51 +02:00
David Roetzel
2232de0bfa Update dependency thor 2025-07-23 16:07:56 +02:00
David Roetzel
37b642d59c Bump version to v4.3.10 2025-07-23 16:07:56 +02:00
Claire
11ec1a8d7b Update security policy (#35292) 2025-07-08 17:32:27 +02:00
Claire
ec8c7dca2f Merge pull request #3117 from ClearlyClaire/glitch-soc/merge-4.3
Merge upstream changes up to f6dbb2206c
2025-07-02 19:21:12 +02:00
Claire
b6264ea625 [Glitch] Fix “Alt text” button submitting form in moderation interface
Port 973eb0a1d3 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-07-02 19:06:58 +02:00
Jeremy Kescher
36c5b0e2f0 [Glitch] Fix /share not using server-set characters limit
Port 44a88ad4d5 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-07-02 19:06:58 +02:00
Jeong Arm
645c910d38 [Glitch] Add missing autofocus on boost modal
Port e517c2a1bf to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-07-02 19:06:58 +02:00
Claire
a076fa2063 Merge commit 'f6dbb2206c5a4c1b27ce1395b477492139cfcbcc' into glitch-soc/merge-4.3 2025-07-02 19:06:55 +02:00
Claire
f6dbb2206c Bump version to v4.3.9 2025-07-02 12:51:46 +02:00
Darius Kazemi
ea6736681b Fix NoMethodError in edge case of emoji cache handling (#34749)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2025-07-02 12:51:46 +02:00
Claire
9ee5872f14 Fix error when viewing statuses to deleted replies in moderation view (#32986) 2025-07-02 12:51:46 +02:00
Claire
447527c154 Fix search operators sometimes getting lost (#35190) 2025-07-02 12:51:46 +02:00
Claire
973eb0a1d3 Fix “Alt text” button submitting form in moderation interface (#35147) 2025-07-02 12:51:46 +02:00
Claire
5039e9d474 Add basic support for remote attachments with multiple media types (#34996) 2025-07-02 12:51:46 +02:00
Claire
980c336ca4 Fix blocked accounts not being automatically removed from trending statuses (#34891) 2025-07-02 12:51:46 +02:00
Claire
4632be68eb Fix inconsistent filtering of silenced accounts for other silenced accounts (#34863) 2025-07-02 12:51:46 +02:00
Claire
8db52f2e66 Increase capybara default timeout to reduce test flakiness (#34859) 2025-07-02 12:51:46 +02:00
Claire
b38bbd04ea Fix NoMethodError in ActivityPub::FetchFeaturedCollectionService (#34811) 2025-07-02 12:51:46 +02:00
Claire
bd0c865bbb Fix handling of inlined featured collections in ActivityPub actor objects (#34789) 2025-07-02 12:51:46 +02:00
Claire
936827013b Change passthrough video processing to emit moov atom at start of video (#34726) 2025-07-02 12:51:46 +02:00
Claire
f1cfde4152 Fix admin dashboard crash on specific Elasticsearch connection errors (#34683) 2025-07-02 12:51:46 +02:00
Marcel Hellkamp
8c25742d4c fix: OIDC account creation fails for long display names (#34639) 2025-07-02 12:51:46 +02:00
Jeremy Kescher
44a88ad4d5 Fix /share not using server-set characters limit (#33459) 2025-07-02 12:51:46 +02:00
Jeong Arm
45fa4d99b3 Handle rotation is not present in the video metadata (#33261) 2025-07-02 12:51:46 +02:00
Eugen Rochko
11a466ab53 Fix wrong video dimensions for some rotated videos (#33008) 2025-07-02 12:51:46 +02:00
Jeong Arm
e517c2a1bf Add missing autofocus on boost modal (#32953) 2025-07-02 12:51:46 +02:00
github-actions[bot]
787702c26b New Crowdin Translations for stable-4.3 (automated) (#35243)
Co-authored-by: GitHub Actions <noreply@github.com>
2025-07-02 12:26:05 +02:00
Claire
91b3859b7b Add tests for featured tag removal (#34888) 2025-06-03 15:04:23 +02:00
Claire
9b31a5fc4c [Glitch] Fix code style issue
Port 3bbf3e9709 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-05-06 17:21:02 +02:00
Claire
b6aa0b4990 [Glitch] Merge commit from fork
Port 79931bf3ae to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-05-06 17:21:02 +02:00
Claire
7868b545ed Merge pull request #3064 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to e6591bf322
2025-05-06 15:48:23 +02:00
Claire
bd8d96e699 Merge commit 'e6591bf322c7e47a8420a588d52a44a585c10b54' into glitch-soc/merge-4.3
Conflicts:
- `docker-compose.yml`:
  Conflict because of different repo names. Updated version.
2025-05-06 15:28:55 +02:00
Claire
e6591bf322 Fix code style issue 2025-05-06 15:08:57 +02:00
Claire
30e25ff7fc Bump version to v4.3.8 2025-05-06 15:04:34 +02:00
Claire
5ef82d7937 Update dependency net-imap 2025-05-06 15:04:34 +02:00
Claire
e14bf631b5 Update dependency nokogiri 2025-05-06 15:04:34 +02:00
Claire
6d46225718 Merge commit from fork
* Check scheme in account and post links

* Harden media attachments

* Client-side mitigation

* Client-side mitigation for media attachments
2025-05-06 15:02:13 +02:00
Claire
022af54ea2 Merge pull request #3061 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes to stable-4.3 up to ec2023233d
2025-05-06 08:03:24 +02:00
Claire
bcf788dad7 [Glitch] Fix sign-up e-mail confirmation page reloading on error or redirect
Port 698e4fdef2 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-05-05 20:39:23 +02:00
Claire
7917b495d2 Merge commit 'ec2023233d3e7cae1aba5aa1bdce0e6d72437101' into glitch-soc/backports-4.3 2025-05-05 20:35:05 +02:00
Claire
ec2023233d Add warning for REDIS_NAMESPACE deprecation at startup (#34581) 2025-05-05 18:48:39 +02:00
Claire
e6a6c26c36 Remove double-query for signed query strings (#34610) 2025-05-05 18:48:39 +02:00
Claire
86a8aa5e5c Add built-in context for interaction policies (#34574) 2025-05-05 18:48:39 +02:00
Claire
a9f8b1ad96 Fix incorrect redirect in response to unauthenticated API requests in limited federation mode (#34549) 2025-05-05 18:48:39 +02:00
Claire
698e4fdef2 Fix sign-up e-mail confirmation page reloading on error or redirect (#34548) 2025-05-05 18:48:39 +02:00
Claire
72b1af137e Change activity distribution error handling to skip retrying for deleted accounts (#33617) 2025-05-05 18:48:39 +02:00
David Roetzel
8291afae35 [Glitch] Merge commit from fork
Port d8f9db547a to glitch-soc

Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-05-03 18:39:30 +02:00
Claire
1ce0733cac Add option to stretch columns to available width (#3040) (#3042) 2025-04-15 13:57:49 +02:00
Claire
8bfbf2abaf Switch to glitch-soc docker images in docker-compose (#3038)
Fixes #3032
2025-04-12 12:42:07 +02:00
Claire
a63511425f Merge pull request #3026 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to 6f16011c5a
2025-04-02 14:26:10 +02:00
Claire
459e3451b6 Merge commit '6f16011c5a46bfa131cc1d6be89347dcff1b0fc1' into glitch-soc/merge-4.3 2025-04-02 12:10:24 +02:00
Jeong Arm
58d2c7b481 Merge pull request #2972 from tribela/fix-secondary-button
Fix secondary post button alignment
2025-04-02 12:09:17 +02:00
Claire
ae43b6bb09 Merge MoveGlitchUserSettings migration into MoveUserSettings (#2925) 2025-04-02 12:08:44 +02:00
Claire
6f16011c5a Bump version to v4.3.7 (#34328) 2025-04-02 09:14:21 +02:00
Claire
f79810313c Merge pull request #3024 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to 6d53e8c6c5 to stable-4.3
2025-04-02 08:34:39 +02:00
Claire
65a6840f71 Fix static version of animated PNG emojis not being properly extracted (#34337) 2025-04-01 16:01:14 +02:00
github-actions[bot]
527d9200d0 New Crowdin Translations for stable-4.3 (automated) (#34336)
Co-authored-by: GitHub Actions <noreply@github.com>
2025-04-01 11:10:20 +02:00
Claire
cbb9b83160 [Glitch] Fix bookmarks and favourites not being filtered
Port 2eb6d815d6 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-03-31 20:17:32 +02:00
Claire
51fcb9ca99 [Glitch] Fix filters not applying in detailed view
Port 8c3eeb4d29 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-03-31 20:15:13 +02:00
Claire
4a271072f5 Merge commit '6d53e8c6c5273bc8405ed8cf10ec6455ad7cc677' into glitch-soc/merge-4.3 2025-03-31 19:55:39 +02:00
Claire
6d53e8c6c5 Add delay to profile updates to debounce them (#34137) 2025-03-31 15:38:00 +02:00
Claire
d9fb61f305 Change account suspensions to be federated to recently-followed accounts as well (#34294) 2025-03-31 15:38:00 +02:00
Claire
6af733d1d8 Change AccountReachFinder to consider statuses based on suspension date (#34291) 2025-03-31 15:38:00 +02:00
Matt Jankowski
29eae75ca0 Define constants for sampling sizes in AccountReachFinder (#32805) 2025-03-31 15:38:00 +02:00
David Roetzel
8a3f25a4fa Use fixed order in flaky spec (#34279) 2025-03-31 15:38:00 +02:00
Claire
0615febd84 Add support for paginating partial collections in SynchronizeFollowersService (#34277) 2025-03-31 15:38:00 +02:00
Claire
86d8df0c03 Fix follower synchronization mechanism erroneously removing followers from multi-page collections (#34272) 2025-03-31 15:38:00 +02:00
Claire
105e5b1d76 Fix bookmarks and favourites not being filtered (#34260) 2025-03-31 15:38:00 +02:00
Claire
d6442b5455 Fix filters not applying in detailed view (#34259) 2025-03-31 15:38:00 +02:00
Claire
653868bb0c Change user archive signed URL TTL from 10 seconds to 1 hour (#34254) 2025-03-31 15:38:00 +02:00
Claire
4cb3fe35be Fix handling of malformed/unusual HTML (#34201) 2025-03-31 15:38:00 +02:00
Claire
8197e65cb3 Fix CacheBuster being queued for missing media attachments (#34253) 2025-03-31 15:38:00 +02:00
Claire
c48413ad4c Fix incorrect URL being used when cache busting (#34189) 2025-03-31 15:38:00 +02:00
Claire
9be391514b Fix streaming server refusing unix socket path in DATABASE_URL (#34091) 2025-03-31 15:38:00 +02:00
Claire
2340f4df81 Fix “x” hotkey not working on boosted filtered posts (#33758) 2025-03-31 15:38:00 +02:00
Claire
db86ec3d62 Merge pull request #2995 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to cdcd77ebff to stable-4.3
2025-03-13 15:44:43 +01:00
Claire
da6e667123 Merge commit 'cdcd77ebff3ff2093d47dbd622df763e88eaa731' into glitch-soc/merge-4.3 2025-03-13 15:28:46 +01:00
David Roetzel
cdcd77ebff Bump version to v4.3.6 2025-03-13 13:32:38 +01:00
Claire
c79c9e8c42 Update dependency omniauth-saml 2025-03-13 10:20:47 +01:00
Claire
e84031ea97 Update dependency rack 2025-03-13 10:20:47 +01:00
Claire
d01e407177 Fix Stoplight errors when using REDIS_NAMESPACE (#34126) 2025-03-13 10:20:47 +01:00
Claire
e1ff48978d Merge pull request #2990 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to a8613b7cda in stable-4.3
2025-03-10 12:46:02 +01:00
Claire
24304fbbe6 [Glitch] Change hashtag suggestion to prefer personal history capitalization
Port 62f019252a to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-03-10 12:25:32 +01:00
Claire
644caeb156 [Glitch] Fix preview cards under Content Warnings not being shown in detailed statuses
Port 1ed1cdba1b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-03-10 12:25:06 +01:00
Claire
ad92660de6 [Glitch] Fix username and display name being hidden on narrow screens in moderation interface
Port b73e968641 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-03-10 12:23:53 +01:00
Claire
c5d17a3997 Merge commit 'a8613b7cda61e46209cace4379a9dea81f45529e' into glitch-soc/merge-4.3 2025-03-10 12:20:09 +01:00
Claire
a8613b7cda Bump version to v4.3.5 2025-03-10 10:14:17 +01:00
Noel De Martin
0c2fa2aab4 Comment sidekiq build in docker compose (#33483) 2025-03-10 10:14:17 +01:00
Claire
62f019252a Change hashtag suggestion to prefer personal history capitalization (#34070) 2025-03-10 10:14:17 +01:00
Renaud Chaput
4228ca614c Fix processing errors for some HEIF images from iOS 18 (#34086) 2025-03-10 10:14:17 +01:00
Claire
7e20ee7695 Fix streaming server not filtering unknown-language posts from public timelines (#33774) 2025-03-10 10:14:17 +01:00
Claire
1ed1cdba1b Fix preview cards under Content Warnings not being shown in detailed statuses (#34068) 2025-03-10 10:14:17 +01:00
Claire
b73e968641 Fix username and display name being hidden on narrow screens in moderation interface (#33064) 2025-03-10 10:14:17 +01:00
Claire
559f7a8e61 [Glitch] Fix media preview height in compose form when 3 or more images are attached (#2988)
Port 50449ae7ac to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-03-08 16:13:49 +01:00
Claire
bcfd6ab3e4 Add Ruby 3.4 to Mastodon 4.3 test matrix (#34028) 2025-02-28 11:17:18 +01:00
Claire
1704a7d858 Merge pull request #2980 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to c1f398ae93
2025-02-27 16:31:19 +01:00
Claire
97fd14e141 Merge commit 'c1f398ae93d23ebb1ff5c7df5a32bc161a632980' into glitch-soc/merge-4.3 2025-02-27 16:21:44 +01:00
Claire
c1f398ae93 Bump version to v4.3.4 2025-02-27 16:09:48 +01:00
Claire
19b3469c29 Change HTML sanitization to remove unusable and unused embed tag (#34021) 2025-02-27 16:09:48 +01:00
Claire
57e4232b3e Update dependency uri 2025-02-27 16:09:48 +01:00
Claire
c6b501c42d Merge commit from fork
* Fix domain blocks/rationales being visible to unapproved/unconfirmed users

* Fix domain blocks/rationales being visible to suspended users

Co-authored-by: Claire <claire.github-309c@sitedethib.com>

* Allow moved users to view domain blocks

* Add authorization specs for `/api/v1/instance/domain_blocks` spec

* Fix tests

* Fix incorrect test setup

---------

Co-authored-by: Jeremy Kescher <jeremy@kescher.at>
2025-02-27 15:49:57 +01:00
Claire
5140f31cbb Merge commit from fork 2025-02-27 15:44:35 +01:00
Claire
adee65ad1b Merge pull request #2976 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to b1a584d252
2025-02-25 21:20:39 +01:00
Claire
fba7e85b9b [Glitch] Fix emoji rewrite adding unnecessary curft to the DOM for most emoji
Port 44f5f1f0a5 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-02-25 18:40:30 +01:00
Claire
bc95675236 [Glitch] Fix preview card sizing in “Author attribution” in profile settings
Port 82e046ea06 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-02-25 18:39:00 +01:00
Eugen Rochko
ccc4fcbdb8 [Glitch] Fix notification polling showing a loading bar in web UI
Port e856838e0c to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-02-25 18:38:35 +01:00
Oliver Geer
e3afbab115 [Glitch] Fix accounts table long display name
Port 0ad5c212c1 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2025-02-25 18:38:12 +01:00
Claire
baac429103 Merge commit 'b1a584d252f4df4c2a1a9400d6588b4f36768216' into glitch-soc/merge-4.3
Conflicts:
- `app/lib/feed_manager.rb`:
  Not a real conflict, but glitch-soc has an extra `populate_direct_feed` method.
  Added upstream's code.
  In addition, upstream changed how notifications from follow subscriptions were
  handled, refactoring this file in the process.
  Ported upstream's changes.
- `app/services/precompute_feed_service.rb`:
  Not a real conflict, glitch-soc has extra code for the direct feed.
  Added upstream's new code for populating lists.
- `app/validators/poll_options_validator.rb`:
  Upstream split `PollValidator` in two, and glitch-soc had local changes to
  make the options configurable.
  Refactored as upstream did, keeping glitch-soc's configurable limits.
- `app/workers/feed_insert_worker.rb`:
  Upstream changed how notifications from follow subscriptions were handled,
  refactoring this file in the process.
  Conflict is due to glitch-soc having an extra timeline type (direct).
  Ported upstream's changes.
2025-02-25 18:33:54 +01:00
github-actions[bot]
b1a584d252 New Crowdin Translations for stable-4.3 (automated) (#33999)
Co-authored-by: GitHub Actions <noreply@github.com>
2025-02-25 17:12:07 +01:00
Claire
8787077462 Fix GET /api/v2/notifications/:id and POST /api/v2/notifications/:id/dismiss for ungrouped notifications (#33990) 2025-02-25 17:11:09 +01:00
Claire
10bcbf15af Update dependency nokogiri 2025-02-25 17:11:09 +01:00
Claire
fb29ac0f5f Update dependency rack 2025-02-25 17:11:09 +01:00
Claire
b0f88be86f Update dependencies net-imap, net-smtp and timeout 2025-02-25 17:11:09 +01:00
Claire
018b85e767 Update dependency ruby-vips 2025-02-25 17:11:09 +01:00
Claire
08d2250ad2 Fix handling of duplicate mentions in incoming status Update (#33911) 2025-02-25 17:11:09 +01:00
Claire
679e7555ee Fix filtering for lists (#33842) 2025-02-25 17:11:09 +01:00
Claire
452153d55d Optimize timeline generation (#33839) 2025-02-25 17:11:09 +01:00
Claire
2954c2facb Change preview cards to be shown when Content Warnings are expanded (#33827) 2025-02-25 17:11:09 +01:00
Claire
44e38b79de Fix emoji rewrite adding unnecessary curft to the DOM for most emoji (#33818) 2025-02-25 17:11:09 +01:00
Claire
b32a67ff74 Fix tootctl feeds build not building list timelines (#33783) 2025-02-25 17:11:09 +01:00
Claire
4f33b041f0 Fix flaky test in /api/v2/notifications tests (#33773) 2025-02-25 17:11:09 +01:00
Claire
6e906884cf Fix missing timeout options in Request class (#33769) 2025-02-25 17:11:09 +01:00
Claire
317715254f Fix incorrect signature after HTTP redirect (#33757) 2025-02-25 17:11:09 +01:00
Claire
2b148d3e88 Fix polls not being validated on edition (#33755) 2025-02-25 17:11:09 +01:00
Claire
227d48dbd5 Fix LDSignature tests (#33705) 2025-02-25 17:11:09 +01:00
Claire
94fed6e140 Change mastodon:setup to prevent overwriting already-configured servers (#33684) 2025-02-25 17:11:09 +01:00
Matt Jankowski
37b029d400 Move clear environment portion of mastodon:setup to private method (#33616) 2025-02-25 17:11:09 +01:00
Matt Jankowski
11baa26db2 Collect errors in setup rake task (#33603) 2025-02-25 17:11:09 +01:00
Claire
c7172b54fe Change notifications from moderators to not be filtered (#33654) 2025-02-25 17:11:09 +01:00
Matt Jankowski
74496838e7 Add UserRole#bypass_block? method for notification check (#32974) 2025-02-25 17:11:09 +01:00
Claire
ca39069433 Further harden the warnings against changing encryption secrets (#33631) 2025-02-25 17:11:09 +01:00
Claire
7ad9581940 Fix media preview height in compose form when 3 or more images are attached (#33571) 2025-02-25 17:11:09 +01:00
Claire
e4f2a054c9 Fix preview card sizing in “Author attribution” in profile settings (#33482) 2025-02-25 17:11:09 +01:00
Claire
68eb62f4a9 Fix processing of incoming notifications for unfilterable types (#33429) 2025-02-25 17:11:09 +01:00
Claire
e63d0cfe85 Fix intermittent failure on ap/activity/update spec timestamp check (#33425) 2025-02-25 17:11:09 +01:00
Matt Jankowski
4da31b8263 Fix intermittent failure on ap/activity/create spec timestamp check (#33406) 2025-02-25 17:11:09 +01:00
Claire
17695ace33 Fix featured tags for remote accounts not being kept up to date (#33372) 2025-02-25 17:11:09 +01:00
Eugen Rochko
fa2625a0d9 Fix notification polling showing a loading bar in web UI (#32960) 2025-02-25 17:11:09 +01:00
Oliver Geer
1005b2f7b2 Fix accounts table long display name (#29316) 2025-02-25 17:11:09 +01:00
Claire
f24b0e9505 Fix exclusive lists interfering with notifications (#28162) 2025-02-25 17:11:09 +01:00
Claire
4db64491ee Merge pull request #2969 from glitch-soc/glitch-soc/merge-4.3
Merge upstream changes up to 96455304bc
2025-02-12 20:53:05 +01:00
Claire
fd79e2417d Merge commit '96455304bc0d7157e9db13dba838a641ba42e907' into glitch-soc/merge-4.3
- `.github/workflows/build-nightly.yml`:
  We had modified the file to disable the custom ARM64 builder.
  Upstream has removed it, using github's runners.
  Took upstream's changes.
- `.github/workflows/build-push-pr.yml`:
  We had modified the file to disable the custom ARM64 builder.
  Upstream has removed it, using github's runners.
  Took upstream's changes.
- `.github/workflows/build-releases.yml`:
  We had modified the file to disable the custom ARM64 builder.
  Upstream has removed it, using github's runners.
  Took upstream's changes.
- `.github/workflows/build-security.yml`:
  We had modified the file to disable the custom ARM64 builder.
  Upstream has removed it, using github's runners.
  Took upstream's changes.
2025-02-12 20:33:05 +01:00
Claire
96455304bc Use github's native arm64 runners for docker builds (#33886) 2025-02-12 11:02:44 +01:00
Claire
63f4e2070c Merge commit 'faed9bf9f14f077443374f5eb3075b9878e24214' into glitch-soc/stable-4.3 2025-01-16 11:43:10 +01:00
Claire
faed9bf9f1 Bump version to v4.3.3 2025-01-16 11:42:36 +01:00
Claire
10f10844ff Update dependencies rails and rails-html-sanitizer 2025-01-16 11:42:36 +01:00
Michael Stanclift
5c8d2be23b Fix libyaml missing from Dockerfile build stage (#33591) 2025-01-16 11:42:36 +01:00
Claire
90072f4367 Fix incorrect relationship_severance_event attribute name in changelog (#33443) 2025-01-16 11:42:36 +01:00
Claire
512bfc0a54 Fix incorrect notification settings migration for non-followers (#33348) 2025-01-16 11:42:36 +01:00
Jesse Karmani
d764ae017d Fix down clause for notification policy v2 migrations (#33340) 2025-01-16 11:42:36 +01:00
Claire
757aed3290 Fix error decrementing status count when FeaturedTags#last_status_at is nil (#33320) 2025-01-16 11:42:36 +01:00
Claire
3cff7caffd Fix last paginated notification group only including data on a single notification (#33271) 2025-01-16 11:42:36 +01:00
Claire
533477e77c Fix processing of mentions for post edits with an existing corresponding silent mention (#33227) 2025-01-16 11:42:36 +01:00
Claire
afcfc64007 Fix deletion of unconfirmed users with Webauthn set (#33186) 2025-01-16 11:42:36 +01:00
Claire
734f0dd182 Fix fediverse:creator metadata not showing up in REST API (#33466) 2025-01-16 11:42:36 +01:00
Matt Jankowski
bcc798d6a7 Fix empty authors preview card serialization (#33151) 2025-01-16 11:42:36 +01:00
Claire
3a4242ce01 Merge commit from fork 2025-01-16 11:10:08 +01:00
Claire
23376cb691 Fix NameError in status update processing (#33161) 2024-12-04 08:41:21 +01:00
Claire
c2d65f7142 Merge commit '13ab4b54e2b9cb9ddfcbe9dd3d820a7ba9164412' into glitch-soc/stable-4.3 2024-12-03 15:17:19 +01:00
Claire
13ab4b54e2 Bump version to v4.3.2 (#33136) 2024-12-03 15:16:28 +01:00
Claire
df0b641914 [Glitch] Fix duplicate notifications in notification groups when using slow mode
Port 4bfb8887bf to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:58:22 +01:00
Claire
624b942c2e [Glitch] Redesign Content Warning and filters
Port 393f0a0159 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:57:14 +01:00
Claire
cfa2e0503a [Glitch] Fix alt-text pop-in not using the translated description
Port 0a1b5df202 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:57:00 +01:00
Renato "Lond" Cerqueira
de945eef63 [Glitch] Fix 'unknown' media attachment rendering in detailed view
Port 01e25af2e3 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:56:45 +01:00
Claire
9a7030fb69 [Glitch] Fix preview cards with long titles erroneously causing layout changes
Port 742eb549ab to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:56:24 +01:00
Nathan Sparrow
221da1ba04 [Glitch] Embed modal mobile fix
Port de1d8dc63a

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:56:05 +01:00
David Roetzel
ff85540904 [Glitch] Do not change follow counters when already following
Port 029c99bd7b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:55:41 +01:00
Emelia Smith
c2862049a2 [Glitch] Fix 'unknown' media attachment type rendering
Port 346cdb998c to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-12-02 21:55:26 +01:00
Claire
0d69cc068c Merge commit '26f25ef4bafd5ad84d03d8cb7ad0d868360175e5' into glitch-soc/stable-4.3
Conflicts:
- `app/javascript/styles/mastodon/components.scss`:
  Conflict caused by glitch-soc changing the path to images, and upstream
  removing styling using such an image.
  Removed the styling as upstream did.
- `app/models/trends/statuses.rb`:
  Upstream added a date restriction to trendable posts, while glitch-soc had
  slightly different conditions.
  Added the date restriction to glitch-soc's conditions.
2024-12-02 21:49:12 +01:00
github-actions[bot]
26f25ef4ba New Crowdin Translations for stable-4.3 (automated) (#33135)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-12-02 16:53:28 +01:00
Claire
3b4070cfcc Prepare changelog 2024-12-02 16:20:32 +01:00
Claire
eb997c9f0e Fix processing incoming post edits with mentions to unresolvable accounts (#33129) 2024-12-02 16:20:32 +01:00
Yann
4239baa1f4 Remove constant definition from global scope in embed.js (#33107) 2024-12-02 16:20:32 +01:00
Claire
5532d1c2cb Add tootctl feeds vacuum (#33065) 2024-12-02 16:20:32 +01:00
Claire
3f0d90f019 Fix inactive users' timelines being backfilled on follow and unsuspend (#33094) 2024-12-02 16:20:32 +01:00
Claire
15e1a63e4a Fix direct inbox delivery pushing posts into inactive followers' timelines (#33067) 2024-12-02 16:20:32 +01:00
Claire
6b8ff1cf6e Fix TagFollow records not being correctly handled in account operations (#33063) 2024-12-02 16:20:32 +01:00
Eugen Rochko
6cbd217055 Fix pushing hashtag-followed posts to feeds of inactive users (#33018) 2024-12-02 16:20:32 +01:00
Claire
90c7c1bf7d Fix duplicate notifications in notification groups when using slow mode (#33014) 2024-12-02 16:20:32 +01:00
Claire
e06448e652 Fix posts made in the future being allowed to trend (#32996) 2024-12-02 16:20:32 +01:00
Claire
3752db3c9a Update dependency rexml 2024-12-02 16:20:32 +01:00
Claire
cc5c125cc7 Fix uploading higher-than-wide GIF profile picture with libvips enabled (#32911) 2024-12-02 16:20:32 +01:00
Claire
f65523c5b6 Fix domain attribution field having autocorrect and autocapitalize enabled (#32903) 2024-12-02 16:20:32 +01:00
Claire
5b6b23eeef Fix titles being escaped twice (#32889) 2024-12-02 16:20:32 +01:00
Claire
0cbf03efa7 Fix list creation limit check (#32869) 2024-12-02 16:20:32 +01:00
Matt Jankowski
90f2c7a1e9 Fix error in CLI EmailDomainBlocks when supplying --with-dns-records (#32863) 2024-12-02 16:20:32 +01:00
Matt Jankowski
f0d734cc6e Add DomainHelpers spec support module for DNS/MX stub (#32690) 2024-12-02 16:20:32 +01:00
Eugen Rochko
0720ef5f62 Fix min_id and max_id causing error in search API (#32857) 2024-12-02 16:20:32 +01:00
Claire
dc9a106d4c Avoid latest featured tag use on post removal unless necessary (#32787) 2024-12-02 16:20:32 +01:00
Claire
c634da32cf Redesign Content Warning and filters (#32543) 2024-12-02 16:20:32 +01:00
Claire
2d8ce9e19a Fix alt-text pop-in not using the translated description (#32766) 2024-12-02 16:20:32 +01:00
Renato "Lond" Cerqueira
1ddf1aedf1 Fix 'unknown' media attachment rendering in detailed view (#32713) 2024-12-02 16:20:32 +01:00
Claire
931870ca34 Fix preview cards with long titles erroneously causing layout changes (#32678) 2024-12-02 16:20:32 +01:00
Nathan Sparrow
7f9b0f36ba Embed modal mobile fix (#32641) 2024-12-02 16:20:32 +01:00
Hugo Gameiro
dd0992b25d Fix and improve batch attachment deletion handling when using OpenStack Swift (#32637) 2024-12-02 16:20:32 +01:00
Jeong Arm
9b677f099e Fix that blocking was not working on link timeline (#32625) 2024-12-02 16:20:32 +01:00
David Roetzel
c13b8026f0 Do not change follow counters when already following (#32622) 2024-12-02 16:20:32 +01:00
Emelia Smith
bf1375ae37 Fix 'unknown' media attachment type rendering (#32613) 2024-12-02 16:20:32 +01:00
Eugene Alvin Villar
b06161dba3 Fix tl language native name (#32606) 2024-12-02 16:20:32 +01:00
Matt Jankowski
a089109b77 Use async_count in more view locations (#32086) 2024-12-02 16:20:32 +01:00
Leni Kadali
74f9f7c600 Add error message when user tries to follow their own account (#31910) 2024-12-02 16:20:32 +01:00
Emelia Smith
ea1b598246 Add client_secret_expires_at to OAuth Applications (#30317) 2024-12-02 16:20:32 +01:00
Matt Jankowski
dbedd021f5 Move account suspension-related methods to concern (#28351) 2024-12-02 16:20:32 +01:00
Claire
5d79af928c Fix collapse icon opening the post (#2899) 2024-11-24 18:36:54 +01:00
Claire
a62be22cb1 Fix clicking on avatar/display opening status instead of profile (#2897)
Fix regression from #2895
2024-11-24 18:36:54 +01:00
Claire
96ffbc05c0 Fix status clickable area (#2895) 2024-11-24 18:36:54 +01:00
Claire
39fb314421 Merge pull request #2888 from ClearlyClaire/glitch-soc/backports-4.3
Backports upstream changes to glitch-soc (stable 4.3)
2024-10-21 11:13:51 +02:00
Claire
90f6984ff1 Merge tag 'v4.3.1' into glitch-soc/backports-4.3 2024-10-21 11:06:25 +02:00
Claire
9adb96f3a1 Bump version to v4.3.1 (#32582)
Co-authored-by: David Roetzel <david@roetzel.de>
2024-10-21 10:58:01 +02:00
Claire
d5a3478864 Merge pull request #2886 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes up to f7aab0cc2f (stable-4.3)
2024-10-19 19:14:05 +02:00
Claire
9877a053f6 [Glitch] Remove ability to get embed code for remote posts
Port de5f522cc0 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-18 17:30:47 +02:00
hota
605ed50603 [Glitch] Fix column-settings spacing in local timeline in advanced view
Port 044dd3f788 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-18 17:30:18 +02:00
Claire
e1609c6813 [Glitch] Add more explicit explanations about author attribution and fediverse:creator
Port 7388a6ce9a to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-18 17:27:57 +02:00
Renaud Chaput
de5d6e98ae [Glitch] Add ability to group follow notifications in WebUI
Port e507b4f884 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-18 17:27:12 +02:00
Claire
2b0410f903 Merge commit 'f7aab0cc2ff47337021d50ed52428abcb7a9b518' into glitch-soc/backports-4.3
Conflicts:
- `app/helpers/application_helper.rb`:
  Upstream added a helper, while glitch-soc had extra helpers.
  Added upstream's helper.
2024-10-18 17:19:57 +02:00
Claire
f7aab0cc2f Update changelog 2024-10-18 15:49:26 +02:00
Claire
de5f522cc0 Remove ability to get embed code for remote posts (#32578) 2024-10-18 15:49:26 +02:00
Claire
d728fa9991 Fix follow recommendation moderation page default language when using regional variant (#32580) 2024-10-18 15:49:26 +02:00
hota
044dd3f788 Fix column-settings spacing in local timeline in advanced view (#32567) 2024-10-18 15:49:26 +02:00
Matt Jankowski
afc440435c Fix broken i18n in text welcome mailer tags area (#32571) 2024-10-18 15:49:26 +02:00
github-actions[bot]
d0fb7939bb New Crowdin Translations for stable-4.3 (automated) (#32576)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-10-18 10:11:59 +02:00
Claire
7388a6ce9a Add more explicit explanations about author attribution and fediverse:creator (#32383) 2024-10-18 09:14:13 +02:00
Emelia Smith
cd2a3bac79 Fix missing or incorrect cache-control headers for Streaming server (#32551) 2024-10-18 09:14:13 +02:00
Matt Jankowski
f0e011fbc9 Fix trailing slash newline in changelog (#32545) 2024-10-18 09:14:13 +02:00
Matt Jankowski
acbc273d6e Update rails to version 7.1.4.1 (#32542) 2024-10-18 09:14:13 +02:00
Claire
1f0c84749d Change Active Record Encryption variable check to check for emptiness (#32537) 2024-10-18 09:14:13 +02:00
Renaud Chaput
e507b4f884 Add ability to group follow notifications in WebUI (#32520) 2024-10-18 09:14:13 +02:00
github-actions[bot]
93348136a5 New Crowdin Translations for stable-4.3 (automated) (#32555)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-10-17 10:21:47 +02:00
Claire
3a5e83b91a Merge pull request #2885 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes (stable-4.3)
2024-10-16 19:56:45 +02:00
Claire
8d37565c19 [Glitch] Fix only the first paragraph being displayed in some notifications
Port 82dd6cd96ef42dc9fdf6f68398d46344ba0e9884 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-16 12:45:06 +02:00
Renaud Chaput
177e8fe972 [Glitch] Add back a 6 hours mute duration option
Port d73b5e2ced6c50f2410fbd724394254c792172ad to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-16 12:44:43 +02:00
Claire
198283a188 Merge commit '36452845d78f6c3501af1e39391d06ab88a45a5a' into glitch-soc/backports-4.3
Conflicts:
- `.env.production.sample`:
  Upstream added a block of three environment variables, while
  glitch-soc has a different version of the file overall.
  Added upstream's changes.
2024-10-16 12:42:12 +02:00
Claire
36452845d7 Explicitly install ImageMagick in CI (except for libvips tests) (#32534) 2024-10-16 12:40:58 +02:00
Christian Winther
5c4bcd2f08 Run migration tests against postgres 16 and 17 as well (#32416) 2024-10-16 12:40:58 +02:00
Claire
a20f38c930 Fix only the first paragraph being displayed in some notifications (#32348) 2024-10-16 12:40:58 +02:00
Renaud Chaput
b01bd74698 Add back a 6 hours mute duration option (#32522) 2024-10-16 12:40:58 +02:00
Matt Jankowski
41e342a88f Convert admin/invites controller specs to system specs (#32450) 2024-10-16 12:40:58 +02:00
Matt Jankowski
9258ee8847 Improve app/policies coverage (#32426) 2024-10-16 12:40:58 +02:00
Matt Jankowski
6d72c13a4d Convert status embed controller to request spec (#32448) 2024-10-16 12:40:58 +02:00
Matt Jankowski
ad4be12473 Add mention of encryption secrets to production sample (#32512) 2024-10-16 12:40:58 +02:00
Matt Jankowski
527d1253bf Reduce factory creation (14 -> 8) in ActivityPub::Activity::Block spec (#32488) 2024-10-16 12:40:58 +02:00
Matt Jankowski
ae676edc2b Expand coverage for User#token_for_app (#32434) 2024-10-16 12:40:58 +02:00
Matt Jankowski
63df649fe5 Expand coverage for Block model (#32480) 2024-10-16 12:40:58 +02:00
Christian Schmidt
0ff427fab3 Translate to regional language variant (e.g. pt-BR) (#32428) 2024-10-16 12:40:58 +02:00
Matt Jankowski
dc2f9eef77 Reduce factories (36 > 12) in AccountReachFinder spec (#32482) 2024-10-16 12:40:58 +02:00
Matt Jankowski
ff1247ad16 Use context for repeated scenarios in AccountStatusCleanupPolicy spec (#32489) 2024-10-16 12:40:58 +02:00
Matt Jankowski
fbe55a4545 Reduce factory creation (73 -> 64) in PublicFeed spec (#32491) 2024-10-16 12:40:58 +02:00
Matt Jankowski
a72819660a Reduce factory creation (48 -> 8) in AP::Note serializer spec (#32492) 2024-10-16 12:40:58 +02:00
Matt Jankowski
c292ed07fe Expand coverage for Scheduler::IpCleanupScheduler worker (#32499) 2024-10-16 12:40:58 +02:00
Matt Jankowski
2d008108a4 Reduce factory creation (132 -> 40) in lib/vacuum/* specs (#32498) 2024-10-16 12:40:58 +02:00
Matt Jankowski
0c59ef44b1 Extend spec coverage for Poll model (#32500) 2024-10-16 12:40:58 +02:00
Jeong Arm
12297faa1d [Glitch] Fix reblog icons on account media view
Port 49b3d5692e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-15 17:49:40 +02:00
Claire
9b6f92e47f [Glitch] Fix follow recommendation carrousel scrolling on RTL layouts, for real
Port 70472de726 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-15 17:49:40 +02:00
Renaud Chaput
8b6247ca44 [Glitch] Fix back arrow pointing to the incorrect direction in RTL languages
Port ca68a3cacb

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-15 17:49:40 +02:00
Claire
836cbca469 [Glitch] Fix follow recommendation carrousel scrolling on RTL layouts
Port a2e24ee2de to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-15 17:49:20 +02:00
Claire
b091e531a5 Merge commit '49b3d5692e6f217e6506674ad8a623a4ba8d0c5f' into glitch-soc/backports-4.3 2024-10-15 17:42:22 +02:00
Jeong Arm
49b3d5692e Fix reblog icons on account media view (#32506) 2024-10-15 17:37:14 +02:00
Claire
70472de726 Fix follow recommendation carrousel scrolling on RTL layouts, for real (#32505) 2024-10-15 17:37:14 +02:00
kenkiku1021
304e440f88 add SWIFT object storage uri to CSP media hosts (#32439)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-10-15 17:37:14 +02:00
Renaud Chaput
ca68a3cacb Fix back arrow pointing to the incorrect direction in RTL languages (#32485) 2024-10-15 17:37:14 +02:00
Emelia Smith
066efc2d3f Fix: Use consistent REDIS_USER environment variable in streaming (#32493) 2024-10-15 17:37:14 +02:00
Claire
a2e24ee2de Fix follow recommendation carrousel scrolling on RTL layouts (#32462) 2024-10-15 11:57:59 +02:00
Claire
ee61f7772a Add further warnings about encryption secrets (#32476) 2024-10-15 11:57:59 +02:00
Matt Jankowski
5ee72f0e2d Convert admin/tags controller specs to system specs (#32447) 2024-10-15 11:57:59 +02:00
Claire
192e9d16eb Fix follow recommendation suppressions not applying immediately (#32392) 2024-10-15 11:57:59 +02:00
Claire
a3f40309fb Merge pull request #2883 from ClearlyClaire/glitch-soc/backports-4.3
Port changes from upstream to stable-4.3
2024-10-14 21:47:27 +02:00
Claire
782a785893 [Glitch] Fix mute duration not being shown in list of muted accounts in web UI
Port a295832960 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-14 19:24:11 +02:00
Claire
9f165436d2 [Glitch] Fix “Mark every notification as read” not updating the read marker if scrolled down
Port e018e6321f to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-14 19:23:38 +02:00
Claire
592945e498 [Glitch] Fix “Mention” appearing for otherwise filtered posts
Port f75eb1a8b0 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-14 19:23:18 +02:00
Michael Stanclift
bfb610922d [Glitch] Restore list column border
Port de4f7859b4 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-14 19:22:54 +02:00
Claire
480dcecc11 [Glitch] Fix list edition modal styling
Port 45a520603b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-14 19:22:35 +02:00
Matt Jankowski
2647606a15 [Glitch] Bring icon vertical middle to applications list style
Port fa4a82326d to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-14 19:22:02 +02:00
Claire
b40adb4a89 Merge commit 'f99da81ef8b14a851347503d4177f83322c16d9a' into glitch-soc/stable-4.3 2024-10-14 19:18:08 +02:00
Claire
f99da81ef8 Add tag with commit hash to PR image builds (#32418) 2024-10-14 13:14:38 +02:00
Claire
799f507dce Fix language of push notifications (#32415) 2024-10-14 13:14:38 +02:00
Claire
81472396bc Add note about not changing ActiveRecord encryption secrets once they are set (#32413) 2024-10-14 13:14:38 +02:00
Claire
a295832960 Fix mute duration not being shown in list of muted accounts in web UI (#32388) 2024-10-14 13:14:38 +02:00
Claire
e018e6321f Fix “Mark every notification as read” not updating the read marker if scrolled down (#32385) 2024-10-14 13:14:38 +02:00
Claire
f75eb1a8b0 Fix “Mention” appearing for otherwise filtered posts (#32356) 2024-10-14 13:14:38 +02:00
Michael Stanclift
de4f7859b4 Restore list column border (#32367) 2024-10-14 13:14:38 +02:00
Claire
e5e0144957 Fix notification requests from suspended accounts still being listed (#32354) 2024-10-14 13:14:38 +02:00
Claire
45a520603b Fix list edition modal styling (#32358) 2024-10-14 13:14:38 +02:00
Claire
6ac78ead52 Fix 4 columns barely not fitting on 1920px screen (#32361) 2024-10-14 13:14:38 +02:00
Claire
c0d3b3de10 Fix latest tag for 4.3 docker image builds (#32350) 2024-10-14 13:14:38 +02:00
Matt Jankowski
9e04e46521 Reference IpBlock.severities keys from CLI option check (#32291) 2024-10-14 13:14:38 +02:00
Matt Jankowski
fa4a82326d Bring icon vertical middle to applications list style (#32293) 2024-10-14 13:14:38 +02:00
Claire
93fa102f9a Fix setting to hide the quick filter bar (#2882)
Fixes #2881
2024-10-11 17:45:31 +02:00
Claire
9ee86a738e Fix the favicon notification badge not using the correct notification count (#2880)
Fixes #2879
2024-10-10 19:35:55 +02:00
Claire
e272cf5983 Fix download of stable translation files in glitch-soc 2024-10-08 13:42:57 +02:00
Claire
4382de310c Merge pull request #2873 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes (stable-4.3)
2024-10-08 13:36:30 +02:00
Claire
94c69bba25 Merge branch 'stable-4.3' into glitch-soc/backports-4.3 2024-10-08 13:19:29 +02:00
github-actions[bot]
ab36c152f9 New Crowdin Translations for stable-4.3 (automated) (#32297)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-10-08 13:18:49 +02:00
Matt Jankowski
fc5b558b32 Reduce factory usage across spec/services area (#32098) 2024-10-08 10:44:32 +02:00
Claire
77ff94d3d2 Fix source strings being uploaded to crowdin in merge groups (#32298) 2024-10-08 10:10:50 +02:00
Claire
959841ae95 Merge pull request #2871 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes (stable-4.3)
2024-10-07 21:25:03 +02:00
Eugen Rochko
f669493d96 [Glitch] Fix missing avatar fallback interfering with transparency in web UI
Port cae93e79a4 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-07 20:13:58 +02:00
Eugen Rochko
83b3c50778 [Glitch] Fix wrong width on logo in detailed link card in web UI
Port 889edc560a to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-07 20:06:49 +02:00
Claire
dc7a42551f [Glitch] Fix media gallery items having incorrect borders when hidden
Port 3b4312476f to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-07 20:06:14 +02:00
Claire
4a859140ec Merge commit 'edcf3d9234b03d6b1c4b29d1d15339f7f64040fb' into glitch-soc/backports-4.3 2024-10-07 20:03:53 +02:00
Claire
edcf3d9234 Bump version to v4.3.0 (#32283) 2024-10-07 17:37:05 +02:00
Eugen Rochko
cae93e79a4 Fix missing avatar fallback interfering with transparency in web UI (#32270) 2024-10-07 16:22:11 +02:00
Claire
83a98cb81a Add missing on_delete: :cascade on notification_permissions (#32281) 2024-10-07 16:22:11 +02:00
Eugen Rochko
889edc560a Fix wrong width on logo in detailed link card in web UI (#32271) 2024-10-07 16:22:11 +02:00
github-actions[bot]
2e0d918d7d New Crowdin Translations for stable-4.3 (automated) (#32253)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-10-07 11:21:49 +02:00
Claire
3b4312476f Fix media gallery items having incorrect borders when hidden (#32257) 2024-10-07 10:54:23 +02:00
Claire
4fba4f8c82 Fix notification push notifications not including the author's username (#32254) 2024-10-07 10:54:23 +02:00
Matt Jankowski
25de2f57ee Add coverage for missing status scenario in NotificationMailer (#32256) 2024-10-07 10:54:23 +02:00
Claire
026643ab24 Fix video player's height in detailed status view 2024-10-06 19:19:14 +02:00
Claire
61e3e81e28 Merge pull request #2865 from ClearlyClaire/glitch-soc/backports-4.3
Merge upstream changes (stable-4.3)
2024-10-06 15:56:56 +02:00
Claire
354f54907d [Glitch] Fix unsupported grouped notifications from streaming causing duplicate IDs
Port 6d5aa58f88 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:05:55 +02:00
Claire
4d611e94ee [Glitch] Hide badges in media gallery when media are hidden
Port 55b5364534 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:05:15 +02:00
Claire
a09a26da49 [Glitch] Fix editing description of media uploads with custom thumbnails
Port 404f467fcf to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:04:52 +02:00
Claire
59a8066045 [Glitch] Fix media uploads in composer appearing over search results in advanced interface
Port 4a2d3929c5 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:04:31 +02:00
Claire
3cad5095c9 [Glitch] Fix incorrect 'navigator' check
Port 931553844d to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:04:09 +02:00
Matt Jankowski
e58d99a771 [Glitch] Adjust spacing on setting sub-nav items when below mobile size
Port 09cf617d7f to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:03:45 +02:00
Matt Jankowski
69c76fd94a [Glitch] Improve alignment of icons on admin roles list
Port c828e7731c to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:03:22 +02:00
Renaud Chaput
1b6bd585ab [Glitch] Fix follow notifications from streaming being grouped
Port 8ac00533ff to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-10-05 21:00:39 +02:00
Claire
dfe851b476 Merge branch 'stable-4.3' into glitch-soc/backports-4.3
Conflicts:
- `app/helpers/application_helper.rb`:
  Upstream added a helper where glitch-soc had its own, not really
  a conflict.
  Added upstream's helper.
2024-10-05 20:45:05 +02:00
Claire
6d5aa58f88 Fix unsupported grouped notifications from streaming causing duplicate IDs (#32243) 2024-10-04 17:48:03 +02:00
Claire
81cd489208 Fix Content-Security-Policy when using sso-redirect (#32241) 2024-10-04 17:48:03 +02:00
Claire
55b5364534 Hide badges in media gallery when media are hidden (#32224) 2024-10-04 17:48:03 +02:00
Matt Jankowski
2e8b752c55 Move admin action log type list generation to helper (#32178) 2024-10-04 17:48:03 +02:00
Matt Jankowski
d82ffdccbb Add copyable_input helper method to wrap shared options (#32119) 2024-10-04 17:48:03 +02:00
Matt Jankowski
5c72b46a4e Clean up labels on development application form (#32116) 2024-10-04 17:48:03 +02:00
Matt Jankowski
aa46348c03 Enable hostname config for all system specs (#32109) 2024-10-04 17:48:03 +02:00
Claire
404f467fcf Fix editing description of media uploads with custom thumbnails (#32221) 2024-10-04 17:48:03 +02:00
Claire
4a2d3929c5 Fix media uploads in composer appearing over search results in advanced interface (#32217) 2024-10-04 17:48:03 +02:00
Matt Jankowski
ceba0f082e Provide use_path to qr generator for svg data size reduction (#32127) 2024-10-04 17:48:03 +02:00
Matt Jankowski
7de8d5ffca Add relevant_params to ReportFilter (matches account filter) (#32136) 2024-10-04 17:48:03 +02:00
Matt Jankowski
74291dfb77 Remove unneeded reorder(nil) conditions (#32200) 2024-10-04 17:48:03 +02:00
Matt Jankowski
f07707a9bb Extract WebPushRequest from push notification worker and subscription (#32208) 2024-10-04 17:48:03 +02:00
Claire
931553844d Fix incorrect 'navigator' check (#32219) 2024-10-04 17:48:03 +02:00
Matt Jankowski
243a85ec8d Expand coverage for Export utility class (#32212) 2024-10-04 17:48:03 +02:00
Christian Schmidt
cbf1349370 Support /.well-known/host-meta.json (#32206) 2024-10-04 17:48:03 +02:00
Jeong Arm
b8fdffe824 Ignore error if mentioned account was not processable (#29215)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-10-04 17:48:03 +02:00
Matt Jankowski
c91e06bcad Fix Rails/CreateTableWithTimestamps cop (#30836) 2024-10-04 17:48:03 +02:00
Jeong Arm
b2ce9bb4c7 Show timestamp when the user deletes their account on admin dashboard (#25640)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-10-04 17:48:03 +02:00
Matt Jankowski
19d1392b33 Avoid repeated icon stack in settings sidebar (#32201) 2024-10-04 17:48:03 +02:00
Matt Jankowski
09cf617d7f Adjust spacing on setting sub-nav items when below mobile size (#32137) 2024-10-04 17:48:03 +02:00
Matt Jankowski
784d1bfb29 Fix broken border on applications list (#32147) 2024-10-04 17:48:03 +02:00
Claire
754b03d8cb Fix unneeded requests to blocked domains when receiving relayed signed activities from them (#31161) 2024-10-04 17:48:03 +02:00
Emelia Smith
f397550311 Add detection and download of material_symbol icons in config/navigation.rb (#31366) 2024-10-04 17:48:03 +02:00
Matt Jankowski
97db4bd4dd Wrap datetime in time element with attrs (#32177) 2024-10-04 17:48:03 +02:00
Matt Jankowski
1e19242134 Extract constants for header and avatar geometry (#32151) 2024-10-04 17:48:03 +02:00
Matt Jankowski
4e6f13a0fb Only show email domain blocks MX table when some found (#32155) 2024-10-04 17:48:03 +02:00
Matt Jankowski
f517f0dbef Fix nav item active highlight for some paths (#32159) 2024-10-04 17:48:03 +02:00
Matt Jankowski
53624b1b54 Remove explicit put action in settings forms (#32176) 2024-10-04 17:48:03 +02:00
renovate[bot]
a473988969 Update dependency postcss-preset-env to v10.0.5 (#32019)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 17:48:03 +02:00
Matt Jankowski
4ad1e955eb Use module: :users in routes/admin section (#30767) 2024-10-04 17:48:03 +02:00
Matt Jankowski
66ef4b9984 Remove WebfingerHelper module & move usage inline (#31203) 2024-10-04 17:48:03 +02:00
David Roetzel
ce2481a81b Move OTP secret length to configuration (#32125) 2024-10-04 17:48:03 +02:00
renovate[bot]
efa74a6c44 Update RuboCop (non-major) to v1.22.1 (#31573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 17:48:03 +02:00
Matt Jankowski
bdceb1dacf Add date_range view helper (#32187) 2024-10-04 17:48:03 +02:00
renovate[bot]
e13453aec4 Update dependency webmock to v3.24.0 (#32190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 17:48:03 +02:00
renovate[bot]
25e8a6eaeb Update dependency propshaft to v1.1.0 (#32192)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 17:48:03 +02:00
Matt Jankowski
c828e7731c Improve alignment of icons on admin roles list (#32153) 2024-10-04 17:48:03 +02:00
Matt Jankowski
6734b6550f Extract dashboard partial for admin instance page (#32189) 2024-10-04 17:48:03 +02:00
renovate[bot]
6398d7b784 Update peter-evans/create-pull-request action to v7.0.5 (#32164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 17:48:03 +02:00
Matt Jankowski
1283c3544c Avoid id duplication conflict with main navigation from settings profile link (#32181) 2024-10-04 17:48:03 +02:00
Renaud Chaput
8ac00533ff Fix follow notifications from streaming being grouped (#32179) 2024-10-04 17:48:03 +02:00
Matt Jankowski
1b3472bec8 Use account display name for pretend blog example in attribution area (#32188) 2024-10-04 17:48:03 +02:00
Claire
c8df7f4995 Change github action repo to glitch-soc 2024-09-30 20:50:32 +02:00
Claire
94743fea2c Merge remote-tracking branch 'upstream/stable-4.3' into glitch-soc/stable-4.3 2024-09-30 20:49:42 +02:00
Claire
deee164acf Support translation branches in Crowdin (#32174) 2024-09-30 19:45:40 +02:00
Claire
88756ab75f Merge pull request #2861 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 03210085b7
2024-09-30 13:30:14 +02:00
Claire
9af9ef6fb3 Merge commit '03210085b7481568cc507f088144aaf1dae73c88' into glitch-soc/merge-upstream 2024-09-30 13:04:19 +02:00
Claire
03210085b7 Bump version to 4.3.0-rc.1 (#32124) 2024-09-30 10:42:59 +00:00
Claire
0c872beed4 Merge commit from fork
This should not change the set of words matched by `USERNAME_RE` but does
change the one matched by `MENTION_RE`. Indeed, the previous regexp allowed
a domain part to start with `.` or `-`, which the new regexp does not allow.
2024-09-30 12:25:54 +02:00
Claire
e22eff8900 Remove regexp timeout feature (#32169) 2024-09-30 09:41:06 +00:00
renovate[bot]
431b382563 Update dependency sass to v1.79.4 (#32139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 08:55:18 +00:00
renovate[bot]
bf7cfba48e Update DefinitelyTyped types (non-major) (#32163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 08:53:52 +00:00
github-actions[bot]
f477dc399e New Crowdin Translations (automated) (#32140)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-30 08:53:29 +00:00
renovate[bot]
6037714f76 Update dependency propshaft to v1.0.1 (#32158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 08:47:57 +00:00
Eugen Rochko
c352ce6f45 Fix missing permission on new embeds making them unclickable (#32135) 2024-09-30 08:20:20 +00:00
Claire
9bf624b44d Merge pull request #2860 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 9d664f87a0
2024-09-29 20:36:32 +02:00
Eugen Rochko
e80971e660 [Glitch] Change media reordering design in the compose form in web UI
Port 11a12e56b3 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 14:03:19 +02:00
Eugen Rochko
9e10fd59b7 [Glitch] Add ability to view alt text by clicking the ALT badge in web UI
Port a04433f995 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 13:35:35 +02:00
Eugen Rochko
9b5f073cb3 [Glitch] Change design of media tab on profiles in web UI
Port 89df27a06c to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 12:57:58 +02:00
Eugen Rochko
157ecf255b [Glitch] Change responsive break points on navigation panel in web UI
Port 28c4eca0af to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 11:53:49 +02:00
Matt Jankowski
b8c23f94b0 [Glitch] Add no-toolbar state for "nothing here" batch table views
Port 24d3ce7bab to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 11:29:18 +02:00
Matt Jankowski
3fa34bd73a [Glitch] Use 1 column layout for form ul on narrow widths
Port 106b22bd2d to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 11:25:24 +02:00
Claire
77d2f7eef6 [Glitch] Fix scrollbar width
Port 89c39e7826 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 11:24:54 +02:00
Claire
8439084587 [Glitch] Add fallback to domain block confirmation modal
Port 7a62d57427 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 11:21:56 +02:00
Eugen Rochko
7b290cee47 [Glitch] Add preview of followers removed in domain block modal in web UI
Port 3426ea2912 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-29 11:21:05 +02:00
Claire
7ef25ae53b Merge commit '9d664f87a04b6a5157ddbe60ee33b5b7a960198e' into glitch-soc/merge-upstream 2024-09-29 11:06:09 +02:00
Christian Schmidt
9d664f87a0 Mailer layout fixes (#32132) 2024-09-27 19:41:41 +00:00
Matt Jankowski
24d3ce7bab Add no-toolbar state for "nothing here" batch table views (#32128) 2024-09-27 19:38:44 +00:00
Eugen Rochko
11a12e56b3 Change media reordering design in the compose form in web UI (#32093) 2024-09-27 15:09:39 +00:00
Matt Jankowski
cdd7526531 Remove completed TODO note in tags request spec (#32108) 2024-09-27 08:22:40 +00:00
Matt Jankowski
e02e88bff4 Use previously extracted model constants in form maxlength attributes (#32113) 2024-09-27 08:21:27 +00:00
Matt Jankowski
04dd3a9eb6 Wrap webhook event label with samp tag (#32115) 2024-09-27 08:20:21 +00:00
Matt Jankowski
675ec1a0ad Only show recently used tags hint when they are present (#32120) 2024-09-27 08:18:42 +00:00
github-actions[bot]
c9b0699964 New Crowdin Translations (automated) (#32121)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-27 07:34:46 +00:00
Claire
513f187daf Add “A Mastodon update is available.” message on admin dashboard for non-bugfix updates (#32106) 2024-09-26 19:27:57 +00:00
renovate[bot]
ee2d966080 Update dependency blurhash to v0.1.8 (#32114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-26 19:27:13 +00:00
Matt Jankowski
106b22bd2d Use 1 column layout for form ul on narrow widths (#32112) 2024-09-26 19:26:40 +00:00
Claire
89c39e7826 Fix scrollbar width (#32091) 2024-09-26 14:26:04 +00:00
Eugen Rochko
a04433f995 Add ability to view alt text by clicking the ALT badge in web UI (#32058) 2024-09-26 13:26:49 +00:00
Claire
7a62d57427 Add fallback to domain block confirmation modal (#32105) 2024-09-26 12:47:56 +00:00
Eugen Rochko
89df27a06c Change design of media tab on profiles in web UI (#31967) 2024-09-26 12:31:32 +00:00
Christian Schmidt
00aaf77e04 Use same styling for statuses in email as on web (#32073) 2024-09-26 11:48:01 +00:00
Claire
437cecc965 Fix awkward status action bar layout changes (#2859) 2024-09-26 12:02:40 +02:00
Matt Jankowski
db57fe80c8 Remove page_json var from ap/replies spec (#32000) 2024-09-26 08:54:01 +00:00
github-actions[bot]
278a075b22 New Crowdin Translations (automated) (#32103)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-26 08:47:38 +00:00
Claire
886baa5e35 Fix typo causing incorrect error being raised in blurhash processing failure (#32104) 2024-09-26 07:40:59 +00:00
Christian Schmidt
db332553c9 Rename "Data export" menu item (#32099) 2024-09-25 19:54:28 +00:00
Claire
f610fdd6e7 Merge pull request #2858 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 28966fa0a6
2024-09-25 21:15:51 +02:00
Eugen Rochko
3426ea2912 Add preview of followers removed in domain block modal in web UI (#32032) 2024-09-25 18:13:36 +00:00
Eugen Rochko
28c4eca0af Change responsive break points on navigation panel in web UI (#32034) 2024-09-25 16:36:19 +00:00
Renaud Chaput
0b1310feb3 [Glitch] Keep the status action buttons at their position regardless of the counter size
Port 739ad0eed2 to glitch-soc

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-25 18:12:24 +02:00
Renaud Chaput
5716ebf390 [Glitch] Add notification grouping for follow notifications
Port d6f5ee75ab to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-25 18:09:19 +02:00
Renaud Chaput
36ce5813cb [Glitch] Fix search params being dropped when redirected to non-deck path
Port 3dc4ddc663 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-25 18:08:55 +02:00
Matt Jankowski
d9d84822bb [Glitch] Use not-allowed for cursor on disabled buttons
Port 69aa5699ce to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-25 18:08:12 +02:00
Claire
633165ba9c Merge commit '28966fa0a6d7b98ee94696acdc79e45449ce8349' into glitch-soc/merge-upstream 2024-09-25 17:41:37 +02:00
Renaud Chaput
28966fa0a6 Remove deprecated v2_alpha endpoint for grouped notifications (#32089) 2024-09-25 15:21:11 +00:00
Renaud Chaput
739ad0eed2 Keep the status action buttons at their position regardless of the counter size (#32084)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-09-25 14:33:58 +00:00
Matt Jankowski
51777fe3e2 Prefer structure checks over multi-line size/parts checks in parsed_body (#32063) 2024-09-25 13:54:22 +00:00
Renaud Chaput
d6f5ee75ab Add notification grouping for follow notifications (#32085) 2024-09-25 13:36:19 +00:00
Renaud Chaput
3dc4ddc663 Fix search params being dropped when redirected to non-deck path (#31984) 2024-09-25 13:35:37 +00:00
Matt Jankowski
83574f641a Add coverage and use mailer callback to check functional user in notification mailer (#32055) 2024-09-25 08:07:48 +00:00
Matt Jankowski
c2ef83ea4c Consolidate shared a scope example parts into one attributes check (#32046) 2024-09-25 07:56:42 +00:00
Matt Jankowski
c3b6a7a297 Reduce factory creation (36 -> 12) in spec/controllers/oauth/* area (#32045) 2024-09-25 07:56:08 +00:00
Matt Jankowski
06ecf9008b Remove single-use shared examples in controller specs (#32044) 2024-09-25 07:50:15 +00:00
Matt Jankowski
69aa5699ce Use not-allowed for cursor on disabled buttons (#32076) 2024-09-25 07:43:12 +00:00
github-actions[bot]
4e6fc3a62f New Crowdin Translations (automated) (#32083)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-25 07:40:14 +00:00
renovate[bot]
a773c239c3 Update dependency aws-sdk-s3 to v1.166.0 (#32079)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-25 07:33:37 +00:00
Claire
440b695b79 Fix polls not being displayed in detailed status (#2857) 2024-09-24 20:54:24 +02:00
Claire
5df7e36244 Merge pull request #2856 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 70988519df
2024-09-24 20:51:46 +02:00
Eugen Rochko
ba7b1f06c1 [Glitch] Fix too many requests caused by relationship look-ups in web UI
Port 70988519df to glitch-soc

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-24 19:42:30 +02:00
Renaud Chaput
6142adc7d6 [Glitch] Fix wrapping in dashboard quick access buttons
Port f1b6a611aa to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-24 19:41:37 +02:00
Claire
131696277c [Glitch] Fix multiple bugs in notification requests and notification policies
Port 0a6b75b71e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-24 19:41:04 +02:00
Eugen Rochko
aac6296183 [Glitch] Change hide media button to be in top right corner in web UI
Port d54ce67dc9 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-24 19:40:34 +02:00
Claire
c6039f99ce Merge commit '70988519df66f0b8edeb6ca95140f1d3e436fea8' into glitch-soc/merge-upstream 2024-09-24 19:34:30 +02:00
Eugen Rochko
70988519df Fix too many requests caused by relationship look-ups in web UI (#32042)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-09-24 17:02:36 +00:00
Renaud Chaput
f1b6a611aa Fix wrapping in dashboard quick access buttons (#32043) 2024-09-24 16:47:45 +00:00
André Menrath
556837f156 Fix the summary of converted object types to be treated as HTML (#28629) 2024-09-24 15:57:53 +00:00
Claire
c36a76b9eb Fix error when accepting appeal for sensitive posts deleted in the meantime (#32037)
Co-authored-by: David Roetzel <david@roetzel.de>
2024-09-24 15:19:55 +00:00
Claire
0a6b75b71e Fix multiple bugs in notification requests and notification policies (#32062) 2024-09-24 15:03:38 +00:00
David Roetzel
cfb8fc6222 Increase regexp timeout and allow override (#32056) 2024-09-24 13:16:58 +00:00
Matt Jankowski
19dedd7cfd Set important mailer headers with after_action callback (#32057) 2024-09-24 13:16:31 +00:00
Matt Jankowski
780e2e9d66 Convert notification mailer spec shared examples to matchers (#32047) 2024-09-24 12:07:16 +00:00
renovate[bot]
7c61533111 Update dependency aws-sdk-s3 to v1.165.0 (#32050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-24 09:54:25 +00:00
github-actions[bot]
11ac5c8929 New Crowdin Translations (automated) (#32052)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-24 09:42:14 +00:00
Claire
c808055fc3 Update dependency webrick (#32054) 2024-09-24 08:16:22 +00:00
Eugen Rochko
d54ce67dc9 Change hide media button to be in top right corner in web UI (#32048) 2024-09-24 08:00:20 +00:00
Claire
6551129aff Merge pull request #2853 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 5dfdec6453
2024-09-24 09:44:10 +02:00
Claire
38744a4e51 [Glitch] Change mobile breakpoint back to old version and allow main column to shrink
Port b5bdc69f7b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-23 20:26:05 +02:00
Claire
c2c3a66478 Merge commit '5dfdec645313e556413147597138a8008bc35996' into glitch-soc/merge-upstream 2024-09-23 20:24:18 +02:00
Matt Jankowski
5dfdec6453 Convert settings/applications controller spec to system/request specs (#32006) 2024-09-23 13:37:32 +00:00
Eugen Rochko
aaab6b7adc Add reblogs and favourites counts to statuses in ActivityPub (#32007) 2024-09-23 13:14:15 +00:00
Claire
b5bdc69f7b Change mobile breakpoint back to old version and allow main column to shrink (#32033) 2024-09-23 12:53:35 +00:00
Matt Jankowski
bbf7752256 Combine assertions in Notification model spec (#32015) 2024-09-23 10:45:34 +00:00
Matt Jankowski
2b4bda8004 Add response_avatar_link helper to webfinger request spec (#31999) 2024-09-23 10:44:52 +00:00
Matt Jankowski
447d0a3e88 Remove double no-records cases in api/v1/admin req specs (#32014) 2024-09-23 09:27:53 +00:00
Matt Jankowski
66ed7ea4b5 Move status creation to "with rss" context in accounts request spec (#32020) 2024-09-23 09:20:43 +00:00
Matt Jankowski
cd7b670cd8 Reduce factory creation in User#reset_password! spec (#32021) 2024-09-23 09:18:04 +00:00
Claire
5d6a3f2cb0 Update dependency google-protobuf (#32029) 2024-09-23 09:13:51 +00:00
renovate[bot]
770ec9240a Update Yarn to v4.5.0 (#31914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 09:02:16 +00:00
Tim Campbell
11eae691ba Feature more otel customization (#31998) 2024-09-23 08:55:35 +00:00
github-actions[bot]
ed90d9342e New Crowdin Translations (automated) (#32011)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-23 08:50:19 +00:00
Matt Jankowski
0ba3ad4a35 Remove body_json_ids from api/v2/admin/accounts spec (#32003) 2024-09-23 08:45:05 +00:00
Matt Jankowski
e0b45b35c9 Combine repeated parsed_body assertions into single (#32002) 2024-09-23 08:42:52 +00:00
Eugen Rochko
5fae1d55e5 Fix OAuth authorization prompt referring to third-party apps (#32005) 2024-09-23 08:42:03 +00:00
renovate[bot]
10d2f83025 Update dependency selenium-webdriver to v4.25.0 (#32008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 08:41:26 +00:00
renovate[bot]
958f01e722 Update dependency sass to v1.79.3 (#32009)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 08:41:05 +00:00
renovate[bot]
f4632d941a Update dependency aws-sdk-s3 to v1.164.0 (#32010)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 08:40:46 +00:00
renovate[bot]
c37f9c0d44 Update dependency jsdom to v25.0.1 (#32017)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 08:36:57 +00:00
renovate[bot]
84d04386dd Update DefinitelyTyped types (non-major) (#32026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 08:35:37 +00:00
renovate[bot]
f294c4a594 Update libretranslate/libretranslate Docker tag to v1.6.1 (#32027)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 08:35:23 +00:00
renovate[bot]
efc0d4d526 Update dependency react-intl to v6.7.0 (#32028)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 08:35:11 +00:00
Claire
6ac6d86525 Merge pull request #2852 from ClearlyClaire/glitch-soc/features/grouped-notifications-cw
Add content warning support to grouped notifications
2024-09-22 21:57:55 +02:00
Claire
7c148ed1cb Use new CW class in more places 2024-09-22 21:17:15 +02:00
Claire
4d754935a9 Replace new-style upstream CWs with old-style CWs for now 2024-09-22 20:55:06 +02:00
Eugen Rochko
0d26c9fb0b [Glitch] Fix wrong width on content warnings and filters in web UI
Port b265a654d7 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-22 19:31:22 +02:00
Eugen Rochko
7d97e3d82f [Glitch] Change how content warnings and filters are displayed in web UI
Partially apply 500f4925a5 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-22 19:31:22 +02:00
Claire
5aebdc9bcb Merge pull request #2850 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 7ed9c590b9
2024-09-21 20:27:48 +02:00
Eugen Rochko
a969c6a6a6 [Glitch] Change zoom icon in web UI
Port e7fd0985c9 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 15:36:17 +02:00
Renaud Chaput
03829d8e1d [Glitch] Update directory page options to use URL params
Port ae03e4ffc6 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 15:17:56 +02:00
Claire
86b9d3b4e5 [Glitch] Fix custom history.push and history.replace building bogus location if path is omitted
Port 57a38f071b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 15:16:54 +02:00
Eugen Rochko
9bd5838646 [Glitch] Fix browser glitch caused by two overlapping scroll animations in web UI
Port ef4d6ab988 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 15:16:28 +02:00
Eugen Rochko
80cb285819 [Glitch] Fix sass deprecation warning
Port 29656cb9e0 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 15:14:54 +02:00
Renaud Chaput
d77348f830 [Glitch] Fix the appearance of avatars when they do not load
Port 8b70834035 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 15:13:57 +02:00
Christian Schmidt
0820cbcb35 [Glitch] Mute XHR abort errors
Port 7740f1a6bb to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 15:13:23 +02:00
Claire
221bba1897 Merge commit '7ed9c590b98610f8d68deab9ef8df260eec6d8f0' into glitch-soc/merge-upstream 2024-09-21 15:06:06 +02:00
github-actions[bot]
b0f6d3e112 New Crowdin Translations (automated) (#2773)
* New Crowdin translations

* Fix bogus `no.yml`

* Fix bogus `simple_form.no.yml`

---------

Co-authored-by: GitHub Actions <noreply@github.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-09-21 14:57:30 +02:00
Claire
7ed9c590b9 Fix issue when encountering reblog of deleted post in feed rebuild (#32001) 2024-09-20 14:58:06 +00:00
Claire
ed8b0e4b1e Fix links for reblogs in moderation interface (#31979) 2024-09-20 13:33:26 +00:00
Matt Jankowski
d55f4fbda1 Add content type checks to api/v2 request specs (#31983) 2024-09-20 13:19:53 +00:00
Matt Jankowski
171394e914 Add coverage for CSV responses for severed relationships (#31962) 2024-09-20 13:13:47 +00:00
Matt Jankowski
66326065b0 Add response.content_type checks for JSON to api/v1 request specs (#31981) 2024-09-20 13:13:04 +00:00
Matt Jankowski
a7dbf6f5a5 Use heredoc/squish for inline css styles in oembed serializer (#31991) 2024-09-20 12:50:51 +00:00
Matt Jankowski
bdf83c353f Move default embed size knowledge into OEmbedSerializer (#31990)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-09-20 12:39:48 +00:00
Claire
8afa3bb2fa Change Mastodon to issue correctly-signed queries by default (#31994) 2024-09-20 10:10:09 +00:00
Eugen Rochko
e7fd0985c9 Change zoom icon in web UI (#29683) 2024-09-20 09:42:02 +00:00
Matt Jankowski
04a939d640 Add reviewed and unreviewed scopes to Reviewable model concern (#31988) 2024-09-20 08:51:37 +00:00
Matt Jankowski
c922af2737 Add LIMIT constant for api/v1/peers/search endpoint (#31989) 2024-09-20 08:31:58 +00:00
github-actions[bot]
162f9a3c90 New Crowdin Translations (automated) (#31993)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-20 08:31:28 +00:00
renovate[bot]
840fd69730 Update dependency sass to v1.79.2 (#31992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 08:20:27 +00:00
Matt Jankowski
9a03902ab6 Capture actual behavior in v2/notifications "someone else" dismiss scenario (#31985) 2024-09-20 08:16:19 +00:00
renovate[bot]
09459ed000 Update dependency react-select to v5.8.1 (#31982)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 08:15:14 +00:00
Renaud Chaput
ae03e4ffc6 Update directory page options to use URL params (#31977) 2024-09-19 15:34:08 +00:00
Claire
57a38f071b Fix custom history.push and history.replace building bogus location if path is omitted (#31980) 2024-09-19 14:58:33 +00:00
Matt Jankowski
5a8f2fe31d Convert settings/exports controller spec to system/request specs (#31965) 2024-09-19 13:43:40 +00:00
Matt Jankowski
2946a9286b Use headers shorthand in mailers (#31956) 2024-09-19 13:38:32 +00:00
renovate[bot]
6801afa12f Update dependency devise-two-factor to v6 [SECURITY] (#31957)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Roetzel <david@roetzel.de>
2024-09-19 10:56:09 +00:00
Eugen Rochko
ef4d6ab988 Fix browser glitch caused by two overlapping scroll animations in web UI (#31960) 2024-09-19 10:52:46 +00:00
github-actions[bot]
efdc17513d New Crowdin Translations (automated) (#31974)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-19 10:34:19 +00:00
Matt Jankowski
5d573c976e Remove unused E2EE-related methods (#31964) 2024-09-19 10:23:58 +00:00
Matt Jankowski
b071e618e7 Combine API request spec assertions (#31970) 2024-09-19 10:15:21 +00:00
renovate[bot]
1fce55cf5d Update dependency aws-sdk-s3 to v1.163.0 (#31972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 09:51:14 +00:00
renovate[bot]
90db524a90 Update dependency puma to v6.4.3 (#31975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 09:50:58 +00:00
Claire
62a39d60ce Fix rolling updates by moving DropEndToEndMessageTables to post-deployment migrations (#31963) 2024-09-19 09:50:06 +00:00
Eugen Rochko
29656cb9e0 Fix sass deprecation warning (#31961) 2024-09-18 17:39:32 +00:00
Renaud Chaput
8b70834035 Fix the appearance of avatars when they do not load (#31966) 2024-09-18 17:39:15 +00:00
Matt Jankowski
e3baa1cdda Add coverage for AccountDeletionRequest class (#31937) 2024-09-18 13:29:57 +00:00
renovate[bot]
42f9f507b6 Update dependency pg to v8.13.0 (#31949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 13:29:21 +00:00
Matt Jankowski
bf8eaaa9a5 Convert controller spec for security_key_options endpoint to request spec (#31938) 2024-09-18 09:42:36 +00:00
Matt Jankowski
6f836c45aa Remove crypto values from doorkeeper application/token scopes (#31945) 2024-09-18 09:27:50 +00:00
Matt Jankowski
5405bdd344 Remove unused E2EE messaging code (#31193) 2024-09-18 09:27:43 +00:00
renovate[bot]
2d399f5d4a Update dependency pg-connection-string to v2.7.0 (#31950)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 09:17:57 +00:00
Christian Schmidt
7740f1a6bb Mute XHR abort errors (#31952) 2024-09-18 08:43:24 +00:00
renovate[bot]
a791274824 Update dependency sass to v1.79.1 (#31958)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 08:28:42 +00:00
Matt Jankowski
eb16763bff Use have_http_link_header matcher in api/v1/trends/* specs (#31940) 2024-09-18 08:22:07 +00:00
Matt Jankowski
943738671c Remove unneeded to_s on Link header comparison in statuses controller spec (#31941) 2024-09-18 08:21:31 +00:00
renovate[bot]
6f3d7516dc Update dependency dotenv to v3.1.4 (#31953)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 08:10:22 +00:00
github-actions[bot]
bd86c692cf New Crowdin Translations (automated) (#31959)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-18 08:06:44 +00:00
renovate[bot]
b7548dbf29 Update dependency memory_profiler to v1.1.0 (#31947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 08:05:59 +00:00
Matt Jankowski
a397141d78 Move non-action public method controller callback to private methods (#31933) 2024-09-18 08:05:25 +00:00
renovate[bot]
f3f06dafe3 Update dependency babel-loader to v8.4.1 (#31931)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 08:05:06 +00:00
Claire
486e61677c Merge pull request #2848 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 3e91c101b3
2024-09-17 18:34:28 +02:00
Claire
6bd86fede0 [Glitch] Increase no-gap-breakpoint by 32px to fix overflow
Port d2f9075078 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-17 18:13:36 +02:00
Michael Stanclift
a85b2476c2 [Glitch] Fix background of text detection progress
Port 5a33a5658b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-17 18:13:36 +02:00
Claire
93b2c8164e [Glitch] Fix selectSettingsNotificationsExcludedTypes not being memoized properly
Port ca8e892c1a to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-17 18:13:36 +02:00
Claire
11de3dbef6 [Glitch] Enable grouped notifications unconditionally
Port c620452fd7 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-17 18:13:36 +02:00
Claire
6de18bb475 Merge commit '3e91c101b3c4b5166dab778837e38bed424b4333' into glitch-soc/merge-upstream 2024-09-17 17:54:00 +02:00
Claire
3e91c101b3 Bump version to 4.3.0-beta.2 (#31948) 2024-09-17 15:42:45 +00:00
David Roetzel
d8f9db547a Merge commit from fork
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2024-09-17 16:59:29 +02:00
github-actions[bot]
6a233cbfcf New Crowdin Translations (automated) (#31946)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-17 13:02:53 +00:00
Claire
d2f9075078 Increase no-gap-breakpoint by 32px to fix overflow (#31889) 2024-09-17 03:19:42 +00:00
Michael Stanclift
5a33a5658b Fix background of text detection progress (#31943) 2024-09-17 03:19:04 +00:00
Claire
18209d2011 Merge pull request #2847 from ClearlyClaire/glitch-soc/fixes/click-detailed-status
Fix detailed statuses being clickable and linking to broken pages
2024-09-16 23:51:37 +02:00
Claire
c8ef702ba9 Merge pull request #2846 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to e0648a916a
2024-09-16 23:31:03 +02:00
Claire
43f6792e1b Fix detailed statuses being clickable and linking to broken pages 2024-09-16 22:51:19 +02:00
Claire
0740352ce6 [Glitch] Rename /api/v2_alpha/notifications* to /api/v2/notifications*
Port e0648a916a to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-16 21:28:05 +02:00
Eugen Rochko
b6398cf2d3 [Glitch] Fix horizontal scrollbar on who to follow carousel in web UI
Port efb0e2c34b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-16 21:28:05 +02:00
Claire
e25634ccef [Glitch] Convert notification requests actions and reducers to Typescript
Port c0eda832f3 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-16 21:28:05 +02:00
Claire
665e9129fe Merge commit 'e0648a916ab81925545504173bf4f43ec64d4f3c' into glitch-soc/merge-upstream
Conflicts:
- `app/models/custom_emoji.rb`:
  An upstream refactor touched lines adjacent to ones modified in glitch-soc.
  Ported upstream's changes.
2024-09-16 21:08:58 +02:00
Claire
ca8e892c1a Fix selectSettingsNotificationsExcludedTypes not being memoized properly (#31881) 2024-09-16 14:51:56 +00:00
Claire
6c76a7a907 Fix cancel follow request button sometimes saying “Follow back” (#31934) 2024-09-16 13:20:44 +00:00
Claire
c620452fd7 Enable grouped notifications unconditionally (#31929) 2024-09-16 13:12:10 +00:00
Claire
e0648a916a Rename /api/v2_alpha/notifications* to /api/v2/notifications* (#31840) 2024-09-16 12:10:02 +00:00
Eugen Rochko
efb0e2c34b Fix horizontal scrollbar on who to follow carousel in web UI (#31912) 2024-09-16 12:08:37 +00:00
Claire
c0eda832f3 Convert notification requests actions and reducers to Typescript (#31866) 2024-09-16 09:54:03 +00:00
Claire
d5cf27e667 Add global Regexp timeout (#31928) 2024-09-16 09:40:18 +00:00
Matt Jankowski
c54cbf7943 Remove follow creation from ListAccount fabricator (#31902) 2024-09-16 08:56:40 +00:00
github-actions[bot]
474abf3c7f New Crowdin Translations (automated) (#31911)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-16 08:48:20 +00:00
Claire
1d58f93670 Update dependencies omniauth-saml, ruby-xml and ruby-saml (#31926) 2024-09-16 08:48:13 +00:00
Matt Jankowski
bf8b55ce91 Enable Rails/Output in spec/ dir (#31905) 2024-09-16 08:29:06 +00:00
Matt Jankowski
abd2f5654a Add validation coverage for CustomEmoji shortcode value (#31906) 2024-09-16 07:53:03 +00:00
Matt Jankowski
822e918a56 Add coverage for Bookmark validation and reblog/status check callback (#31907) 2024-09-16 07:52:22 +00:00
renovate[bot]
c24de04f9c Update dependency postcss to v8.4.47 (#31913)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 07:51:36 +00:00
renovate[bot]
9ea270526c Update DefinitelyTyped types (non-major) (#31922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 07:51:13 +00:00
renovate[bot]
2afaa3b3d4 Update dependency husky to v9.1.6 (#31923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 07:50:51 +00:00
renovate[bot]
0cc05fbb7c Update dependency i18n to v1.14.6 (#31925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 07:50:43 +00:00
Claire
4b40d13cb3 Increase preview card image size limit from 2MB to 8MB when using libvips (#31904) 2024-09-14 00:16:02 +00:00
Claire
346919178d Merge pull request #2845 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 5ba3405be4
2024-09-13 23:40:06 +02:00
Claire
117ac13d12 Merge commit '5ba3405be4c1f708f198580b481f822698dab392' into glitch-soc/merge-upstream 2024-09-13 21:37:34 +02:00
Claire
065abf2918 Merge pull request #2843 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 0226bbe516
2024-09-13 21:35:17 +02:00
renovate[bot]
5ba3405be4 Update dependency opentelemetry-instrumentation-pg to '~> 0.29.0' (#31897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-13 12:07:33 +00:00
David Roetzel
c1b2c4fd9a Strip protocol from attribution domains (#31900) 2024-09-13 11:37:15 +00:00
Claire
ba81e4e019 Fix inability to locally suspend remotely-suspended accounts in moderation interface (#31899) 2024-09-13 09:11:10 +00:00
Matt Jankowski
a2c4f5f5c0 Add coverage for ListAccount follow/follow_request set up (#31896) 2024-09-13 08:49:03 +00:00
Matt Jankowski
49cbee3836 Remove unused argument from AccountMigration.within_cooldown (#31892) 2024-09-13 08:43:21 +00:00
github-actions[bot]
353ade767b New Crowdin Translations (automated) (#31898)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-13 08:41:46 +00:00
Claire
427ed60274 Fix link handling within detailed status contents 2024-09-12 22:42:07 +02:00
Claire
4050beb6e2 Fix detailed status timestamp link target not being the original URL 2024-09-12 22:30:40 +02:00
Matt Jankowski
202077517c Add "search" group for chewy classes in simplecov config (#31890) 2024-09-12 20:09:55 +00:00
Michael Stanclift
9b1ecf7aee [Glitch] Fix review history and action modal styling
Port a269ff9253 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 21:38:15 +02:00
Claire
afd3953cdd [Glitch] Autofocus primary button in modals
Port 5f782f9629 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 21:35:03 +02:00
Claire
83b553c7d1 Merge commit '0226bbe5165a53658b29e46ddbef6a10507fdc8c' into glitch-soc/merge-upstream 2024-09-12 21:32:39 +02:00
Eugen Rochko
bd68d2ab21 [Glitch] Change design of embed modal in web UI
Port 24ef8255b3 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 20:58:23 +02:00
Eugen Rochko
e705ec13db [Glitch] Change embedded posts to use web UI
Port 3d46f47817 to glitch-soc

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 20:58:02 +02:00
Claire
3465d39494 Merge commit '24ef8255b3f9b44cb54f49bc78fe3382a7070b1a' into glitch-soc/merge-upstream
Conflicts:
- `app/helpers/accounts_helper.rb`:
  Upstream removed a helper, textually adjacent to a glitch-soc-only one.
  Not really a conflict.
  Removed the helper as upstream did.
- `app/views/layouts/embedded.html.haml`:
  Conflicts due to theming system.
  Adapted upstream's change to our theming system.
- `app/views/statuses/_simple_status.html.haml`:
  Removed upstream, but we had local changes.
  Removed as upstream did.
2024-09-12 20:05:08 +02:00
Eugen Rochko
2d31cdbc28 [Glitch] Fix notifications re-rendering spuriously in web UI
Port f2a92c2d22 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 17:35:05 +02:00
Claire
caaa412e6e Merge commit 'f2a92c2d22345568ca7f47ee1d1d70de53eb547d' into glitch-soc/merge-upstream 2024-09-12 17:34:16 +02:00
renovate[bot]
17e3a12d3d [Glitch] Update typescript-eslint monorepo to v8 (major)
Port a27f7f4e56 to glitch-soc

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renaud Chaput <renchap@gmail.com>
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 17:32:41 +02:00
Eugen Rochko
196b141af5 [Glitch] Change inner borders in media galleries in web UI
Port a3215c0f88 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 17:28:44 +02:00
Michael Stanclift
eb28472ded [Glitch] Fix alt text modal styling
Port e09f9f885e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 17:23:59 +02:00
Claire
90d7a4bac4 Merge commit 'a27f7f4e561c9d2fe21d984059603d2f500c005b' into glitch-soc/merge-upstream 2024-09-12 17:22:06 +02:00
renovate[bot]
0226bbe516 Update dependency express to v4.21.0 (#31877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-12 14:21:06 +00:00
renovate[bot]
cc3cf9c465 Update dependency aws-sdk-s3 to v1.162.0 (#31875)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-12 14:20:44 +00:00
Michael Stanclift
a269ff9253 Fix review history and action modal styling (#31864) 2024-09-12 14:18:43 +00:00
Matt Jankowski
207c073bf8 Remove debug output in migration controller spec (#31886) 2024-09-12 14:04:46 +00:00
Taylor Chaparro
1b6a82b799 Fix invalid date searches returning 503 (#31526) 2024-09-12 13:40:20 +00:00
Matt Jankowski
f3c4874522 Remove unused statuses#embed body class assignment (#31787) 2024-09-12 13:38:15 +00:00
Matt Jankowski
4aa600387e Move redirect/base body class to view (#31796) 2024-09-12 13:31:50 +00:00
Christian Schmidt
8cdc148167 Handle invalid visibility (#31571) 2024-09-12 13:29:55 +00:00
Matt Jankowski
17c57c46e7 Add coverage for title/limit validations in List model (#31869) 2024-09-12 13:25:23 +00:00
Claire
a496aeabcb Change form-action Content-Security-Policy directive to be more restrictive (#26897) 2024-09-12 13:24:19 +00:00
Claire
5f782f9629 Autofocus primary button in modals (#31883) 2024-09-12 13:15:05 +00:00
Claire
c35ea59ee6 Fix security context sometimes not being added in LD-Signed activities (#31871) 2024-09-12 12:58:12 +00:00
Eugen Rochko
24ef8255b3 Change design of embed modal in web UI (#31801) 2024-09-12 12:54:16 +00:00
Claire
cb91629353 Merge pull request #2842 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 0c3c06f7cc
2024-09-12 13:55:14 +02:00
David Roetzel
ab763c493f Ignore undefined as canonical url (#31882) 2024-09-12 11:14:42 +00:00
Eugen Rochko
77cbe2332a [Glitch] Add ability to manage which websites can credit you in link previews
Port CSS changes from e0c27a5047 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 12:30:31 +02:00
Eugen Rochko
abe1717215 [Glitch] Change design of hide media button in web UI
Port 3929e3c6d2 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 12:30:31 +02:00
Claire
10e2b87774 Merge commit '0c3c06f7cc50c9207a44f56e184ce6a41f953171' into glitch-soc/merge-upstream 2024-09-12 12:09:21 +02:00
Eugen Rochko
3d46f47817 Change embedded posts to use web UI (#31766)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-09-12 09:41:19 +00:00
Eugen Rochko
f2a92c2d22 Fix notifications re-rendering spuriously in web UI (#31879) 2024-09-12 08:16:07 +00:00
github-actions[bot]
7d53ca56d2 New Crowdin Translations (automated) (#31878)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-12 07:54:53 +00:00
Claire
7cfa8bb782 Merge pull request #2841 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to a021dee642
2024-09-12 08:51:21 +02:00
Eugen Rochko
e2c101ec35 [Glitch] Change labels on thread indicators in web UI
Partial port of a021dee642 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-11 21:27:46 +02:00
Claire
b240bad61a Merge commit '5260233b81c301cf7b0c79b179858748b693460b' into glitch-soc/merge-upstream 2024-09-11 20:58:35 +02:00
renovate[bot]
a27f7f4e56 Update typescript-eslint monorepo to v8 (major) (#31231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2024-09-11 13:59:46 +00:00
github-actions[bot]
2babfafaff New Crowdin Translations (automated) (#31855)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-11 08:18:10 +00:00
Matt Jankowski
cdcd834f3c Add coverage for AnnualReport::* source child classes (#31849) 2024-09-11 08:01:32 +00:00
renovate[bot]
9769ffdcc2 Update dependency aws-sdk-s3 to v1.161.0 (#31853)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 07:47:37 +00:00
Matt Jankowski
cee71b9892 Remove fa_ prefix from status visibility icon method (#31846) 2024-09-11 07:47:16 +00:00
Eugen Rochko
a3215c0f88 Change inner borders in media galleries in web UI (#31852) 2024-09-11 07:29:18 +00:00
renovate[bot]
9e12fa254e Update dependency propshaft to v1 (#31832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 17:45:32 +00:00
renovate[bot]
e6f5b36a12 Update dependency express to v4.20.0 (#31836)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 17:45:16 +00:00
Michael Stanclift
e09f9f885e Fix alt text modal styling (#31844) 2024-09-10 17:33:55 +00:00
Matt Jankowski
0c3c06f7cc Remove vendor prefix from mobile-web-app-capable meta tag (#31845) 2024-09-10 17:32:58 +00:00
Claire
4ffaced8bc Second attempt at disabling Codecov annotations (#31841) 2024-09-10 14:00:23 +00:00
Matt Jankowski
c4b09d684e Extract method for account-referencing in CLI prune task (#31824) 2024-09-10 13:23:55 +00:00
Matt Jankowski
da07adfe6c Add CustomEmoji.enabled scope (#31830) 2024-09-10 13:21:40 +00:00
Eugen Rochko
e0c27a5047 Add ability to manage which websites can credit you in link previews (#31819) 2024-09-10 12:00:40 +00:00
Eugen Rochko
3929e3c6d2 Change design of hide media button in web UI (#31807) 2024-09-10 09:29:17 +00:00
github-actions[bot]
5260233b81 New Crowdin Translations (automated) (#31835)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-10 09:22:49 +00:00
Matt Jankowski
5b995143f1 Use with_options for shared Account validation option value (#31827) 2024-09-10 08:03:45 +00:00
renovate[bot]
9ea710e543 Update dependency oj to v3.16.6 (#31831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 07:59:18 +00:00
Claire
592a7af27f Fix translatable source string using “silenced” instead of “limited” (#31822) 2024-09-09 19:57:52 +00:00
Matt Jankowski
d0ab94c4d2 Add FeaturedTag coverage, use pick in model (#31828) 2024-09-09 19:57:19 +00:00
Claire
1436db389e Merge pull request #2839 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 2caa3f365d
2024-09-09 20:02:04 +02:00
Claire
441af2632d Merge commit '2caa3f365ded73be17b623177967110e66f14061' into glitch-soc/merge-upstream 2024-09-09 18:22:41 +02:00
Eugen Rochko
a021dee642 Change labels on thread indicators in web UI (#31806) 2024-09-09 15:28:54 +00:00
github-actions[bot]
2caa3f365d New Crowdin Translations (automated) (#31800)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-09 12:38:43 +00:00
renovate[bot]
1d03570080 Update dependency postcss-preset-env to v10.0.3 (#31821)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 11:16:09 +00:00
Mike Dalessio
a0ea2fa3b0 Change fetch link card service to parse as HTML5 (#31814) 2024-09-09 10:59:42 +00:00
renovate[bot]
9d9901cc5b Update peter-evans/create-pull-request action to v7 (#31818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 08:43:12 +00:00
Matt Jankowski
e6969cf4e4 Add method for media-referencing status in AccountStatusCleanupPolicy (#31798) 2024-09-09 08:33:51 +00:00
renovate[bot]
1f13b87567 Update dependency pg to v1.5.8 (#31795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 08:31:13 +00:00
Matt Jankowski
c6a0768fe5 Use shared system spec helper methods (#31784) 2024-09-09 08:01:26 +00:00
Mike Dalessio
82161d8ae5 Change Account::Field parsing to use HTML5::DocumentFragment (#31813) 2024-09-08 18:56:18 +00:00
Mike Dalessio
afa2e257e4 Change verify link service to use CSS selectors instead of a complex XPath query (#31815) 2024-09-08 18:50:22 +00:00
Mike Dalessio
10143d053a Change some instances of Nokogiri HTML4 parsing to HTML5 (#31812) 2024-09-08 18:41:37 +00:00
Claire
9dcc6808d6 Merge pull request #2837 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to b716248fc5
2024-09-07 10:16:46 +02:00
Claire
5c97ccf939 Merge commit 'b716248fc5bde4dc47b8104d092d092d87c50f1a' into glitch-soc/merge-upstream 2024-09-06 20:10:53 +02:00
Claire
af6ca96a4e Fix tests in glitch-soc 2024-09-06 20:00:19 +02:00
Claire
29124990a2 Merge commit '7335a43b6dac0e82c305ce4dec9db4da114c769e' into glitch-soc/merge-upstream
Conflicts:
- `app/helpers/application_helper.rb`:
  Upstream reworked how CSS classes for the document's body are computed.
  Slight conflict due to glitch-soc's different theming system.
  Updated as upstream did.
2024-09-06 19:25:31 +02:00
Claire
b716248fc5 Add link to /admin/roles in moderation interface when changing someone's role (#31791) 2024-09-06 17:21:49 +00:00
Matt Jankowski
7335a43b6d Use async count in admin dashboard (#30606) 2024-09-06 16:52:35 +00:00
Matt Jankowski
0a433d08fb Move shares/modal body class to layout (#31789) 2024-09-06 16:46:55 +00:00
Matt Jankowski
4f81ad2494 Add coverage for media#player, move body class to view (#31790) 2024-09-06 16:46:25 +00:00
Matt Jankowski
b530fc5267 Update rails to version 7.1.4 (#31563) 2024-09-06 15:22:35 +00:00
Emelia Smith
c88ba523ee Fix sort order of moderation notes on Reports and Accounts (#31528) 2024-09-06 14:58:36 +00:00
Matt Jankowski
a9d0b48b65 Set "admin" body class from admin nested layout (#31269) 2024-09-06 13:58:46 +00:00
Emelia Smith
fd7fc7bdc3 Disable actions on reports that have already been taken (#31773) 2024-09-06 12:50:30 +00:00
Claire
1fed11cfa7 Target firefox all the way back to Firefox 78 (#31782) 2024-09-06 12:33:38 +00:00
Claire
ebf09328d4 Disable codecov github annotations (#31783) 2024-09-06 10:58:53 +00:00
Matt Jankowski
6b6a80b407 Remove body_as_json in favor of built-in response.parsed_body for JSON response specs (#31749) 2024-09-06 09:58:46 +00:00
Matt Jankowski
be77a1098b Extract Account::AUTOMATED_ACTOR_TYPES for "bot" actor_type values (#31772) 2024-09-06 07:49:38 +00:00
github-actions[bot]
cc4865193a New Crowdin Translations (automated) (#31781)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-06 07:38:08 +00:00
renovate[bot]
60182db0ca Update dependency tzinfo-data to v1.2024.2 (#31780)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 07:30:53 +00:00
Claire
4cd74585ae Merge pull request #2836 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 5acec087ca
2024-09-05 22:56:10 +02:00
Matt Jankowski
7efe0bde9d Add have_http_link_header matcher and set header values as strings (#31010) 2024-09-05 20:05:38 +00:00
Matt Jankowski
09017dd8f0 Add worker spec for annual report worker (#31778) 2024-09-05 19:51:17 +00:00
Michael Stanclift
db6b1fe8fb [Glitch] Fix radio checkbox visibility in Report dialogs
Port b4b639ee4a to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-05 20:40:31 +02:00
Eugen Rochko
cb324b5d7c [Glitch] Change design of unread conversations in web UI
Port ec4c49082e to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-05 20:40:04 +02:00
Claire
1a0ef0c526 Merge commit '5acec087caed4a2fdf0fd8ed11f891222496f321' into glitch-soc/merge-upstream 2024-09-05 20:36:25 +02:00
Matt Jankowski
5acec087ca Simplify basic presence validations (#29664) 2024-09-05 15:36:05 +00:00
Eugen Rochko
bc435c63bd Change width of columns in advanced web UI (#31762) 2024-09-05 14:57:53 +00:00
Matt Jankowski
850478dc14 Use conflicted configuration for renovate rebase strategy (#31770) 2024-09-05 14:41:14 +00:00
Matt Jankowski
d58faa2018 Remove references to deprecated Import model (#31759) 2024-09-05 14:07:17 +00:00
David Roetzel
f85694acfd Add credentials to redis sentinel configuration (#31768) 2024-09-05 14:06:58 +00:00
Michael Stanclift
b4b639ee4a Fix radio checkbox visibility in Report dialogs (#31752) 2024-09-05 12:34:13 +00:00
Matt Jankowski
e820cc30b8 Convert invites controller spec to system/request specs (#31755) 2024-09-05 11:54:27 +00:00
renovate[bot]
5b1ae15a36 Update docker.io/ruby Docker tag to v3.3.5 (#31758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 11:06:05 +00:00
Matt Jankowski
8fd3e37747 Update parser and rubocop gems (#31760) 2024-09-05 10:20:27 +00:00
renovate[bot]
bd8cd0c6e7 Update dependency cssnano to v7.0.6 (#31757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 09:50:38 +00:00
James May
f9712fad1b Direct link to each authorized_application entry with html anchor (#31677)
Co-authored-by: Matt Jankowski <matt@jankowski.online>
2024-09-05 09:48:42 +00:00
Matt Jankowski
ba9fd1c32e Add coverage for Account#prepare_contents callback (#31748) 2024-09-05 09:48:33 +00:00
Eugen Rochko
b265a654d7 Fix wrong width on content warnings and filters in web UI (#31761) 2024-09-05 09:46:11 +00:00
github-actions[bot]
eb23d9f0f6 New Crowdin Translations (automated) (#31765)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-05 09:40:38 +00:00
Eugen Rochko
ec4c49082e Change design of unread conversations in web UI (#31763) 2024-09-05 09:39:59 +00:00
David Roetzel
7d91723f05 Support REDIS_SENTINEL_PORT variables (#31767) 2024-09-05 09:26:49 +00:00
Claire
5a1d7db309 Merge pull request #2835 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to fe04291af4
2024-09-04 23:01:53 +02:00
Matt Jankowski
4d5c91e99a Remove before block in spec with TODOs which have been TO-DONE already (#31754) 2024-09-04 19:51:40 +00:00
Matt Jankowski
4678473e54 Add AnnualReport::Source#report_statuses method for subclasses to use (#31753) 2024-09-04 19:50:33 +00:00
Claire
cb1eaa10f2 Fix glitch-soc-only tests 2024-09-04 20:07:23 +02:00
Claire
1fb31ad9b1 [Glitch] Fix display name being displayed instead of domain in remote reports
Port 585e369e0b to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-04 19:43:21 +02:00
Claire
1d86377ba9 [Glitch] Fix all notification types being stored without filtering when polling
Port fab29ebbe8 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-04 19:42:45 +02:00
Claire
5a55180b95 Merge commit 'fe04291af46d7cb9d3439fa73739b2ffb2b53d72' into glitch-soc/merge-upstream
Conflicts:
- `spec/lib/sanitize/config_spec.rb`:
  Upstream rewrote top-level `describe` calls to `RSpec.describe`, and
  glitch-soc had differences in the first few tests because of the wider
  subset of HTML it accepts.
  Changed `describe` to `RSpec.describe` as upstream did, keeping
  glitch-soc's tests.
2024-09-04 19:38:52 +02:00
Claire
559958f8c5 Fix email language when recipient has no selected locale (#31747) 2024-09-04 17:35:40 +00:00
Matt Jankowski
e1b5f3fc6f Use response.parsed_body for html response checks (#31750) 2024-09-04 17:29:05 +00:00
Matt Jankowski
fe04291af4 Use more accurate beginning/ending times in annual report source (#31751) 2024-09-04 17:19:53 +00:00
David Roetzel
ef2bc8ea26 Add redis sentinel support to ruby part of code (#31744) 2024-09-04 14:10:45 +00:00
Emelia Smith
9ba81eae3e Streaming: Improve Redis connection options handling (#31623) 2024-09-04 14:10:26 +00:00
Claire
585e369e0b Fix display name being displayed instead of domain in remote reports (#31613) 2024-09-04 13:43:08 +00:00
Claire
fab29ebbe8 Fix all notification types being stored without filtering when polling (#31745) 2024-09-04 13:28:16 +00:00
Claire
1fcffa573c Fix 500 error in GET /api/v2_alpha/notifications when there are no notifications to return (#31746) 2024-09-04 12:54:15 +00:00
Claire
ee55d20fd5 Allow POST /oauth/revoke through CORS (#31743) 2024-09-04 10:46:28 +00:00
renovate[bot]
36710aec8b Update dependency postcss to v8.4.45 (#31742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 09:57:28 +00:00
renovate[bot]
7fb8834dd7 Update dependency pino-http to v10.3.0 (#31721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 09:29:14 +00:00
renovate[bot]
44fd0803ce Update dependency pino to v9.4.0 (#31720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 09:27:12 +00:00
renovate[bot]
d8bd9ef190 Update eslint (non-major) (#31684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 09:25:25 +00:00
renovate[bot]
ffe29ce417 Update dependency shoulda-matchers to v6.4.0 (#31731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 08:58:28 +00:00
Matt Jankowski
58df00f04d Extract method for self-referencing records in AccountStatusCleanupPolicy (#31244) 2024-09-04 08:52:37 +00:00
github-actions[bot]
1c17dca6d9 New Crowdin Translations (automated) (#31741)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-04 08:42:36 +00:00
renovate[bot]
393a5504e5 Update dependency ruby to v3.3.5 (#31719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 08:25:37 +00:00
renovate[bot]
2c6131c9a1 Update dependency test-prof to v1.4.2 (#31733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 08:23:15 +00:00
renovate[bot]
3553d6c36f Update dependency aws-sdk-s3 to v1.160.0 (#31735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 08:23:00 +00:00
renovate[bot]
612802b9e5 Update dependency sass to v1.78.0 (#31739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 08:22:44 +00:00
Michael Stanclift
a24049db30 Fix Corepack prompt on Devcontainer (#31729) 2024-09-04 08:20:46 +00:00
Matt Jankowski
14af5b47ac Add coverage for model normalizations (#31734) 2024-09-04 05:12:40 +00:00
Matt Jankowski
9ed1aab9b7 Remove accidental matcher debug code (#31732) 2024-09-04 05:12:35 +00:00
Matt Jankowski
f1003b2560 Enable "zero monkey patching" mode in RSpec (#31614) 2024-09-04 05:12:25 +00:00
Claire
664dfa69b2 Merge pull request #2834 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to c9ea91f868
2024-09-03 23:26:20 +02:00
Christian Schmidt
8e3c47aff5 [Glitch] frequentlyUsedLanguages not updated correctly
Port 8adf67f2db to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-03 21:55:32 +02:00
Claire
663cebbe3b [Glitch] Fix radio buttons styling in web UI
Port 0437dd9e77 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-03 21:54:41 +02:00
Claire
fef055db96 Merge commit 'c9ea91f8683cd5c0cfac14071a17e3956ac6d3b0' into glitch-soc/merge-upstream
Conflicts:
- `spec/requests/api/v1/timelines/tag_spec.rb`:
  Upstream refactored this file, while we had a change to switch a default setting.
  Updated as upstream did.
- `spec/views/statuses/show.html.haml_spec.rb`:
  Upstream refactored this file, while we stubbed different methods.
  Updated as upstream did, and updated the stubs accordingly.
2024-09-03 21:51:53 +02:00
Matt Jankowski
c9ea91f868 Add coverage for api/v1/annual_reports area (#31730) 2024-09-03 16:10:48 +00:00
zunda
8c928faff3 Refresh Heroku related thingy for heroku-24 stack (#31135) 2024-09-03 16:03:00 +00:00
Christian Schmidt
8adf67f2db frequentlyUsedLanguages not updated correctly (#31386) 2024-09-03 15:55:13 +00:00
Matt Jankowski
19849eb91d Skip paperclip spoof detector unless opted into attachment processing specs (#31454) 2024-09-03 15:39:19 +00:00
Matt Jankowski
69dbc23038 Only enable chewy in search-tagged specs (#30583) 2024-09-03 15:38:38 +00:00
Matt Jankowski
7c26e5e4a1 Add Reviewable model concern (#31152) 2024-09-03 15:37:45 +00:00
Matt Jankowski
2f0d0fc127 Add coverage for CLI::Accounts#fix_duplications task (#30639) 2024-09-03 15:36:59 +00:00
Matt Jankowski
e1fa456c7c Add have_cacheable_headers matcher for responses (#31727) 2024-09-03 15:35:19 +00:00
Matt Jankowski
490bdb7944 Add coverage for StatusesHelper#media_summary method (#31726) 2024-09-03 15:34:09 +00:00
Matt Jankowski
4682804448 Fix Rails/ReversibleMigration cop for remove_index (#30832) 2024-09-03 15:32:22 +00:00
Matt Jankowski
8922786ef4 Fix RSpec/LetSetup cop in api/v1/timelines/tag spec (#30796) 2024-09-03 15:32:12 +00:00
Matt Jankowski
67faaf5557 Simplify account model username presence validation spec (#31013) 2024-09-03 15:30:57 +00:00
Matt Jankowski
fcb83be8b2 Improve coverage specificity for Webhook enable/disable/secret specs (#31194) 2024-09-03 15:30:13 +00:00
Matt Jankowski
928390c2ba Convert admin/settings controller specs to system specs (#31548) 2024-09-03 15:29:32 +00:00
Matt Jankowski
ef4920c6c9 Pull out https/hostname setup for request specs to shared config (#31622) 2024-09-03 15:28:57 +00:00
Matt Jankowski
dc2f67f69b Remove fuubar gem and custom rspec --format setting (#30594) 2024-09-03 15:24:31 +00:00
Matt Jankowski
79b1841805 Disable without_verify_partial_doubles in statuses/show view spec (#29132) 2024-09-03 15:23:57 +00:00
Matt Jankowski
5b595b8a5a Remove usage of assigns in controller specs (#30195) 2024-09-03 15:23:16 +00:00
Claire
ae363f0555 Fix spacing between icons and labels in settings/admin interface (#31728) 2024-09-03 14:43:34 +00:00
renovate[bot]
97bb8df1c1 Update dependency rspec-rails to v7.0.1 (#31695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 14:32:59 +00:00
Claire
ea0d691e19 Add GET /api/v2_alpha/notifications/:group_key/accounts (#31725) 2024-09-03 14:32:26 +00:00
Matt Jankowski
c9641c8070 Remove un-needed edge case sort condition in languages helper (#31724) 2024-09-03 13:19:48 +00:00
Matt Jankowski
219458d7d4 Convert tags controller spec to system and request specs (#31708) 2024-09-03 13:18:53 +00:00
Claire
0437dd9e77 Fix radio buttons styling in web UI (#31723) 2024-09-03 11:37:09 +00:00
Claire
c461a6ab2f Merge pull request #2833 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 611533cd12
2024-09-03 13:05:14 +02:00
Claire
e9adba60af [Glitch] Fix not being able to load more notifications after trimming
Port c1795ee963 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-09-03 12:13:19 +02:00
Claire
ac4002fe08 Merge commit '611533cd12059d365ca0267342b750e615637bd4' into glitch-soc/merge-upstream 2024-09-03 12:12:23 +02:00
renovate[bot]
611533cd12 Update dependency json-schema to v5 (#31499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 09:53:44 +00:00
Matt Jankowski
4819fc72ee Remove config/secrets.yml file (#31562) 2024-09-03 09:13:54 +00:00
Matt Jankowski
31c00108a4 Add first pass coverage for AnnualReport class (#31704) 2024-09-03 09:05:26 +00:00
Matt Jankowski
2a244e2fdb Remove unused merge_context helper (#31703) 2024-09-03 08:59:37 +00:00
renovate[bot]
3efe98aa95 Update libretranslate/libretranslate Docker tag to v1.6.0 (#31687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 08:55:24 +00:00
Matt Jankowski
b8957241af Add coverage for JsonLdHelper#uri_from_bearcap method (#31700) 2024-09-03 08:41:11 +00:00
Matt Jankowski
25bbb01666 Remove unused helper method in spec (#31699) 2024-09-03 08:04:22 +00:00
Matt Jankowski
48379e62e4 Remove unused User#inactive_message method (#31698) 2024-09-03 08:04:00 +00:00
Matt Jankowski
406b8211f5 Remove unused Mention#active? method (#31697) 2024-09-03 08:03:25 +00:00
Matt Jankowski
24a0b20408 Use body_as_json directly instead of via local var assignment (#31696) 2024-09-03 08:03:08 +00:00
github-actions[bot]
e5155c50fd New Crowdin Translations (automated) (#31716)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-03 08:02:08 +00:00
renovate[bot]
754baf00c0 Update dependency inline_svg to v1.10.0 (#31717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 08:01:12 +00:00
renovate[bot]
5f7a395848 Update dependency rspec-rails to v7 (#31710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 08:00:52 +00:00
Christian Schmidt
a5bbe83dfd media_ids is an array of strings (#31709) 2024-09-02 20:18:09 +00:00
Claire
c1795ee963 Fix not being able to load more notifications after trimming (#31652) 2024-09-02 20:14:04 +00:00
Claire
ec3b81fced Merge pull request #2832 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 491033c86c
2024-09-02 21:28:13 +02:00
Claire
402c1e116d Merge commit '491033c86cc9c29302bfe68cc94dabad82ded4cc' into glitch-soc/merge-upstream 2024-09-02 17:43:10 +02:00
Christian Schmidt
491033c86c Reject status creation with invalid media_ids parameter (#31681) 2024-09-02 15:30:48 +00:00
Matt Jankowski
40f993b3a0 Use built-in response.parsed_body for JSON response specs (#31674) 2024-09-02 14:25:21 +00:00
David Roetzel
388d5473e1 Refactor (ruby) redis configuration (#31694) 2024-09-02 14:19:55 +00:00
Claire
a23b3747ac Fix N+1s in grouped notifications (#31638) 2024-09-02 09:56:00 +00:00
renovate[bot]
fc870c7e5a Update dependency postcss to v8.4.44 (#31691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 09:35:43 +00:00
Matt Jankowski
5439af3276 Bump Bundler/Ruby versions in lockfile, misc gem version bumps (#31666) 2024-09-02 08:46:50 +00:00
renovate[bot]
d1cca521e1 Update devDependencies (non-major) (#31686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 08:36:56 +00:00
renovate[bot]
25d5e19b83 Update DefinitelyTyped types (non-major) (#31683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 08:35:51 +00:00
renovate[bot]
478155b015 Update dependency postcss to v8.4.43 (#31676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 08:35:28 +00:00
github-actions[bot]
2f2b98c8cb New Crowdin Translations (automated) (#31671)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-09-02 08:35:09 +00:00
renovate[bot]
1701b1fc80 Update dependency axios to v1.7.7 (#31670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 08:26:43 +00:00
Claire
b06907e4e4 Rewrite favourite modal as a Typescript functional component, use revamped design (#2831) 2024-08-31 18:41:25 +02:00
Claire
a859b0c7e7 Merge pull request #2829 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 02633d6ebb
2024-08-31 18:41:10 +02:00
Claire
5f8f8cc98f Fix crowdin upload workflow not running on glitch-soc (#2830) 2024-08-31 17:33:06 +02:00
Claire
ee2c38fcb8 [Glitch] Change background color of notifications on private messages
Port 3ddeaca863 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-08-31 16:10:55 +02:00
Claire
4f1da814a8 [Glitch] Fix inconsistencies between code and notification source translation strings
Port 35538fe694 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-08-31 16:10:26 +02:00
Claire
6f35e93f72 Merge commit '02633d6ebbe944a8769c8f2229fa9e0d6c7d1142' into glitch-soc/merge-upstream 2024-08-31 16:06:04 +02:00
renovate[bot]
02633d6ebb Update dependency jsdom to v25 (#31578)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-30 09:48:54 +00:00
renovate[bot]
3655e3204f Update dependency @babel/runtime to v7.25.6 (#31649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-30 09:46:53 +00:00
Matt Jankowski
85e8d1f285 Use rails configuration storage for paperclip path (#31651) 2024-08-30 09:46:09 +00:00
Claire
3ddeaca863 Change background color of notifications on private messages (#31657) 2024-08-30 09:42:48 +00:00
Claire
35538fe694 Fix inconsistencies between code and notification source translation strings (#31658) 2024-08-30 09:37:39 +00:00
Matt Jankowski
1ee1c329cc Convert admin/announcements controller spec to system spec (#31655) 2024-08-30 07:15:28 +00:00
github-actions[bot]
92eba9096b New Crowdin Translations (automated) (#31656)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-08-30 07:12:56 +00:00
renovate[bot]
b0a30967d7 Update dependency thor to v1.3.2 (#31654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-30 07:05:39 +00:00
Claire
ad0a28a8bf Add grouped_types parameter to allow clients to restrict which notifications types get grouped (#31594) 2024-08-29 12:39:07 +00:00
Matt Jankowski
662f87dbe9 Use MediaAttachment.supported_mime_types method where relevant (#31635) 2024-08-29 08:52:29 +00:00
Matt Jankowski
02585d8789 Convert media controller spec to request spec (#31634) 2024-08-29 08:46:00 +00:00
Matt Jankowski
b9269c8d38 Convert admin/reset controller spec to system spec (#31643) 2024-08-29 08:38:17 +00:00
github-actions[bot]
5d725b2c12 New Crowdin Translations (automated) (#31647)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-08-29 08:30:39 +00:00
renovate[bot]
4f4be65452 Update dependency @rails/ujs to v7.1.400 (#31628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 08:30:09 +00:00
renovate[bot]
8bd8238d41 Update dependency selenium-webdriver to v4.24.0 (#31633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 08:20:02 +00:00
renovate[bot]
099657be9a Update dependency flatware-rspec to v2.3.3 (#31636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 08:19:38 +00:00
renovate[bot]
dc7412c15f Update opentelemetry-ruby (non-major) (#31646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 08:18:41 +00:00
Emelia Smith
f6fb9b75db Streaming: Fix BIND IPv6 handling (#31624) 2024-08-28 10:40:37 +00:00
HolgerHuo
3c412578c9 update: max_media_attachments follow server advertised value (#31616) 2024-08-28 09:28:48 +00:00
github-actions[bot]
26d6d291c3 New Crowdin Translations (automated) (#31627)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-08-28 08:59:15 +00:00
Matt Jankowski
0ef636f72d Convert shares controller spec to system spec (#31619) 2024-08-28 07:58:40 +00:00
Matt Jankowski
00586d27cb Convert instance_actor controller spec to request spec (#31621) 2024-08-28 07:56:07 +00:00
Claire
d46bf54925 Merge pull request #2828 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 04f0468016
2024-08-27 22:56:55 +02:00
Claire
435ff8e550 [Glitch] Add ability for admins to force grouped notifications in web UI
Port c73868cd78 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-08-27 20:33:50 +02:00
Eugen Rochko
e15fad27bc [Glitch] Change design of boost modal in web UI
Port 29b9642b31 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-08-27 20:33:50 +02:00
Emelia Smith
d3629d191f [Glitch] Add quick links to Administration and Moderation Reports from Web UI
Port d820c0883d to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-08-27 20:16:52 +02:00
Claire
94d8cdc494 Merge commit '04f0468016b450ace8e0ce707b4c21aa18b51262' into glitch-soc/merge-upstream 2024-08-27 20:00:07 +02:00
Claire
51311f97fb Merge pull request #2827 from ClearlyClaire/glitch-soc/fixes/report-old-notifications-target
Fix target account link in old report notifications
2024-08-27 19:09:20 +02:00
Claire
33ad67fcea Fix target account link in old report notifications 2024-08-27 18:11:14 +02:00
Renaud Chaput
04f0468016 Fix streaming image with Docker Compose (#31615) 2024-08-27 16:05:19 +00:00
Matt Jankowski
6eba057e64 Cache rspec persistence file between CI runs (#31065) 2024-08-27 15:23:08 +00:00
Matt Jankowski
3959f36d19 Add checks about response body content to admin/dash spec (#30716) 2024-08-27 14:59:56 +00:00
Claire
c73868cd78 Add ability for admins to force grouped notifications in web UI (#31610) 2024-08-27 14:55:51 +00:00
Renaud Chaput
da42e9d446 Fix typo in Compose file (#31612) 2024-08-27 12:51:34 +00:00
renovate[bot]
c513fdb9c5 Update dependency pundit to v2.4.0 (#31598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 09:51:29 +00:00
Matt Jankowski
48f4e5444d Convert media_proxy controller spec to request spec (#31600) 2024-08-27 09:44:16 +00:00
Emelia Smith
4118688fba Streaming: Refactor move database and redis logic into separate files (#31567) 2024-08-27 08:40:04 +00:00
Matt Jankowski
a7f8417795 Convert "CSV export" settings controller specs to request specs (#31601) 2024-08-27 08:12:39 +00:00
Matt Jankowski
38a3466741 Convert api/oembed controller spec to request spec (#31605) 2024-08-27 07:55:25 +00:00
github-actions[bot]
0e7c88aa6d New Crowdin Translations (automated) (#31609)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-08-27 07:54:58 +00:00
Matt Jankowski
c09d232ee3 Convert api/web/settings controller spec to request spec (#31606) 2024-08-27 07:42:35 +00:00
Matt Jankowski
14d7fe05d0 Use describe instead of context in top-level spec declaration (#31607) 2024-08-27 07:40:18 +00:00
Claire
11014ac414 Merge pull request #2826 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to e38ce3beb7
2024-08-26 21:08:23 +02:00
Eugen Rochko
29b9642b31 Change design of boost modal in web UI (#31555) 2024-08-26 17:12:17 +00:00
Claire
8f678a3cf4 Fix tests for glitch-soc 2024-08-26 19:08:42 +02:00
Claire
2379bfe3ea [Glitch] Fix spurious loading bar middleware usage
Port e38ce3beb7 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2024-08-26 18:54:27 +02:00
Claire
11b8017b45 Merge commit 'e38ce3beb7b83f43ef6e6f144c19b186c393910c' into glitch-soc/merge-upstream 2024-08-26 18:52:33 +02:00
Emelia Smith
d820c0883d Add quick links to Administration and Moderation Reports from Web UI (#24838) 2024-08-26 16:42:46 +00:00
Claire
e38ce3beb7 Fix spurious loading bar middleware usage (#31592) 2024-08-26 16:38:34 +00:00
Matt Jankowski
4c2534d12e Convert "static page" controller specs to system specs (#31599) 2024-08-26 15:53:48 +00:00
Matt Jankowski
963c1309a4 Cache asset compilation results on CI (#30868) 2024-08-26 15:20:05 +00:00
Matt Jankowski
dbe0ee8a81 Convert emojis controller spec to request spec (#31597)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-08-26 15:00:05 +00:00
Matt Jankowski
5172d84946 Convert manifest controller spec to request spec (#31596) 2024-08-26 14:37:23 +00:00
Matt Jankowski
36ccdcc9e1 Convert "custom css" controller spec to request spec (#31595) 2024-08-26 14:36:31 +00:00
Matt Jankowski
641ae6a2cf Convert health check endpoint controller spec to request spec (#31565) 2024-08-26 12:17:35 +00:00
renovate[bot]
e3516fa8cf Update Yarn to v4.4.1 (#31575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 11:01:09 +00:00
Claire
a3c33c77ab Fix typo in changelog (#31591) 2024-08-26 11:01:00 +00:00
renovate[bot]
3e1bd9756e Update dependency brakeman to v6.2.1 (#31553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 08:50:40 +00:00
renovate[bot]
ccc0aea767 Update dependency bundler-audit to v0.9.2 (#31558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 08:48:04 +00:00
renovate[bot]
d0822a0e78 Update dependency test-prof to v1.4.1 (#31561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 08:47:21 +00:00
renovate[bot]
0422a5c208 Update dependency axios to v1.7.5 (#31564)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 08:44:32 +00:00
Emelia Smith
c245a2044e Streaming: Refactor to use metrics.$name instead of destructuring (#31566) 2024-08-26 08:08:21 +00:00
Renaud Chaput
f9f4006a1b Update omniauth-rails_csrf_protection (#31552) 2024-08-26 07:51:21 +00:00
renovate[bot]
4cc589e533 Update dependency jsdom to v24.1.3 (#31577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 07:35:53 +00:00
Matt Jankowski
a6df125303 Fix Rails/CompactBlank cop (#31581) 2024-08-26 07:35:33 +00:00
Matt Jankowski
bcc4b1078c Fix Rails/RootPathnameMethods cop (#31582) 2024-08-26 07:35:07 +00:00
renovate[bot]
5bcfe8d421 Update dependency @types/react to v18.3.4 (#31586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 07:34:16 +00:00
renovate[bot]
a6906e045b Update devDependencies (non-major) (#31587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 07:34:01 +00:00
github-actions[bot]
626d44b6c6 New Crowdin Translations (automated) (#31572)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-08-26 07:25:39 +00:00
Claire
3bfa5ffe29 Update dependency rexml (#31590) 2024-08-26 07:21:39 +00:00
1978 changed files with 45422 additions and 24526 deletions

View File

@@ -1,6 +1,7 @@
[production]
defaults
> 0.2%
firefox >= 78
ios >= 15.6
not dead
not OperaMini all

View File

@@ -11,5 +11,8 @@ RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
# Disable download prompt for Corepack
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
# Move welcome message to where VS Code expects it
COPY .devcontainer/welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt

View File

@@ -39,7 +39,7 @@
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postCreateCommand": "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 bin/setup",
"postCreateCommand": "bin/setup",
"waitFor": "postCreateCommand",
"customizations": {

View File

@@ -69,7 +69,7 @@ services:
hard: -1
libretranslate:
image: libretranslate/libretranslate:v1.5.7
image: libretranslate/libretranslate:v1.6.1
restart: unless-stopped
volumes:
- lt-data:/home/libretranslate/.local

View File

@@ -73,6 +73,16 @@ DB_PORT=5432
SECRET_KEY_BASE=
OTP_SECRET=
# Encryption secrets
# ------------------
# Must be available (and set to same values) for all server processes
# These are private/secret values, do not share outside hosting environment
# Use `bin/rails db:encryption:init` to generate fresh secrets
# Do NOT change these secrets once in use, as this would cause data loss and other issues
# ------------------
# ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=
# ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=
# ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=
# Web Push
# --------

View File

@@ -333,7 +333,7 @@ module.exports = defineConfig({
],
parserOptions: {
project: true,
projectService: true,
tsconfigRootDir: __dirname,
},

View File

@@ -21,3 +21,4 @@ runs:
with:
ruby-version: ${{ inputs.ruby-version }}
bundler-cache: true
cache-version: 4.3

2
.github/codecov.yml vendored
View File

@@ -9,3 +9,5 @@ coverage:
default:
# GitHub status check is not blocking
informational: true
github_checks:
annotations: false

View File

@@ -7,6 +7,7 @@
':prConcurrentLimitNone', // Remove limit for open PRs at any time.
':prHourlyLimit2', // Rate limit PR creation to a maximum of two per hour.
],
rebaseWhen: 'conflicted',
minimumReleaseAge: '3', // Wait 3 days after the package has been published before upgrading it
// packageRules order is important, they are applied from top to bottom and are merged,
// meaning the most important ones must be at the bottom, for example grouping rules

View File

@@ -1,14 +1,9 @@
on:
workflow_call:
inputs:
platforms:
required: true
type: string
cache:
type: boolean
default: true
use_native_arm64_builder:
type: boolean
push_to_images:
type: string
version_prerelease:
@@ -24,42 +19,36 @@ on:
file_to_build:
type: string
# This builds multiple images with one runner each, allowing us to build for multiple architectures
# using Github's runners.
# The two-step process is adapted form:
# https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
jobs:
# Build each (amd64 and arm64) image separately
build-image:
runs-on: ubuntu-latest
runs-on: ${{ startsWith(matrix.platform, 'linux/arm') && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
- linux/arm64
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
if: contains(inputs.platforms, 'linux/arm64') && !inputs.use_native_arm64_builder
- name: Prepare
env:
PUSH_TO_IMAGES: ${{ inputs.push_to_images }}
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
# Transform multi-line variable into comma-separated variable
image_names=${PUSH_TO_IMAGES//$'\n'/,}
echo "IMAGE_NAMES=${image_names%,}" >> $GITHUB_ENV
- uses: docker/setup-buildx-action@v3
id: buildx
if: ${{ !(inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')) }}
- name: Start a local Docker Builder
if: inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')
run: |
docker run --rm -d --name buildkitd -p 1234:1234 --privileged moby/buildkit:latest --addr tcp://0.0.0.0:1234
- uses: docker/setup-buildx-action@v3
id: buildx-native
if: inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')
with:
driver: remote
endpoint: tcp://localhost:1234
platforms: linux/amd64
append: |
- endpoint: tcp://${{ vars.DOCKER_BUILDER_HETZNER_ARM64_01_HOST }}:13865
platforms: linux/arm64
name: mastodon-docker-builder-arm64-01
driver-opts:
- servername=mastodon-docker-builder-arm64-01
env:
BUILDER_NODE_1_AUTH_TLS_CACERT: ${{ secrets.DOCKER_BUILDER_HETZNER_ARM64_01_CACERT }}
BUILDER_NODE_1_AUTH_TLS_CERT: ${{ secrets.DOCKER_BUILDER_HETZNER_ARM64_01_CERT }}
BUILDER_NODE_1_AUTH_TLS_KEY: ${{ secrets.DOCKER_BUILDER_HETZNER_ARM64_01_KEY }}
- name: Log in to Docker Hub
if: contains(inputs.push_to_images, 'tootsuite')
@@ -76,8 +65,91 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/metadata-action@v5
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
if: ${{ inputs.push_to_images != '' }}
with:
images: ${{ inputs.push_to_images }}
flavor: ${{ inputs.flavor }}
labels: ${{ inputs.labels }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
with:
context: .
file: ${{ inputs.file_to_build }}
build-args: |
MASTODON_VERSION_PRERELEASE=${{ inputs.version_prerelease }}
MASTODON_VERSION_METADATA=${{ inputs.version_metadata }}
SOURCE_COMMIT=${{ github.sha }}
platforms: ${{ matrix.platform }}
provenance: false
push: ${{ inputs.push_to_images != '' }}
cache-from: ${{ inputs.cache && 'type=gha' || '' }}
cache-to: ${{ inputs.cache && 'type=gha,mode=max' || '' }}
outputs: type=image,"name=${{ env.IMAGE_NAMES }}",push-by-digest=true,name-canonical=true,push=${{ inputs.push_to_images != '' }}
- name: Export digest
if: ${{ inputs.push_to_images != '' }}
run: |
mkdir -p "${{ runner.temp }}/digests"
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"
- name: Upload digest
if: ${{ inputs.push_to_images != '' }}
uses: actions/upload-artifact@v4
with:
# `hashFiles` is used to disambiguate between streaming and non-streaming images
name: digests-${{ hashFiles(inputs.file_to_build) }}-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1
# Then merge the docker images into a single one
merge-images:
if: ${{ inputs.push_to_images != '' }}
runs-on: ubuntu-24.04
needs:
- build-image
env:
PUSH_TO_IMAGES: ${{ inputs.push_to_images }}
steps:
- uses: actions/checkout@v4
- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
# `hashFiles` is used to disambiguate between streaming and non-streaming images
pattern: digests-${{ hashFiles(inputs.file_to_build) }}-*
merge-multiple: true
- name: Log in to Docker Hub
if: contains(inputs.push_to_images, 'tootsuite')
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to the GitHub Container registry
if: contains(inputs.push_to_images, 'ghcr.io')
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
if: ${{ inputs.push_to_images != '' }}
with:
images: ${{ inputs.push_to_images }}
@@ -85,18 +157,14 @@ jobs:
tags: ${{ inputs.tags }}
labels: ${{ inputs.labels }}
- uses: docker/build-push-action@v6
with:
context: .
file: ${{ inputs.file_to_build }}
build-args: |
MASTODON_VERSION_PRERELEASE=${{ inputs.version_prerelease }}
MASTODON_VERSION_METADATA=${{ inputs.version_metadata }}
platforms: ${{ inputs.platforms }}
provenance: false
builder: ${{ steps.buildx.outputs.name || steps.buildx-native.outputs.name }}
push: ${{ inputs.push_to_images != '' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: ${{ inputs.cache && 'type=gha' || '' }}
cache-to: ${{ inputs.cache && 'type=gha,mode=max' || '' }}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
echo "$PUSH_TO_IMAGES" | xargs -I{} \
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '{}@sha256:%s ' *)
- name: Inspect image
run: |
echo "$PUSH_TO_IMAGES" | xargs -i{} \
docker buildx imagetools inspect {}:${{ steps.meta.outputs.version }}

View File

@@ -26,8 +26,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
cache: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon
@@ -47,8 +45,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
cache: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon-streaming

View File

@@ -21,17 +21,17 @@ jobs:
uses: actions/checkout@v4
- id: version_vars
run: |
echo mastodon_version_metadata=pr-${{ github.event.pull_request.number }}-$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT
echo mastodon_version_metadata=pr-${{ github.event.pull_request.number }}-$(git rev-parse --short ${{github.event.pull_request.head.sha}}) >> $GITHUB_OUTPUT
echo mastodon_short_sha=$(git rev-parse --short ${{github.event.pull_request.head.sha}}) >> $GITHUB_OUTPUT
outputs:
metadata: ${{ steps.version_vars.outputs.mastodon_version_metadata }}
short_sha: ${{ steps.version_vars.outputs.mastodon_short_sha }}
build-image:
needs: compute-suffix
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon
version_metadata: ${{ needs.compute-suffix.outputs.metadata }}
@@ -39,6 +39,7 @@ jobs:
latest=auto
tags: |
type=ref,event=pr
type=ref,event=pr,suffix=-${{ needs.compute-suffix.outputs.short_sha }}
secrets: inherit
build-image-streaming:
@@ -46,8 +47,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon-streaming
version_metadata: ${{ needs.compute-suffix.outputs.metadata }}
@@ -55,4 +54,5 @@ jobs:
latest=auto
tags: |
type=ref,event=pr
type=ref,event=pr,suffix=-${{ needs.compute-suffix.outputs.short_sha }}
secrets: inherit

View File

@@ -13,8 +13,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon
# Do not use cache when building releases, so apt update is always ran and the release always contain the latest packages
@@ -22,7 +20,7 @@ jobs:
# Only tag with latest when ran against the latest stable branch
# This needs to be updated after each minor version release
flavor: |
latest=${{ startsWith(github.ref, 'refs/tags/v4.2.') }}
latest=false
tags: |
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}
@@ -33,8 +31,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon-streaming
# Do not use cache when building releases, so apt update is always ran and the release always contain the latest packages
@@ -42,7 +38,7 @@ jobs:
# Only tag with latest when ran against the latest stable branch
# This needs to be updated after each minor version release
flavor: |
latest=${{ startsWith(github.ref, 'refs/tags/v4.3.') }}
latest=false
tags: |
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}

View File

@@ -23,8 +23,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
cache: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon
@@ -44,8 +42,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
cache: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon-streaming

View File

@@ -0,0 +1,70 @@
name: Crowdin / Download translations (stable branches)
on:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
download-translations-stable:
runs-on: ubuntu-latest
if: github.repository == 'glitch-soc/mastodon'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Increase Git http.postBuffer
# This is needed due to a bug in Ubuntu's cURL version?
# See https://github.com/orgs/community/discussions/55820
run: |
git config --global http.version HTTP/1.1
git config --global http.postBuffer 157286400
# Download the translation files from Crowdin
- name: crowdin action
uses: crowdin/github-action@v2
with:
config: crowdin-glitch.yml
upload_sources: false
upload_translations: false
download_translations: true
crowdin_branch_name: ${{ github.base_ref || github.ref_name }}
push_translations: false
create_pull_request: false
env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# As the files are extracted from a Docker container, they belong to root:root
# We need to fix this before the next steps
- name: Fix file permissions
run: sudo chown -R runner:docker .
# This is needed to run the normalize step
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Run i18n normalize task
run: bundle exec i18n-tasks normalize
# Create or update the pull request
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.5
with:
commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations for ${{ github.base_ref || github.ref_name }} (automated)'
author: 'GitHub Actions <noreply@github.com>'
body: |
New Crowdin translations, automated with GitHub Actions
See `.github/workflows/crowdin-download.yml`
This PR will be updated every day with new translations.
Due to a limitation in GitHub Actions, checks are not running on this PR without manual action.
If you want to run the checks, then close and re-open it.
branch: i18n/crowdin/translations-${{ github.base_ref || github.ref_name }}
base: ${{ github.base_ref || github.ref_name }}
labels: i18n

View File

@@ -53,7 +53,7 @@ jobs:
# Create or update the pull request
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6.0.5
uses: peter-evans/create-pull-request@v7.0.5
with:
commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations (automated)'

View File

@@ -1,7 +1,6 @@
name: Crowdin / Upload translations
on:
merge_group:
push:
branches:
- 'main'
@@ -19,7 +18,7 @@ on:
jobs:
upload-translations:
runs-on: ubuntu-latest
if: github.repository == 'mastodon/mastodon'
if: github.repository == 'glitch-soc/mastodon'
steps:
- name: Checkout
@@ -32,7 +31,7 @@ jobs:
upload_sources: true
upload_translations: false
download_translations: false
crowdin_branch_name: main
crowdin_branch_name: ${{ github.base_ref || github.ref_name }}
env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}

View File

@@ -20,7 +20,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64 # Testing only on native platform so it is performant
cache: true
build-image-streaming:
@@ -31,5 +30,4 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64 # Testing only on native platform so it is performant
cache: true

View File

@@ -32,6 +32,8 @@ jobs:
postgres:
- 14-alpine
- 15-alpine
- 16-alpine
- 17-alpine
services:
postgres:

View File

@@ -42,11 +42,24 @@ jobs:
with:
onlyProduction: 'true'
- name: Cache assets from compilation
uses: actions/cache@v4
with:
path: |
public/assets
public/packs
public/packs-test
tmp/cache/webpacker
key: ${{ matrix.mode }}-assets-${{ github.head_ref || github.ref_name }}-${{ github.sha }}
restore-keys: |
${{ matrix.mode }}-assets-${{ github.head_ref || github.ref_name }}-${{ github.sha }}
${{ matrix.mode }}-assets-${{ github.head_ref || github.ref_name }}
${{ matrix.mode }}-assets-main
${{ matrix.mode }}-assets
- name: Precompile assets
# Previously had set this, but it's not supported
# export NODE_OPTIONS=--openssl-legacy-provider
run: |-
./bin/rails assets:precompile
bin/rails assets:precompile
- name: Archive asset artifacts
run: |
@@ -114,6 +127,7 @@ jobs:
- '3.1'
- '3.2'
- '.ruby-version'
- '3.4'
steps:
- uses: actions/checkout@v4
@@ -130,13 +144,26 @@ jobs:
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg libpam-dev
additional-system-dependencies: ffmpeg imagemagick libpam-dev
- name: Load database schema
run: |
bin/rails db:setup
bin/flatware fan bin/rails db:test:prepare
- name: Cache RSpec persistence file
uses: actions/cache@v4
with:
path: |
tmp/rspec/examples.txt
key: rspec-persistence-${{ github.head_ref || github.ref_name }}-${{ github.sha }}
restore-keys: |
rspec-persistence-${{ github.head_ref || github.ref_name }}-${{ github.sha }}-${{ matrix.ruby-version }}
rspec-persistence-${{ github.head_ref || github.ref_name }}-${{ github.sha }}
rspec-persistence-${{ github.head_ref || github.ref_name }}
rspec-persistence-main
rspec-persistence
- run: bin/flatware rspec -r ./spec/flatware_helper.rb
- name: Upload coverage reports to Codecov
@@ -203,6 +230,7 @@ jobs:
- '3.1'
- '3.2'
- '.ruby-version'
- '3.4'
steps:
- uses: actions/checkout@v4
@@ -219,7 +247,7 @@ jobs:
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg libpam-dev libyaml-dev
additional-system-dependencies: ffmpeg libpam-dev
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
@@ -282,6 +310,7 @@ jobs:
- '3.1'
- '3.2'
- '.ruby-version'
- '3.4'
steps:
- uses: actions/checkout@v4
@@ -299,7 +328,7 @@ jobs:
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg
additional-system-dependencies: ffmpeg imagemagick
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
@@ -399,6 +428,7 @@ jobs:
- '3.1'
- '3.2'
- '.ruby-version'
- '3.4'
search-image:
- docker.elastic.co/elasticsearch/elasticsearch:7.17.13
include:
@@ -419,7 +449,7 @@ jobs:
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg
additional-system-dependencies: ffmpeg imagemagick
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript

3
.gitignore vendored
View File

@@ -71,3 +71,6 @@ docker-compose.override.yml
# Ignore dotenv .local files
.env*.local
# Ignore local-only rspec configuration
.rspec-local

View File

@@ -1 +0,0 @@
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/.apt/lib/x86_64-linux-gnu:/app/.apt/usr/lib/x86_64-linux-gnu/mesa:/app/.apt/usr/lib/x86_64-linux-gnu/pulseaudio:/app/.apt/usr/lib/x86_64-linux-gnu/openblas-pthread

1
.rspec
View File

@@ -1,3 +1,2 @@
--color
--require spec_helper
--format Fuubar

View File

@@ -7,8 +7,13 @@ RSpec/Focus: # Require full spec run on CI
Exclude: []
Rails/Output: # Remove any `puts` debugging
inherit_mode:
merge:
- Include
Enabled: true
Exclude: []
Include:
- spec/**/*.rb
Rails/FindEach: # Using `each` could impact performance, use `find_each`
Enabled: true

View File

@@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-offense-counts --no-auto-gen-timestamp`
# using RuboCop version 1.65.0.
# using RuboCop version 1.66.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@@ -35,7 +35,6 @@ Rails/OutputSafety:
# Configuration parameters: AllowedVars.
Style/FetchEnvVar:
Exclude:
- 'app/lib/redis_configuration.rb'
- 'app/lib/translation_service.rb'
- 'config/environments/production.rb'
- 'config/initializers/2_limited_federation_mode.rb'
@@ -44,7 +43,6 @@ Style/FetchEnvVar:
- 'config/initializers/devise.rb'
- 'config/initializers/paperclip.rb'
- 'config/initializers/vapid.rb'
- 'lib/mastodon/redis_config.rb'
- 'lib/tasks/repo.rake'
# This cop supports safe autocorrection (--autocorrect).
@@ -93,7 +91,6 @@ Style/OptionalBooleanParameter:
- 'app/services/fetch_resource_service.rb'
- 'app/workers/domain_block_worker.rb'
- 'app/workers/unfollow_follow_worker.rb'
- 'lib/mastodon/redis_config.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.

View File

@@ -1 +1 @@
3.3.4
3.3.5

10
Aptfile
View File

@@ -1,5 +1,5 @@
ffmpeg
libopenblas0-pthread
libpq-dev
libxdamage1
libxfixes3
libidn12
# for idn-ruby on heroku-24 stack
# use https://github.com/heroku/heroku-buildpack-activestorage-preview
# in place for ffmpeg and its dependent packages to reduce slag size

View File

@@ -2,7 +2,312 @@
All notable changes to this project will be documented in this file.
## [4.3.0] - UNRELEASED
## [4.3.16] - 2025-12-08
### Security
- Fix inconsistent error handling leaking information on existence of private posts ([GHSA-gwhw-gcjx-72v8](https://github.com/mastodon/mastodon/security/advisories/GHSA-gwhw-gcjx-72v8))
### Fixed
- Fix YouTube embeds by sending referer (#37126 by @ChaosExAnima)
- Fix YouTube iframe not being able to start at a defined time (#26584 by @BrunoViveiros)
- Fix known expensive S3 batch delete operation failing because of short timeouts (#37004 by @ClearlyClaire)
## [4.3.15] - 2025-11-20
### Fixed
- Fix `tootctl upgrade storage-schema` failing with `ArgumentError` (#36914 by @shugo)
- Fix old previously-undiscovered posts being treated as new when receiving an `Update` (#36848 by @ClearlyClaire)
## [4.3.14] - 2025-10-13
### Security
- Update dependencies `rack` and `uri`
- Fix streaming server connection not being closed on user suspension (by @ThisIsMissEm, [GHSA-r2fh-jr9c-9pxh](https://github.com/mastodon/mastodon/security/advisories/GHSA-r2fh-jr9c-9pxh))
- Fix password change through admin CLI not invalidating existing sessions and access tokens (by @ThisIsMissEm, [GHSA-f3q3-rmf7-9655](https://github.com/mastodon/mastodon/security/advisories/GHSA-f3q3-rmf7-9655))
- Fix streaming server allowing access to public timelines even without the `read` or `read:statuses` OAuth scopes (by @ThisIsMissEm, [GHSA-7gwh-mw97-qjgp](https://github.com/mastodon/mastodon/security/advisories/GHSA-7gwh-mw97-qjgp))
### Fixed
- Fix redirect to external object when URL is missing or malformed (#36347 by @ClearlyClaire)
## [4.3.13] - 2025-09-23
### Security
- Update dependencies
### Fixed
- Fix processing of out-of-order `Update` as implicit updates (#36190 by @ClearlyClaire)
- Fix getting `Create` and `Update` out of order (#36176 by @ClearlyClaire)
## [4.3.12] - 2025-09-16
### Security
- Update dependencies
### Fixed
- Fix processing of remote edited statuses with new media and no text (#35970 by @unfokus)
- Fix “Edit” and “Delete & Redraft” on a poll not inserting empty option (#35892 by @ClearlyClaire)
- Fix self-destruct scheduler behavior on some Redis setups (#35823 by @ClearlyClaire)
## [4.3.11] - 2025-08-05
### Security
- Update dependencies
- Fix incorrect rate-limit handling [GHSA-84ch-6436-c7mg](https://github.com/mastodon/mastodon/security/advisories/GHSA-84ch-6436-c7mg)
### Fixed
- Fix race condition caused by ActiveRecord query cache in `Create` critical path (#35662 by @ClearlyClaire)
- Fix WebUI crashing for accounts with `null` URL (#35651 by @ClearlyClaire)
- Fix friends-of-friends recommendations suggesting already-requested accounts (#35604 by @ClearlyClaire)
## [4.3.10] - 2025-07-23
### Security
- Updated dependencies
## [4.3.9] - 2025-07-02
### Changed
- Change passthrough video processing to emit `moov` atom at start of video (#34726 by @ClearlyClaire)
### Fixed
- Fix `NoMethodError` in edge case of emoji cache handling (#34749 by @dariusk)
- Fix error when viewing statuses to deleted replies in moderation view (#32986 by @ClearlyClaire)
- Fix search operators sometimes getting lost (#35190 by @ClearlyClaire)
- Fix “Alt text” button submitting form in moderation interface (#35147 by @ClearlyClaire)
- Fix handling of remote attachments with multiple media types (#34996 by @ClearlyClaire)
- Fix blocked accounts not being automatically removed from trending statuses (#34891 by @ClearlyClaire)
- Fix inconsistent filtering of silenced accounts for other silenced accounts (#34863 by @ClearlyClaire)
- Fix handling of inlined `featured` collections in ActivityPub actor objects (#34789 and #34811 by @ClearlyClaire)
- Fix admin dashboard crash on specific Elasticsearch connection errors (#34683 by @ClearlyClaire)
- Fix OIDC account creation failing for long display names (#34639 by @defnull)
- Fix `/share` not using server-set characters limit (#33459 by @kescherCode)
- Fix wrong video dimensions for some rotated videos (#33008 and #33261 by @Gargron and @tribela)
- Fix missing autofocus on boost modal (#32953 by @tribela)
## [4.3.8] - 2025-05-06
### Security
- Update dependencies
- Check scheme on account, profile, and media URLs ([GHSA-x2rc-v5wx-g3m5](https://github.com/mastodon/mastodon/security/advisories/GHSA-x2rc-v5wx-g3m5))
### Added
- Add warning for REDIS_NAMESPACE deprecation at startup (#34581 by @ClearlyClaire)
- Add built-in context for interaction policies (#34574 by @ClearlyClaire)
### Changed
- Change activity distribution error handling to skip retrying for deleted accounts (#33617 by @ClearlyClaire)
### Removed
- Remove double-query for signed query strings (#34610 by @ClearlyClaire)
### Fixed
- Fix incorrect redirect in response to unauthenticated API requests in limited federation mode (#34549 by @ClearlyClaire)
- Fix sign-up e-mail confirmation page reloading on error or redirect (#34548 by @ClearlyClaire)
## [4.3.7] - 2025-04-02
### Added
- Add delay to profile updates to debounce them (#34137 by @ClearlyClaire)
- Add support for paginating partial collections in `SynchronizeFollowersService` (#34272 and #34277 by @ClearlyClaire)
### Changed
- Change account suspensions to be federated to recently-followed accounts as well (#34294 by @ClearlyClaire)
- Change `AccountReachFinder` to consider statuses based on suspension date (#32805 and #34291 by @ClearlyClaire and @mjankowski)
- Change user archive signed URL TTL from 10 seconds to 1 hour (#34254 by @ClearlyClaire)
### Fixed
- Fix static version of animated PNG emojis not being properly extracted (#34337 by @ClearlyClaire)
- Fix filters not applying in detailed view, favourites and bookmarks (#34259 and #34260 by @ClearlyClaire)
- Fix handling of malformed/unusual HTML (#34201 by @ClearlyClaire)
- Fix `CacheBuster` being queued for missing media attachments (#34253 by @ClearlyClaire)
- Fix incorrect URL being used when cache busting (#34189 by @ClearlyClaire)
- Fix streaming server refusing unix socket path in `DATABASE_URL` (#34091 by @ClearlyClaire)
- Fix “x” hotkey not working on boosted filtered posts (#33758 by @ClearlyClaire)
## [4.3.6] - 2025-03-13
### Security
- Update dependency `omniauth-saml`
- Update dependency `rack`
### Fixed
- Fix Stoplight errors when using `REDIS_NAMESPACE` (#34126 by @ClearlyClaire)
## [4.3.5] - 2025-03-10
### Changed
- Change hashtag suggestion to prefer personal history capitalization (#34070 by @ClearlyClaire)
### Fixed
- Fix processing errors for some HEIF images from iOS 18 (#34086 by @renchap)
- Fix streaming server not filtering unknown-language posts from public timelines (#33774 by @ClearlyClaire)
- Fix preview cards under Content Warnings not being shown in detailed statuses (#34068 by @ClearlyClaire)
- Fix username and display name being hidden on narrow screens in moderation interface (#33064 by @ClearlyClaire)
## [4.3.4] - 2025-02-27
### Security
- Update dependencies
- Change HTML sanitization to remove unusable and unused `embed` tag (#34021 by @ClearlyClaire, [GHSA-mq2m-hr29-8gqf](https://github.com/mastodon/mastodon/security/advisories/GHSA-mq2m-hr29-8gqf))
- Fix rate-limit on sign-up email verification ([GHSA-v39f-c9jj-8w7h](https://github.com/mastodon/mastodon/security/advisories/GHSA-v39f-c9jj-8w7h))
- Fix improper disclosure of domain blocks to unverified users ([GHSA-94h4-fj37-c825](https://github.com/mastodon/mastodon/security/advisories/GHSA-94h4-fj37-c825))
### Changed
- Change preview cards to be shown when Content Warnings are expanded (#33827 by @ClearlyClaire)
- Change warnings against changing encryption secrets to be even more noticeable (#33631 by @ClearlyClaire)
- Change `mastodon:setup` to prevent overwriting already-configured servers (#33603, #33616, and #33684 by @ClearlyClaire and @mjankowski)
- Change notifications from moderators to not be filtered (#32974 and #33654 by @ClearlyClaire and @mjankowski)
### Fixed
- Fix `GET /api/v2/notifications/:id` and `POST /api/v2/notifications/:id/dismiss` for ungrouped notifications (#33990 by @ClearlyClaire)
- Fix issue with some versions of libvips on some systems (#33853 by @kleisauke)
- Fix handling of duplicate mentions in incoming status `Update` (#33911 by @ClearlyClaire)
- Fix inefficiencies in timeline generation (#33839 and #33842 by @ClearlyClaire)
- Fix emoji rewrite adding unnecessary curft to the DOM for most emoji (#33818 by @ClearlyClaire)
- Fix `tootctl feeds build` not building list timelines (#33783 by @ClearlyClaire)
- Fix flaky test in `/api/v2/notifications` tests (#33773 by @ClearlyClaire)
- Fix incorrect signature after HTTP redirect (#33757 and #33769 by @ClearlyClaire)
- Fix polls not being validated on edition (#33755 by @ClearlyClaire)
- Fix media preview height in compose form when 3 or more images are attached (#33571 by @ClearlyClaire)
- Fix preview card sizing in “Author attribution” in profile settings (#33482 by @ClearlyClaire)
- Fix processing of incoming notifications for unfilterable types (#33429 by @ClearlyClaire)
- Fix featured tags for remote accounts not being kept up to date (#33372, #33406, and #33425 by @ClearlyClaire and @mjankowski)
- Fix notification polling showing a loading bar in web UI (#32960 by @Gargron)
- Fix accounts table long display name (#29316 by @WebCoder49)
- Fix exclusive lists interfering with notifications (#28162 by @ShadowJonathan)
## [4.3.3] - 2025-01-16
### Security
- Fix insufficient validation of account URIs ([GHSA-5wxh-3p65-r4g6](https://github.com/mastodon/mastodon/security/advisories/GHSA-5wxh-3p65-r4g6))
- Update dependencies
### Fixed
- Fix `libyaml` missing from `Dockerfile` build stage (#33591 by @vmstan)
- Fix incorrect notification settings migration for non-followers (#33348 by @ClearlyClaire)
- Fix down clause for notification policy v2 migrations (#33340 by @jesseplusplus)
- Fix error decrementing status count when `FeaturedTags#last_status_at` is `nil` (#33320 by @ClearlyClaire)
- Fix last paginated notification group only including data on a single notification (#33271 by @ClearlyClaire)
- Fix processing of mentions for post edits with an existing corresponding silent mention (#33227 by @ClearlyClaire)
- Fix deletion of unconfirmed users with Webauthn set (#33186 by @ClearlyClaire)
- Fix empty authors preview card serialization (#33151, #33466 by @mjankowski and @ClearlyClaire)
## [4.3.2] - 2024-12-03
### Added
- Add `tootctl feeds vacuum` (#33065 by @ClearlyClaire)
- Add error message when user tries to follow their own account (#31910 by @lenikadali)
- Add client_secret_expires_at to OAuth Applications (#30317 by @ThisIsMissEm)
### Changed
- Change design of Content Warnings and filters (#32543 by @ClearlyClaire)
### Fixed
- Fix processing incoming post edits with mentions to unresolvable accounts (#33129 by @ClearlyClaire)
- Fix error when including multiple instances of `embed.js` (#33107 by @YKWeyer)
- Fix inactive users' timelines being backfilled on follow and unsuspend (#33094 by @ClearlyClaire)
- Fix direct inbox delivery pushing posts into inactive followers' timelines (#33067 by @ClearlyClaire)
- Fix `TagFollow` records not being correctly handled in account operations (#33063 by @ClearlyClaire)
- Fix pushing hashtag-followed posts to feeds of inactive users (#33018 by @Gargron)
- Fix duplicate notifications in notification groups when using slow mode (#33014 by @ClearlyClaire)
- Fix posts made in the future being allowed to trend (#32996 by @ClearlyClaire)
- Fix uploading higher-than-wide GIF profile picture with libvips enabled (#32911 by @ClearlyClaire)
- Fix domain attribution field having autocorrect and autocapitalize enabled (#32903 by @ClearlyClaire)
- Fix titles being escaped twice (#32889 by @ClearlyClaire)
- Fix list creation limit check (#32869 by @ClearlyClaire)
- Fix error in `tootctl email_domain_blocks` when supplying `--with-dns-records` (#32863 by @mjankowski)
- Fix `min_id` and `max_id` causing error in search API (#32857 by @Gargron)
- Fix inefficiencies when processing removal of posts that use featured tags (#32787 by @ClearlyClaire)
- Fix alt-text pop-in not using the translated description (#32766 by @ClearlyClaire)
- Fix preview cards with long titles erroneously causing layout changes (#32678 by @ClearlyClaire)
- Fix embed modal layout on mobile (#32641 by @DismalShadowX)
- Fix and improve batch attachment deletion handling when using OpenStack Swift (#32637 by @hugogameiro)
- Fix blocks not being applied on link timeline (#32625 by @tribela)
- Fix follow counters being incorrectly changed (#32622 by @oneiros)
- Fix 'unknown' media attachment type rendering (#32613 and #32713 by @ThisIsMissEm and @renatolond)
- Fix tl language native name (#32606 by @seav)
### Security
- Update dependencies
## [4.3.1] - 2024-10-21
### Added
- Add more explicit explanations about author attribution and `fediverse:creator` (#32383 by @ClearlyClaire)
- Add ability to group follow notifications in WebUI, can be disabled in the column settings (#32520 by @renchap)
- Add back a 6 hours mute duration option (#32522 by @renchap)
- Add note about not changing ActiveRecord encryption secrets once they are set (#32413, #32476, #32512, and #32537 by @ClearlyClaire and @mjankowski)
### Changed
- Change translation feature to translate to selected regional variant (e.g. pt-BR) if available (#32428 by @c960657)
### Removed
- Remove ability to get embed code for remote posts (#32578 by @ClearlyClaire)\
Getting the embed code is only reliable for local posts.\
It never worked for non-Mastodon servers, and stopped working correctly with the changes made in 4.3.0.\
We have therefore decided to remove the menu entry while we investigate solutions.
### Fixed
- Fix follow recommendation moderation page default language when using regional variant (#32580 by @ClearlyClaire)
- Fix column-settings spacing in local timeline in advanced view (#32567 by @lindwurm)
- Fix broken i18n in text welcome mailer tags area (#32571 by @mjankowski)
- Fix missing or incorrect cache-control headers for Streaming server (#32551 by @ThisIsMissEm)
- Fix only the first paragraph being displayed in some notifications (#32348 by @ClearlyClaire)
- Fix reblog icons on account media view (#32506 by @tribela)
- Fix Content-Security-Policy not allowing OpenStack SWIFT object storage URI (#32439 by @kenkiku1021)
- Fix back arrow pointing to the incorrect direction in RTL languages (#32485 by @renchap)
- Fix streaming server using `REDIS_USERNAME` instead of `REDIS_USER` (#32493 by @ThisIsMissEm)
- Fix follow recommendation carrousel scrolling on RTL layouts (#32462 and #32505 by @ClearlyClaire)
- Fix follow recommendation suppressions not applying immediately (#32392 by @ClearlyClaire)
- Fix language of push notifications (#32415 by @ClearlyClaire)
- Fix mute duration not being shown in list of muted accounts in web UI (#32388 by @ClearlyClaire)
- Fix “Mark every notification as read” not updating the read marker if scrolled down (#32385 by @ClearlyClaire)
- Fix “Mention” appearing for otherwise filtered posts (#32356 by @ClearlyClaire)
- Fix notification requests from suspended accounts still being listed (#32354 by @ClearlyClaire)
- Fix list edition modal styling (#32358 and #32367 by @ClearlyClaire and @vmstan)
- Fix 4 columns barely not fitting on 1920px screen (#32361 by @ClearlyClaire)
- Fix icon alignment in applications list (#32293 by @mjankowski)
## [4.3.0] - 2024-10-08
The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by @mjankowski.
@@ -10,21 +315,25 @@ The following changelog entries focus on changes visible to users, administrator
- **Add confirmation interstitial instead of silently redirecting logged-out visitors to remote resources** (#27792, #28902, and #30651 by @ClearlyClaire and @Gargron)\
This fixes a longstanding open redirect in Mastodon, at the cost of added friction when local links to remote resources are shared.
- Fix ReDoS vulnerability on some Ruby versions ([GHSA-jpxp-r43f-rhvx](https://github.com/mastodon/mastodon/security/advisories/GHSA-jpxp-r43f-rhvx))
- Change `form-action` Content-Security-Policy directive to be more restrictive (#26897 and #32241 by @ClearlyClaire)
- Update dependencies
### Added
- **Add experimental server-side notification grouping** (#29889, #30576, #30685, #30688, #30707, #30776, #30779, #30781, #30440, #31062, #31098, #31076, #31111, #31123, #31223, #31214, #31224, #31299, #31325, #31347, #31304, #31326, #31384, #31403, #31433, #31509, #31486, and #31513 by @ClearlyClaire, @mgmn, and @renchap)\
- **Add server-side notification grouping** (#29889, #30576, #30685, #30688, #30707, #30776, #30779, #30781, #30440, #31062, #31098, #31076, #31111, #31123, #31223, #31214, #31224, #31299, #31325, #31347, #31304, #31326, #31384, #31403, #31433, #31509, #31486, #31513, #31592, #31594, #31638, #31746, #31652, #31709, #31725, #31745, #31613, #31657, #31840, #31610, #31929, #32089, #32085, #32243, #32179 and #32254 by @ClearlyClaire, @Gargron, @mgmn, and @renchap)\
Group notifications of the same type for the same target, so that your notifications no longer get cluttered by boost and favorite notifications as soon as a couple of your posts get traction.\
This is done server-side so that clients can efficiently get relevant groups without having to go through numerous pages of individual notifications.\
As part of this, the visual design of the entire notifications feature has been revamped.\
This feature is intended to eventually replace the existing notifications column, but for this first beta, users will have to enable it in the “Experimental features” section of the notifications column settings.\
The API is not final yet, but it consists of:
- a new `group_key` attribute to `Notification` entities
- `GET /api/v2_alpha/notifications`: https://docs.joinmastodon.org/methods/notifications_alpha/#get-grouped
- `GET /api/v2_alpha/notifications/:group_key`: https://docs.joinmastodon.org/methods/notifications_alpha/#get-notification-group
- `POST /api/v2_alpha/notifications/:group_key/dimsiss`: https://docs.joinmastodon.org/methods/notifications_alpha/#dismiss-group
- `GET /api/v2_alpha/notifications/:unread_count`: https://docs.joinmastodon.org/methods/notifications_alpha/#unread-group-count
- **Add notification policies, filtered notifications and notification requests** (#29366, #29529, #29433, #29565, #29567, #29572, #29575, #29588, #29646, #29652, #29658, #29666, #29693, #29699, #29737, #29706, #29570, #29752, #29810, #29826, #30114, #30251, #30559, #29868, #31008, #31011, #30996, #31149, #31220, #31222, #31225, #31242, #31262, #31250, #31273, #31310, #31316, #31322, #31329, #31324, #31331, #31343, #31342, #31309, #31358, #31378, #31406, #31256, #31456, #31419, #31457, #31508, #31540, and #31541 by @ClearlyClaire, @Gargron, @TheEssem, @mgmn, @oneiros, and @renchap)\
- `GET /api/v2/notifications`: https://docs.joinmastodon.org/methods/grouped_notifications/#get-grouped
- `GET /api/v2/notifications/:group_key`: https://docs.joinmastodon.org/methods/grouped_notifications/#get-notification-group
- `GET /api/v2/notifications/:group_key/accounts`: https://docs.joinmastodon.org/methods/grouped_notifications/#get-group-accounts
- `POST /api/v2/notifications/:group_key/dimsiss`: https://docs.joinmastodon.org/methods/grouped_notifications/#dismiss-group
- `GET /api/v2/notifications/:unread_count`: https://docs.joinmastodon.org/methods/grouped_notifications/#unread-group-count
- **Add notification policies, filtered notifications and notification requests** (#29366, #29529, #29433, #29565, #29567, #29572, #29575, #29588, #29646, #29652, #29658, #29666, #29693, #29699, #29737, #29706, #29570, #29752, #29810, #29826, #30114, #30251, #30559, #29868, #31008, #31011, #30996, #31149, #31220, #31222, #31225, #31242, #31262, #31250, #31273, #31310, #31316, #31322, #31329, #31324, #31331, #31343, #31342, #31309, #31358, #31378, #31406, #31256, #31456, #31419, #31457, #31508, #31540, #31541, #31723, #32062 and #32281 by @ClearlyClaire, @Gargron, @TheEssem, @mgmn, @oneiros, and @renchap)\
The old “Block notifications from non-followers”, “Block notifications from people you don't follow” and “Block direct messages from people you don't follow” notification settings have been replaced by a new set of settings found directly in the notification column.\
You can now separately filter or drop notifications from people you don't follow, people who don't follow you, accounts created within the past 30 days, as well as unsolicited private mentions, and accounts limited by the moderation.\
Instead of being outright dropped, notifications that you chose to filter are put in a separate “Filtered notifications” box that you can review separately without it clogging your main notifications.\
@@ -47,7 +356,7 @@ The following changelog entries focus on changes visible to users, administrator
- **Add notifications of severed relationships** (#27511, #29665, #29668, #29670, #29700, #29714, #29712, and #29731 by @ClearlyClaire and @Gargron)\
Notify local users when they lose relationships as a result of a local moderator blocking a remote account or server, allowing the affected user to retrieve the list of broken relationships.\
Note that this does not notify remote users.\
This adds the `severed_relationships` notification type to the REST API and streaming, with a new [`relationship_severance_event` attribute](https://docs.joinmastodon.org/entities/Notification/#relationship_severance_event).
This adds the `severed_relationships` notification type to the REST API and streaming, with a new [`event` attribute](https://docs.joinmastodon.org/entities/Notification/#relationship_severance_event).
- **Add hover cards in web UI** (#30754, #30864, #30850, #30879, #30928, #30949, #30948, #30931, and #31300 by @ClearlyClaire, @Gargron, and @renchap)\
Hovering over an avatar or username will now display a hover card with the first two lines of the user's description and their first two profile fields.\
This can be disabled in the “Animations and accessibility” section of the preferences.
@@ -57,26 +366,35 @@ The following changelog entries focus on changes visible to users, administrator
- **Add timeline of public posts about a trending link** (#30381 and #30840 by @Gargron)\
You can now see public posts mentioning currently-trending articles from people who have opted into discovery features.\
This adds a new REST API endpoint: https://docs.joinmastodon.org/methods/timelines/#link
- **Add author highlight for news articles whose authors are on the fediverse** (#30398, #30670, #30521, and #30846 by @Gargron)\
- **Add author highlight for news articles whose authors are on the fediverse** (#30398, #30670, #30521, #30846, #31819, #31900 and #32188 by @Gargron, @mjankowski and @oneiros)\
This adds a mechanism to [highlight the author of news articles](https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/) shared on Mastodon.\
Articles hosted outside the fediverse can indicate a fediverse author with a meta tag:
```html
<meta name="fediverse:creator" content="username@domain" />
```
On the API side, this is represented by a new `authors` attribute to the `PreviewCard` entity: https://docs.joinmastodon.org/entities/PreviewCard/#authors\
Note that this feature is still work in progress and the tagging format and verification mechanisms may change in future releases.
On the API side, this is represented by a new `authors` attribute to the `PreviewCard` entity: https://docs.joinmastodon.org/entities/PreviewCard/#authors \
Users can allow arbitrary domains to use `fediverse:creator` to credit them by visiting `/settings/verification`.\
This is federated as a new `attributionDomains` property in the `http://joinmastodon.org/ns` namespace, containing an array of domain names: https://docs.joinmastodon.org/spec/activitypub/#properties-used-1
- **Add in-app notifications for moderation actions and warnings** (#30065, #30082, and #30081 by @ClearlyClaire)\
In addition to email notifications, also notify users of moderation actions or warnings against them directly within the app, so they are less likely to miss important communication from their moderators.\
This adds the `moderation_warning` notification type to the REST API and streaming, with a new [`moderation_warning` attribute](https://docs.joinmastodon.org/entities/Notification/#moderation_warning).
- **Add domain information to profiles in web UI** (#29602 by @Gargron)\
Clicking the domain of a user in their profile will now open a tooltip with a short explanation about servers and federation.
- Add ability to reorder uploaded media before posting in web UI (#28456 by @Gargron)
- **Add support for Redis sentinel** (#31694, #31623, #31744, #31767, and #31768 by @ThisIsMissEm and @oneiros)\
See https://docs.joinmastodon.org/admin/scaling/#redis-sentinel
- **Add ability to reorder uploaded media before posting in web UI** (#28456 and #32093 by @Gargron)
- Add “A Mastodon update is available.” message on admin dashboard for non-bugfix updates (#32106 by @ClearlyClaire)
- Add ability to view alt text by clicking the ALT badge in web UI (#32058 by @Gargron)
- Add preview of followers removed in domain block modal in web UI (#32032 and #32105 by @ClearlyClaire and @Gargron)
- Add reblogs and favourites counts to statuses in ActivityPub (#32007 by @Gargron)
- Add moderation interface for searching hashtags (#30880 by @ThisIsMissEm)
- Add ability for admins to configure instance favicon and logo (#30040, #30208, #30259, #30375, #30734, #31016, and #30205 by @ClearlyClaire, @FawazFarid, @JasonPunyon, @mgmn, and @renchap)\
This is also exposed through the REST API: https://docs.joinmastodon.org/entities/Instance/#icon
- Add `api_versions` to `/api/v2/instance` (#31354 by @ClearlyClaire)\
Add API version number to make it easier for clients to detect compatible features going forward.\
See API documentation at https://docs.joinmastodon.org/entities/Instance/#api-versions
- Add quick links to Administration and Moderation Reports from Web UI (#24838 by @ThisIsMissEm)
- Add link to `/admin/roles` in moderation interface when changing someone's role (#31791 by @ClearlyClaire)
- Add recent audit log entries in federation moderation interface (#27386 by @ThisIsMissEm)
- Add profile setup to onboarding in web UI (#27829, #27876, and #28453 by @Gargron)
- Add prominent share/copy button on profiles in web UI (#27865 and #27889 by @ClearlyClaire and @Gargron)
@@ -113,17 +431,19 @@ The following changelog entries focus on changes visible to users, administrator
- Add support for multiple `redirect_uris` when creating OAuth 2.0 Applications (#29192 by @ThisIsMissEm)
- Add Interlingue and Interlingua to interface languages (#28630 and #30828 by @Dhghomon and @renchap)
- Add Kashubian, Pennsylvania Dutch, Vai, Jawi Malay, Mohawk and Low German to posting languages (#26024, #26634, #27136, #29098, #27115, and #27434 by @EngineerDali, @HelgeKrueger, and @gunchleoc)
- Add validations to `Web::PushSubscription` (#30540 and #30542 by @ThisIsMissEm)
- Add option to use native Ruby driver for Redis through `REDIS_DRIVER=ruby` (#30717 by @vmstan)
- Add support for libvips in addition to ImageMagick (#30090, #30590, #30597, #30632, #30857, #30869, and #30858 by @ClearlyClaire, @Gargron, and @mjankowski)\
- Add support for libvips in addition to ImageMagick (#30090, #30590, #30597, #30632, #30857, #30869, #30858 and #32104 by @ClearlyClaire, @Gargron, and @mjankowski)\
Server admins can now use libvips as a faster and lighter alternative to ImageMagick for processing user-uploaded images.\
This requires libvips 8.13 or newer, and needs to be enabled with `MASTODON_USE_LIBVIPS=true`.\
This is enabled by default in the official Docker images, and is intended to completely replace ImageMagick in the future.
- Add validations to `Web::PushSubscription` (#30540 and #30542 by @ThisIsMissEm)
- Add anchors to each authorized application in `/oauth/authorized_applications` (#31677 by @fowl2)
- Add active animation to header settings button (#30221, #30307, and #30388 by @daudix)
- Add OpenTelemetry instrumentation (#30130, #30322, #30353, and #30350 by @julianocosta89, @renchap, and @robbkidd)\
- Add OpenTelemetry instrumentation (#30130, #30322, #30353, #30350 and #31998 by @julianocosta89, @renchap, @robbkidd and @timetinytim)\
See https://docs.joinmastodon.org/admin/config/#otel for documentation
- Add API to get multiple accounts and statuses (#27871 and #30465 by @ClearlyClaire)\
This adds `GET /api/v1/accounts` and `GET /api/v1/statuses` to the REST API, see https://docs.joinmastodon.org/methods/accounts/#index and https://docs.joinmastodon.org/methods/statuses/#index
- Add support for CORS to `POST /oauth/revoke` (#31743 by @ClearlyClaire)
- Add redirection back to previous page after site upload deletion (#30141 by @FawazFarid)
- Add RFC8414 OAuth 2.0 server metadata (#29191 by @ThisIsMissEm)
- Add loading indicator and empty result message to advanced interface search (#30085 by @ClearlyClaire)
@@ -135,10 +455,12 @@ The following changelog entries focus on changes visible to users, administrator
- Add groundwork for annual reports for accounts (#28693 by @Gargron)\
This lays the groundwork for a “year-in-review”/“wrapped” style report for local users, but is currently not in use.
- Add notification email on invalid second authenticator (#28822 by @ClearlyClaire)
- Add date of account deletion in list of accounts in the admin interface (#25640 by @tribela)
- Add new emojis from `jdecked/twemoji` 15.0 (#28404 by @TheEssem)
- Add configurable error handling in attachment batch deletion (#28184 by @vmstan)\
This makes the S3 batch size configurable through the `S3_BATCH_DELETE_LIMIT` environment variable (defaults to 1000), and adds some retry logic, configurable through the `S3_BATCH_DELETE_RETRY` environment variable (defaults to 3).
- Add VAPID public key to instance serializer (#28006 by @ThisIsMissEm)
- Add support for serving JRD `/.well-known/host-meta.json` in addition to XRD host-meta (#32206 by @c960657)
- Add `nodeName` and `nodeDescription` to nodeinfo `metadata` (#28079 by @6543)
- Add Thai diacritics and tone marks in `HASHTAG_INVALID_CHARS_RE` (#26576 by @ppnplus)
- Add variable delay before link verification of remote account links (#27774 by @ClearlyClaire)
@@ -153,37 +475,53 @@ The following changelog entries focus on changes visible to users, administrator
### Changed
- **Change icons throughout the web interface** (#27385, #27539, #27555, #27579, #27700, #27817, #28519, #28709, #28064, #28775, #28780, #27924, #29294, #29395, #29537, #29569, #29610, #29612, #29649, #29844, #27780, #30974, #30963, #30962, #30961, #31362, #31363, #31359, #31371, #31360, #31512, #31511, and #31525 by @ClearlyClaire, @Gargron, @arbolitoloco1, @mjankowski, @nclm, @renchap, @ronilaukkarinen, and @zunda)\
- **Change icons throughout the web interface** (#27385, #27539, #27555, #27579, #27700, #27817, #28519, #28709, #28064, #28775, #28780, #27924, #29294, #29395, #29537, #29569, #29610, #29612, #29649, #29844, #27780, #30974, #30963, #30962, #30961, #31362, #31363, #31359, #31371, #31360, #31512, #31511, #31525, #32153, and #32201 by @ClearlyClaire, @Gargron, @arbolitoloco1, @mjankowski, @nclm, @renchap, @ronilaukkarinen, and @zunda)\
This changes all the interface icons from FontAwesome to Material Symbols for a more modern look, consistent with the official Mastodon Android app.\
In addition, better care is given to pixel alignment, and icon variants are used to better highlight active/inactive state.
- **Change design of compose form in web UI** (#28119, #29059, #29248, #29372, #29384, #29417, #29456, #29406, #29651, and #29659 by @ClearlyClaire, @Gargron, @eai04191, @hinaloe, and @ronilaukkarinen)\
- **Change design of compose form in web UI** (#28119, #29059, #29248, #29372, #29384, #29417, #29456, #29406, #29651, #29659, #31889 and #32033 by @ClearlyClaire, @Gargron, @eai04191, @hinaloe, and @ronilaukkarinen)\
The compose form has been completely redesigned for a more modern and consistent look, as well as spelling out the chosen privacy setting and language name at all times.\
As part of this, the “Unlisted” privacy setting has been renamed to “Quiet public”.
- **Change design of confirmation modals in the web UI** (#29576, #29614, #29640, #29644, #30131, #30884, and #31399 by @ClearlyClaire, @Gargron, and @tribela)\
- **Change design of modals in the web UI** (#29576, #29614, #29640, #29644, #30131, #30884, #31399, #31555, #31752, #31801, #31883, #31844, #31864, and #31943 by @ClearlyClaire, @Gargron, @tribela and @vmstan)\
The mute, block, and domain block confirmation modals have been completely redesigned to be clearer and include more detailed information on the action to be performed.\
They also have a more modern and consistent design, along with other confirmation modals in the application.
- **Change colors throughout the web UI** (#29522, #29584, #29653, #29779, #29803, #29809, #29808, #29828, #31034, #31168, #31266, #31348, #31349, #31361, and #31510 by @ClearlyClaire, @Gargron, @renchap, and @vmstan)
- **Change onboarding prompt to follow suggestions carousel in web UI** (#28878 and #29272 by @Gargron)
- **Change email templates** (#28416, #28755, #28814, #29064, #28883, #29470, #29607, #29761, #29760, and #29879 by @ClearlyClaire, @Gargron, @hteumeuleu, and @mjankowski)\
All emails to end-users have been completely redesigned with a fresh new look, providing more information while making them easier to reand and keeping maximum compatibility across mail clients.
- **Change colors throughout the web UI** (#29522, #29584, #29653, #29779, #29803, #29809, #29808, #29828, #31034, #31168, #31266, #31348, #31349, #31361, #31510 and #32128 by @ClearlyClaire, @Gargron, @mjankowski, @renchap, and @vmstan)
- **Change onboarding prompt to follow suggestions carousel in web UI** (#28878, #29272, and #31912 by @Gargron)
- **Change email templates** (#28416, #28755, #28814, #29064, #28883, #29470, #29607, #29761, #29760, #29879, #32073 and #32132 by @c960657, @ClearlyClaire, @Gargron, @hteumeuleu, and @mjankowski)\
All emails to end-users have been completely redesigned with a fresh new look, providing more information while making them easier to read and keeping maximum compatibility across mail clients.
- **Change follow recommendations algorithm** (#28314, #28433, #29017, #29108, #29306, #29550, #29619, and #31474 by @ClearlyClaire, @Gargron, @kernal053, @mjankowski, and @wheatear-dev)\
This replaces the “past interactions” recommendation algorithm with a “friends of friends” algorithm that suggests accounts followed by people you follow, and a “similar profiles” algorithm that suggests accounts with a profile similar to your most recent follows.\
In addition, the implementation has been significantly reworked, and all follow recommendations are now dismissable.\
This change deprecates the `source` attribute in `Suggestion` entities in the REST API, and replaces it with the new [`sources` attribute](https://docs.joinmastodon.org/entities/Suggestion/#sources).
- Change account search algorithm (#30803 by @Gargron)
- **Change streaming server to use its own dependencies and its own docker image** (#24702, #27967, #26850, #28112, #28115, #28137, #28138, #28497, #28548, and #30795 by @TheEssem, @ThisIsMissEm, @jippi, @timetinytim, and @vmstan)\
- **Change streaming server to use its own dependencies and its own docker image** (#24702, #27967, #26850, #28112, #28115, #28137, #28138, #28497, #28548, #30795, #31612, and #31615 by @TheEssem, @ThisIsMissEm, @jippi, @renchap, @timetinytim, and @vmstan)\
In order to reduce the amount of runtime dependencies, the streaming server has been moved into a separate package and Docker image.\
The `mastodon` image does not contain the streaming server anymore, as it has been moved to its own `mastodon-streaming` image.\
Administrators may need to update their setup accordingly.
- Change how content warnings and filters are displayed in web UI (#31365 by @Gargron)
- Change how content warnings and filters are displayed in web UI (#31365, and #31761 by @Gargron)
- Change preview card processing to ignore `undefined` as canonical url (#31882 by @oneiros)
- Change embedded posts to use web UI (#31766, #32135 and #32271 by @Gargron)
- Change inner borders in media galleries in web UI (#31852 by @Gargron)
- Change design of media attachments and profile media tab in web UI (#31807, #32048, #31967, #32217, #32224 and #32257 by @ClearlyClaire and @Gargron)
- Change labels on thread indicators in web UI (#31806 by @Gargron)
- Change label of "Data export" menu item in settings interface (#32099 by @c960657)
- Change responsive break points on navigation panel in web UI (#32034 by @Gargron)
- Change cursor to `not-allowed` on disabled buttons (#32076 by @mjankowski)
- Change OAuth authorization prompt to not refer to apps as “third-party” (#32005 by @Gargron)
- Change Mastodon to issue correct HTTP signatures by default (#31994 by @ClearlyClaire)
- Change zoom icon in web UI (#29683 by @Gargron)
- Change directory page to use URL query strings for options (#31980, #31977 and #31984 by @ClearlyClaire and @renchap)
- Change report action buttons to be disabled when action has already been taken (#31773, #31822, and #31899 by @ClearlyClaire and @ThisIsMissEm)
- Change width of columns in advanced web UI (#31762 by @Gargron)
- Change design of unread conversations in web UI (#31763 by @Gargron)
- Change Web UI to allow viewing and severing relationships with suspended accounts (#27667 by @ClearlyClaire)\
This also adds a `with_suspended` parameter to `GET /api/v1/accounts/relationships` in the REST API.
- Change preview card image size limit from 2MB to 8MB when using libvips (#31904 by @ClearlyClaire)
- Change avatars border radius (#31390 by @renchap)
- Change counters to be displayed on profile timelines in web UI (#30525 by @Gargron)
- Change disabled buttons color in light mode to make the difference more visible (#30998 by @renchap)
- Change design of people tab on explore in web UI (#30059 by @Gargron)
- Change sidebar text in web UI (#30696 by @Gargron)
- Change "Follow" to "Follow back" and "Mutual" when appropriate in web UI (#28452 and #28465 by @Gargron and @renchap)
- Change "Follow" to "Follow back" and "Mutual" when appropriate in web UI (#28452, #28465, and #31934 by @ClearlyClaire, @Gargron and @renchap)
- Change media to be hidden/blurred by default in report modal (#28522 by @ClearlyClaire)
- Change order of the "muting" and "blocking" list options in “Data Exports” (#26088 by @fixermark)
- Change admin and moderation notes character limit from 500 to 2000 characters (#30288 by @ThisIsMissEm)
@@ -197,6 +535,7 @@ The following changelog entries focus on changes visible to users, administrator
- Change dropdown menu icon to not be replaced by close icon when open in web UI (#29532 by @Gargron)
- Change back button to always appear in advanced web UI (#29551 and #29669 by @Gargron)
- Change border of active compose field search inputs (#29832 and #29839 by @vmstan)
- Change instances of Nokogiri HTML4 parsing to HTML5 (#31812, #31815, #31813, and #31814 by @flavorjones)
- Change link detection to allow `@` at the end of an URL (#31124 by @adamniedzielski)
- Change User-Agent to use Mastodon as the product, and http.rb as platform details (#31192 by @ClearlyClaire)
- Change layout and wording of the Content Retention server settings page (#27733 by @vmstan)
@@ -233,6 +572,7 @@ The following changelog entries focus on changes visible to users, administrator
### Removed
- Remove unused E2EE messaging code and related `crypto` OAuth scope (#31193, #31945, #31963, and #31964 by @ClearlyClaire and @mjankowski)
- Remove StatsD integration (replaced by OpenTelemetry) (#30240 by @mjankowski)
- Remove `CacheBuster` default options (#30718 by @mjankowski)
- Remove home marker updates from the Web UI (#22721 by @davbeck)\
@@ -248,17 +588,41 @@ The following changelog entries focus on changes visible to users, administrator
- Fix log out from user menu not working on Safari (#31402 by @renchap)
- Fix various issues when in link preview card generation (#28748, #30017, #30362, #30173, #30853, #30929, #30933, #30957, #30987, and #31144 by @adamniedzielski, @oneiros, @phocks, @timothyjrogers, and @tribela)
- Fix handling of missing links in Webfinger responses (#31030 by @adamniedzielski)
- Fix error when accepting an appeal for sensitive posts deleted in the meantime (#32037 by @ClearlyClaire)
- Fix error when encountering reblog of deleted post in feed rebuild (#32001 by @ClearlyClaire)
- Fix Safari browser glitch related to horizontal scrolling (#31960 by @Gargron)
- Fix unresolvable mentions sometimes preventing processing incoming posts (#29215 by @tribela and @ClearlyClaire)
- Fix too many requests caused by relationship look-ups in web UI (#32042 by @Gargron)
- Fix links for reblogs in moderation interface (#31979 by @ClearlyClaire)
- Fix the appearance of avatars when they do not load (#31966 and #32270 by @Gargron and @renchap)
- Fix spurious error notifications for aborted requests in web UI (#31952 by @c960657)
- Fix HTTP 500 error in `/api/v1/polls/:id/votes` when required `choices` parameter is missing (#25598 by @danielmbrasil)
- Fix security context sometimes not being added in LD-Signed activities (#31871 by @ClearlyClaire)
- Fix cross-origin loading of `inert.css` polyfill (#30687 by @louis77)
- Fix wrapping in dashboard quick access buttons (#32043 by @renchap)
- Fix recently used tags hint being displayed in profile edition page when there is none (#32120 by @mjankowski)
- Fix checkbox lists on narrow screens in the settings interface (#32112 by @mjankowski)
- Fix the position of status action buttons being affected by interaction counters (#32084 by @renchap)
- Fix the summary of converted ActivityPub object types to be treated as HTML (#28629 by @Menrath)
- Fix cutoff of instance name in sign-up form (#30598 by @oneiros)
- Fix invalid date searches returning 503 errors (#31526 by @notchairmk)
- Fix invalid `visibility` values in `POST /api/v1/statuses` returning 500 errors (#31571 by @c960657)
- Fix some components re-rendering spuriously in web UI (#31879 and #31881 by @ClearlyClaire and @Gargron)
- Fix sort order of moderation notes on Reports and Accounts (#31528 by @ThisIsMissEm)
- Fix email language when recipient has no selected locale (#31747 by @ClearlyClaire)
- Fix frequently-used languages not correctly updating in the web UI (#31386 by @c960657)
- Fix `POST /api/v1/statuses` silently ignoring invalid `media_ids` parameter (#31681 by @c960657)
- Fix handling of the `BIND` environment variable in the streaming server (#31624 by @ThisIsMissEm)
- Fix empty `aria-hidden` attribute value in logo resources area (#30570 by @mjankowski)
- Fix “Redirect URI” field not being marked as required in “New application” form (#30311 by @ThisIsMissEm)
- Fix right-to-left text in preview cards (#30930 by @ClearlyClaire)
- Fix rack attack `match_type` value typo in logging config (#30514 by @mjankowski)
- Fix various cases of duplicate, missing, or inconsistent borders or scrollbar styles (#31068, #31286, #31268, #31275, #31284, #31305, #31346, #31372, #31373, #31389, #31432, #31391, and #31445 by @valtlai and @vmstan)
- Fix various cases of duplicate, missing, or inconsistent borders or scrollbar styles (#31068, #31286, #31268, #31275, #31284, #31305, #31346, #31372, #31373, #31389, #31432, #31391, #31445, #32091, #32147 and #32137 by @ClearlyClaire, @mjankowski, @valtlai and @vmstan)
- Fix editing description of media uploads with custom thumbnails (#32221 by @ClearlyClaire)
- Fix race condition in `POST /api/v1/push/subscription` (#30166 by @ClearlyClaire)
- Fix post deletion not being delayed when those are part of an account warning (#30163 by @ClearlyClaire)
- Fix rendering error on `/start` when not logged in (#30023 by @timothyjrogers)
- Fix unneeded requests to blocked domains when receiving relayed signed activities from them (#31161 by @ClearlyClaire)
- Fix logo pushing header buttons out of view on certain conditions in mobile layout (#29787 by @ClearlyClaire)
- Fix notification-related records not being reattributed when merging accounts (#29694 by @ClearlyClaire)
- Fix results/query in `api/v1/featured_tags/suggestions` (#29597 by @mjankowski)
@@ -268,6 +632,7 @@ The following changelog entries focus on changes visible to users, administrator
- Fix full date display not respecting the locale 12/24h format (#29448 by @renchap)
- Fix filters title and keywords overflow (#29396 by @GeopJr)
- Fix incorrect date format in “Follows and followers” (#29390 by @JasonPunyon)
- Fix navigation item active highlight for some paths (#32159 by @mjankowski)
- Fix “Edit media” modal sizing and layout when space-constrained (#27095 by @ronilaukkarinen)
- Fix modal container bounds (#29185 by @nico3333fr)
- Fix inefficient HTTP signature parsing using regexps and `StringScanner` (#29133 by @ClearlyClaire)

View File

@@ -12,7 +12,7 @@ ARG BUILDPLATFORM=${BUILDPLATFORM}
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.3.x"]
# renovate: datasource=docker depName=docker.io/ruby
ARG RUBY_VERSION="3.3.4"
ARG RUBY_VERSION="3.3.5"
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
# renovate: datasource=node-version depName=node
ARG NODE_MAJOR_VERSION="20"
@@ -92,6 +92,9 @@ RUN \
# Set /opt/mastodon as working directory
WORKDIR /opt/mastodon
# Add backport repository for some specific packages where we need the latest version
RUN echo 'deb http://deb.debian.org/debian bookworm-backports main' >> /etc/apt/sources.list
# hadolint ignore=DL3008,DL3005
RUN \
# Mount Apt cache and lib directories from Docker buildx caches
@@ -150,6 +153,7 @@ RUN \
libpq-dev \
libssl-dev \
libtool \
libyaml-dev \
meson \
nasm \
pkg-config \
@@ -160,7 +164,7 @@ RUN \
libexif-dev \
libexpat1-dev \
libgirepository1.0-dev \
libheif-dev \
libheif-dev/bookworm-backports \
libimagequant-dev \
libjpeg62-turbo-dev \
liblcms2-dev \
@@ -343,7 +347,7 @@ RUN \
# libvips components
libcgif0 \
libexif12 \
libheif1 \
libheif1/bookworm-backports \
libimagequant0 \
libjpeg62-turbo \
liblcms2-2 \

19
Gemfile
View File

@@ -47,7 +47,6 @@ gem 'color_diff', '~> 0.1'
gem 'csv', '~> 3.2'
gem 'discard', '~> 1.2'
gem 'doorkeeper', '~> 5.6'
gem 'ed25519', '~> 1.3'
gem 'fast_blank', '~> 1.0'
gem 'fastimage'
gem 'hiredis', '~> 0.6'
@@ -99,10 +98,10 @@ gem 'json-ld'
gem 'json-ld-preloaded', '~> 3.2'
gem 'rdf-normalize', '~> 0.5'
gem 'opentelemetry-api', '~> 1.3.0'
gem 'opentelemetry-api', '~> 1.4.0'
group :opentelemetry do
gem 'opentelemetry-exporter-otlp', '~> 0.28.0', require: false
gem 'opentelemetry-exporter-otlp', '~> 0.29.0', require: false
gem 'opentelemetry-instrumentation-active_job', '~> 0.7.1', require: false
gem 'opentelemetry-instrumentation-active_model_serializers', '~> 0.20.1', require: false
gem 'opentelemetry-instrumentation-concurrent_ruby', '~> 0.21.2', require: false
@@ -111,7 +110,7 @@ group :opentelemetry do
gem 'opentelemetry-instrumentation-http', '~> 0.23.2', require: false
gem 'opentelemetry-instrumentation-http_client', '~> 0.22.3', require: false
gem 'opentelemetry-instrumentation-net_http', '~> 0.22.4', require: false
gem 'opentelemetry-instrumentation-pg', '~> 0.28.0', require: false
gem 'opentelemetry-instrumentation-pg', '~> 0.29.0', require: false
gem 'opentelemetry-instrumentation-rack', '~> 0.24.1', require: false
gem 'opentelemetry-instrumentation-rails', '~> 0.31.0', require: false
gem 'opentelemetry-instrumentation-redis', '~> 0.25.3', require: false
@@ -126,9 +125,6 @@ group :test do
# Adds RSpec Error/Warning annotations to GitHub PRs on the Files tab
gem 'rspec-github', '~> 2.4', require: false
# RSpec progress bar formatter
gem 'fuubar', '~> 2.5'
# RSpec helpers for email specs
gem 'email_spec'
@@ -149,17 +145,22 @@ group :test do
gem 'rails-controller-testing', '~> 1.0'
# Validate schemas in specs
gem 'json-schema', '~> 4.0'
gem 'json-schema', '~> 5.0'
# Test harness fo rack components
gem 'rack-test', '~> 2.1'
gem 'shoulda-matchers'
# Coverage formatter for RSpec test if DISABLE_SIMPLECOV is false
gem 'simplecov', '~> 0.22', require: false
gem 'simplecov-lcov', '~> 0.8', require: false
# Stub web requests for specs
gem 'webmock', '~> 3.18'
# Websocket driver for testing integration between rails/sidekiq and streaming
gem 'websocket-driver', '~> 0.8', require: false
end
group :development do
@@ -210,7 +211,7 @@ group :development, :test do
gem 'test-prof'
# RSpec runner for rails
gem 'rspec-rails', '~> 6.0'
gem 'rspec-rails', '~> 7.0'
end
group :production do

View File

@@ -10,35 +10,35 @@ GIT
GEM
remote: https://rubygems.org/
specs:
actioncable (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
actioncable (7.1.5.2)
actionpack (= 7.1.5.2)
activesupport (= 7.1.5.2)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
actionmailbox (7.1.5.2)
actionpack (= 7.1.5.2)
activejob (= 7.1.5.2)
activerecord (= 7.1.5.2)
activestorage (= 7.1.5.2)
activesupport (= 7.1.5.2)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.1.3.4)
actionpack (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activesupport (= 7.1.3.4)
actionmailer (7.1.5.2)
actionpack (= 7.1.5.2)
actionview (= 7.1.5.2)
activejob (= 7.1.5.2)
activesupport (= 7.1.5.2)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.2)
actionpack (7.1.3.4)
actionview (= 7.1.3.4)
activesupport (= 7.1.3.4)
actionpack (7.1.5.2)
actionview (= 7.1.5.2)
activesupport (= 7.1.5.2)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
@@ -46,15 +46,15 @@ GEM
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
actiontext (7.1.3.4)
actionpack (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
actiontext (7.1.5.2)
actionpack (= 7.1.5.2)
activerecord (= 7.1.5.2)
activestorage (= 7.1.5.2)
activesupport (= 7.1.5.2)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.1.3.4)
activesupport (= 7.1.3.4)
actionview (7.1.5.2)
activesupport (= 7.1.5.2)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
@@ -64,30 +64,33 @@ GEM
activemodel (>= 4.1)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (7.1.3.4)
activesupport (= 7.1.3.4)
activejob (7.1.5.2)
activesupport (= 7.1.5.2)
globalid (>= 0.3.6)
activemodel (7.1.3.4)
activesupport (= 7.1.3.4)
activerecord (7.1.3.4)
activemodel (= 7.1.3.4)
activesupport (= 7.1.3.4)
activemodel (7.1.5.2)
activesupport (= 7.1.5.2)
activerecord (7.1.5.2)
activemodel (= 7.1.5.2)
activesupport (= 7.1.5.2)
timeout (>= 0.4.0)
activestorage (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activesupport (= 7.1.3.4)
activestorage (7.1.5.2)
actionpack (= 7.1.5.2)
activejob (= 7.1.5.2)
activerecord (= 7.1.5.2)
activesupport (= 7.1.5.2)
marcel (~> 1.0)
activesupport (7.1.3.4)
activesupport (7.1.5.2)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
mutex_m
securerandom (>= 0.3)
tzinfo (~> 2.0)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
@@ -100,20 +103,20 @@ GEM
attr_required (1.0.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
aws-partitions (1.966.0)
aws-sdk-core (3.201.5)
aws-partitions (1.978.0)
aws-sdk-core (3.209.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.88.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-kms (1.94.0)
aws-sdk-core (~> 3, >= 3.207.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.159.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-s3 (1.166.0)
aws-sdk-core (~> 3, >= 3.207.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.9.1)
aws-sigv4 (1.10.0)
aws-eventstream (~> 1, >= 1.0.2)
azure-storage-blob (2.0.3)
azure-storage-common (~> 2.0)
@@ -126,6 +129,7 @@ GEM
base64 (0.2.0)
bcp47_spec (0.2.1)
bcrypt (3.1.20)
benchmark (0.4.0)
better_errors (2.10.1)
erubi (>= 1.0.0)
rack (>= 0.9.0)
@@ -134,17 +138,17 @@ GEM
bindata (2.5.0)
binding_of_caller (1.0.1)
debug_inspector (>= 1.2.0)
blurhash (0.1.7)
blurhash (0.1.8)
bootsnap (1.18.4)
msgpack (~> 1.2)
brakeman (6.1.2)
brakeman (6.2.1)
racc
browser (5.3.1)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (>= 1.0, < 6)
builder (3.3.0)
bundler-audit (0.9.1)
bundler-audit (0.9.2)
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
capybara (3.40.0)
@@ -164,27 +168,29 @@ GEM
activesupport (>= 5.2)
elasticsearch (>= 7.14.0, < 8)
elasticsearch-dsl
childprocess (5.1.0)
logger (~> 1.5)
chunky_png (1.4.0)
climate_control (1.2.0)
cocoon (1.2.15)
color_diff (0.1)
concurrent-ruby (1.3.4)
connection_pool (2.4.1)
cose (1.3.0)
cose (1.3.1)
cbor (~> 0.5.9)
openssl-signature_algorithm (~> 1.0)
crack (1.0.0)
bigdecimal
rexml
crass (1.0.6)
css_parser (1.17.1)
css_parser (1.19.0)
addressable
csv (3.3.0)
database_cleaner-active_record (2.2.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
date (3.3.4)
date (3.4.1)
debug (1.9.2)
irb (~> 1.10)
reline (>= 0.3.8)
@@ -195,7 +201,7 @@ GEM
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
devise-two-factor (5.1.0)
devise-two-factor (6.0.0)
activesupport (~> 7.0)
devise (~> 4.0)
railties (~> 7.0)
@@ -206,20 +212,20 @@ GEM
diff-lcs (1.5.1)
discard (1.3.0)
activerecord (>= 4.2, < 8)
docile (1.4.0)
docile (1.4.1)
domain_name (0.6.20240107)
doorkeeper (5.7.1)
railties (>= 5)
dotenv (3.1.2)
dotenv (3.1.4)
drb (2.2.1)
ed25519 (1.3.0)
elasticsearch (7.17.10)
elasticsearch-api (= 7.17.10)
elasticsearch-transport (= 7.17.10)
elasticsearch-api (7.17.10)
elasticsearch (7.17.11)
elasticsearch-api (= 7.17.11)
elasticsearch-transport (= 7.17.11)
elasticsearch-api (7.17.11)
multi_json
elasticsearch-dsl (0.1.10)
elasticsearch-transport (7.17.10)
elasticsearch-transport (7.17.11)
base64
faraday (>= 1, < 3)
multi_json
email_spec (2.3.0)
@@ -251,7 +257,7 @@ GEM
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
@@ -260,14 +266,15 @@ GEM
faraday (~> 1.0)
fast_blank (1.0.1)
fastimage (2.3.1)
ffi (1.16.3)
ffi (1.17.1)
ffi-compiler (1.3.2)
ffi (>= 1.15.5)
rake
flatware (2.3.2)
flatware (2.3.4)
drb
thor (< 2.0)
flatware-rspec (2.3.2)
flatware (= 2.3.2)
flatware-rspec (2.3.4)
flatware (= 2.3.4)
rspec (>= 3.6)
fog-core (2.5.0)
builder
@@ -284,14 +291,11 @@ GEM
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4)
fuubar (2.5.1)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
globalid (1.2.1)
activesupport (>= 6.1)
google-protobuf (3.25.4)
googleapis-common-protos-types (1.14.0)
google-protobuf (~> 3.18)
google-protobuf (3.25.5)
googleapis-common-protos-types (1.15.0)
google-protobuf (>= 3.18, < 5.a)
haml (6.3.0)
temple (>= 0.8.2)
thor
@@ -307,11 +311,12 @@ GEM
rainbow
rubocop (>= 1.0)
sysexits (~> 1.1)
hashdiff (1.1.0)
hashdiff (1.1.1)
hashie (5.0.0)
hcaptcha (7.1.0)
json
highline (3.0.1)
highline (3.1.1)
reline
hiredis (0.6.3)
hkdf (0.3.0)
htmlentities (4.3.4)
@@ -329,7 +334,7 @@ GEM
httplog (1.7.0)
rack (>= 2.0)
rainbow (>= 2.0.0)
i18n (1.14.5)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
i18n-tasks (1.0.14)
activesupport (>= 4.0.2)
@@ -342,11 +347,11 @@ GEM
rainbow (>= 2.2.2, < 4.0)
terminal-table (>= 1.5.1)
idn-ruby (0.1.5)
inline_svg (1.9.0)
inline_svg (1.10.0)
activesupport (>= 3.0)
nokogiri (>= 1.6)
io-console (0.7.2)
irb (1.14.0)
irb (1.14.1)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jmespath (1.6.2)
@@ -368,8 +373,8 @@ GEM
json-ld-preloaded (3.3.0)
json-ld (~> 3.3)
rdf (~> 3.3)
json-schema (4.3.1)
addressable (>= 2.8)
json-schema (5.0.0)
addressable (~> 2.8)
jsonapi-renderer (0.2.2)
jwt (2.7.1)
kaminari (1.2.2)
@@ -391,8 +396,9 @@ GEM
mime-types
terrapin (>= 0.6.0, < 2.0)
language_server-protocol (3.17.0.3)
launchy (2.5.2)
launchy (3.0.1)
addressable (~> 2.8)
childprocess (~> 5.0)
letter_opener (1.10.0)
launchy (>= 2.2, < 4)
letter_opener_web (3.0.0)
@@ -404,7 +410,7 @@ GEM
llhttp-ffi (0.5.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
logger (1.6.0)
logger (1.6.6)
lograge (0.14.0)
actionpack (>= 4)
activesupport (>= 4)
@@ -426,22 +432,22 @@ GEM
addressable (~> 2.5)
azure-storage-blob (~> 2.0.1)
hashie (~> 5.0)
memory_profiler (1.0.2)
memory_profiler (1.1.0)
mime-types (3.5.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2024.0702)
mime-types-data (3.2024.0820)
mini_mime (1.1.5)
mini_portile2 (2.8.7)
minitest (5.24.1)
mini_portile2 (2.8.9)
minitest (5.25.1)
msgpack (1.7.2)
multi_json (1.15.0)
multipart-post (2.4.0)
multipart-post (2.4.1)
mutex_m (0.2.0)
net-http (0.4.1)
uri
net-http-persistent (4.0.2)
connection_pool (~> 2.2)
net-imap (0.4.14)
net-imap (0.5.8)
date
net-protocol
net-ldap (0.19.0)
@@ -449,16 +455,16 @@ GEM
net-protocol
net-protocol (0.2.2)
timeout
net-smtp (0.5.0)
net-smtp (0.5.1)
net-protocol
nio4r (2.7.3)
nokogiri (1.16.7)
nokogiri (1.18.9)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.5)
oj (3.16.6)
bigdecimal (>= 3.0)
ostruct (>= 0.2)
omniauth (2.1.2)
omniauth (2.1.3)
hashie (>= 3.4.6)
rack (>= 2.2.3)
rack-protection
@@ -466,12 +472,12 @@ GEM
addressable (~> 2.8)
nokogiri (~> 1.12)
omniauth (~> 2.1)
omniauth-rails_csrf_protection (1.0.1)
omniauth-rails_csrf_protection (1.0.2)
actionpack (>= 4.2)
omniauth (~> 2.0)
omniauth-saml (2.1.0)
omniauth (~> 2.0)
ruby-saml (~> 1.12)
omniauth-saml (2.2.3)
omniauth (~> 2.1)
ruby-saml (~> 1.18)
omniauth_openid_connect (0.6.1)
omniauth (>= 1.9, < 3)
openid_connect (~> 1.1)
@@ -486,21 +492,21 @@ GEM
validate_email
validate_url
webfinger (~> 1.2)
openssl (3.2.0)
openssl (3.2.2)
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
opentelemetry-api (1.3.0)
opentelemetry-common (0.20.1)
opentelemetry-api (1.4.0)
opentelemetry-common (0.21.0)
opentelemetry-api (~> 1.0)
opentelemetry-exporter-otlp (0.28.1)
opentelemetry-exporter-otlp (0.29.0)
google-protobuf (>= 3.18)
googleapis-common-protos-types (~> 1.3)
opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.20)
opentelemetry-sdk (~> 1.2)
opentelemetry-semantic_conventions
opentelemetry-helpers-sql-obfuscation (0.1.0)
opentelemetry-common (~> 0.20)
opentelemetry-helpers-sql-obfuscation (0.2.0)
opentelemetry-common (~> 0.21)
opentelemetry-instrumentation-action_mailer (0.1.0)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-active_support (~> 0.1)
@@ -525,8 +531,9 @@ GEM
opentelemetry-instrumentation-active_support (0.6.0)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-base (0.22.3)
opentelemetry-instrumentation-base (0.22.6)
opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.21)
opentelemetry-registry (~> 0.1)
opentelemetry-instrumentation-concurrent_ruby (0.21.4)
opentelemetry-api (~> 1.0)
@@ -546,7 +553,7 @@ GEM
opentelemetry-instrumentation-net_http (0.22.7)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-pg (0.28.0)
opentelemetry-instrumentation-pg (0.29.0)
opentelemetry-api (~> 1.0)
opentelemetry-helpers-sql-obfuscation
opentelemetry-instrumentation-base (~> 0.22.1)
@@ -580,25 +587,25 @@ GEM
orm_adapter (0.5.0)
ostruct (0.6.0)
ox (2.14.18)
parallel (1.25.1)
parser (3.3.4.0)
parallel (1.26.3)
parser (3.3.5.0)
ast (~> 2.4.1)
racc
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.5.7)
pg (1.5.8)
pghero (3.6.0)
activerecord (>= 6.1)
premailer (1.23.0)
premailer (1.27.0)
addressable
css_parser (>= 1.12.0)
css_parser (>= 1.19.0)
htmlentities (>= 4.0.0)
premailer-rails (1.12.0)
actionmailer (>= 3)
net-smtp
premailer (~> 1.7, >= 1.7.9)
propshaft (0.9.1)
propshaft (1.1.0)
actionpack (>= 7.0.0)
activesupport (>= 7.0.0)
rack
@@ -606,13 +613,13 @@ GEM
psych (5.1.2)
stringio
public_suffix (6.0.1)
puma (6.4.2)
puma (6.4.3)
nio4r (~> 2.0)
pundit (2.3.2)
pundit (2.4.0)
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.8.1)
rack (2.2.9)
rack (2.2.20)
rack-attack (6.7.0)
rack (>= 1.0, < 4)
rack-cors (2.0.2)
@@ -635,20 +642,20 @@ GEM
rackup (1.0.0)
rack (< 3)
webrick
rails (7.1.3.4)
actioncable (= 7.1.3.4)
actionmailbox (= 7.1.3.4)
actionmailer (= 7.1.3.4)
actionpack (= 7.1.3.4)
actiontext (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activemodel (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
rails (7.1.5.2)
actioncable (= 7.1.5.2)
actionmailbox (= 7.1.5.2)
actionmailer (= 7.1.5.2)
actionpack (= 7.1.5.2)
actiontext (= 7.1.5.2)
actionview (= 7.1.5.2)
activejob (= 7.1.5.2)
activemodel (= 7.1.5.2)
activerecord (= 7.1.5.2)
activestorage (= 7.1.5.2)
activesupport (= 7.1.5.2)
bundler (>= 1.15.0)
railties (= 7.1.3.4)
railties (= 7.1.5.2)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@@ -657,15 +664,15 @@ GEM
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.6.0)
rails-html-sanitizer (1.6.2)
loofah (~> 2.21)
nokogiri (~> 1.14)
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
rails-i18n (7.0.9)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
railties (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
railties (7.1.5.2)
actionpack (= 7.1.5.2)
activesupport (= 7.1.5.2)
irb
rackup (>= 1.0.0)
rake (>= 12.2)
@@ -688,17 +695,16 @@ GEM
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
regexp_parser (2.9.2)
reline (0.5.9)
reline (0.5.10)
io-console (~> 0.5)
request_store (1.6.0)
rack (>= 1.4)
responders (3.1.1)
actionpack (>= 5.2)
railties (>= 5.2)
rexml (3.3.4)
strscan
rexml (3.4.4)
rotp (6.3.0)
rouge (4.2.1)
rouge (4.3.0)
rpam2 (4.0.2)
rqrcode (2.2.0)
chunky_png (~> 1.0)
@@ -708,9 +714,9 @@ GEM
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.0)
rspec-core (3.13.1)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.1)
rspec-expectations (3.13.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-github (2.4.0)
@@ -718,10 +724,10 @@ GEM
rspec-mocks (3.13.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (6.1.4)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
rspec-rails (7.0.1)
actionpack (>= 7.0)
activesupport (>= 7.0)
railties (>= 7.0)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
@@ -732,40 +738,39 @@ GEM
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8)
rspec-support (3.13.1)
rubocop (1.65.1)
rubocop (1.66.1)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.4, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-ast (>= 1.32.2, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.31.3)
rubocop-ast (1.32.3)
parser (>= 3.3.1.0)
rubocop-capybara (2.21.0)
rubocop (~> 1.41)
rubocop-performance (1.21.1)
rubocop-performance (1.22.1)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rails (2.25.1)
rubocop-rails (2.26.2)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
rubocop (>= 1.52.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rspec (3.0.4)
rubocop-rspec (3.0.5)
rubocop (~> 1.61)
rubocop-rspec_rails (2.30.0)
rubocop (~> 1.61)
rubocop-rspec (~> 3, >= 3.0.1)
ruby-prof (1.7.0)
ruby-progressbar (1.13.0)
ruby-saml (1.16.0)
ruby-saml (1.18.1)
nokogiri (>= 1.13.10)
rexml
ruby-vips (2.2.2)
ruby-vips (2.2.3)
ffi (~> 1.12)
logger
ruby2_keywords (0.0.5)
@@ -780,13 +785,16 @@ GEM
scenic (1.8.0)
activerecord (>= 4.0.0)
railties (>= 4.0.0)
selenium-webdriver (4.23.0)
securerandom (0.4.1)
selenium-webdriver (4.25.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
semantic_range (3.0.0)
shoulda-matchers (6.4.0)
activesupport (>= 5.2.0)
sidekiq (6.5.12)
connection_pool (>= 2.2.5, < 3)
rack (~> 2.0)
@@ -821,7 +829,6 @@ GEM
stringio (3.1.1)
strong_migrations (2.0.0)
activerecord (>= 6.1)
strscan (3.1.0)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
@@ -832,11 +839,11 @@ GEM
unicode-display_width (>= 1.1.1, < 3)
terrapin (1.0.1)
climate_control
test-prof (1.4.0)
thor (1.3.1)
tilt (2.3.0)
timeout (0.4.1)
tpm-key_attestation (0.12.0)
test-prof (1.4.2)
thor (1.4.0)
tilt (2.4.0)
timeout (0.4.3)
tpm-key_attestation (0.12.1)
bindata (~> 2.4)
openssl (> 2.0)
openssl-signature_algorithm (~> 1.0)
@@ -855,13 +862,13 @@ GEM
unf (~> 0.1.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2024.1)
tzinfo-data (1.2024.2)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.9.1)
unicode-display_width (2.5.0)
uri (0.13.0)
uri (0.13.3)
validate_email (0.1.6)
activemodel (>= 3.0)
mail (>= 2.2.5)
@@ -882,7 +889,7 @@ GEM
webfinger (1.2.0)
activesupport
httpclient (>= 2.4)
webmock (3.23.1)
webmock (3.24.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
@@ -891,16 +898,17 @@ GEM
rack-proxy (>= 0.6.1)
railties (>= 5.2)
semantic_range (>= 2.3.0)
webrick (1.8.1)
webrick (1.8.2)
websocket (1.2.11)
websocket-driver (0.7.6)
websocket-driver (0.8.0)
base64
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
wisper (2.0.1)
xorcist (1.1.3)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.6.17)
zeitwerk (2.6.18)
PLATFORMS
ruby
@@ -934,7 +942,6 @@ DEPENDENCIES
discard (~> 1.2)
doorkeeper (~> 5.6)
dotenv
ed25519 (~> 1.3)
email_spec
fabrication (~> 2.30)
faker (~> 3.2)
@@ -943,7 +950,6 @@ DEPENDENCIES
flatware-rspec
fog-core (<= 2.5.0)
fog-openstack (~> 1.0)
fuubar (~> 2.5)
haml-rails (~> 2.0)
haml_lint
hcaptcha (~> 7.1)
@@ -959,7 +965,7 @@ DEPENDENCIES
irb (~> 1.8)
json-ld
json-ld-preloaded (~> 3.2)
json-schema (~> 4.0)
json-schema (~> 5.0)
kaminari (~> 1.2)
kt-paperclip (~> 7.2)
letter_opener (~> 1.8)
@@ -980,8 +986,8 @@ DEPENDENCIES
omniauth-rails_csrf_protection (~> 1.0)
omniauth-saml (~> 2.0)
omniauth_openid_connect (~> 0.6.1)
opentelemetry-api (~> 1.3.0)
opentelemetry-exporter-otlp (~> 0.28.0)
opentelemetry-api (~> 1.4.0)
opentelemetry-exporter-otlp (~> 0.29.0)
opentelemetry-instrumentation-active_job (~> 0.7.1)
opentelemetry-instrumentation-active_model_serializers (~> 0.20.1)
opentelemetry-instrumentation-concurrent_ruby (~> 0.21.2)
@@ -990,7 +996,7 @@ DEPENDENCIES
opentelemetry-instrumentation-http (~> 0.23.2)
opentelemetry-instrumentation-http_client (~> 0.22.3)
opentelemetry-instrumentation-net_http (~> 0.22.4)
opentelemetry-instrumentation-pg (~> 0.28.0)
opentelemetry-instrumentation-pg (~> 0.29.0)
opentelemetry-instrumentation-rack (~> 0.24.1)
opentelemetry-instrumentation-rails (~> 0.31.0)
opentelemetry-instrumentation-redis (~> 0.25.3)
@@ -1018,7 +1024,7 @@ DEPENDENCIES
redis-namespace (~> 1.10)
rqrcode (~> 2.2)
rspec-github (~> 2.4)
rspec-rails (~> 6.0)
rspec-rails (~> 7.0)
rspec-sidekiq (~> 5.0)
rubocop
rubocop-capybara
@@ -1033,6 +1039,7 @@ DEPENDENCIES
sanitize (~> 6.0)
scenic (~> 1.7)
selenium-webdriver
shoulda-matchers
sidekiq (~> 6.5)
sidekiq-bulk (~> 0.2.0)
sidekiq-scheduler (~> 5.0)
@@ -1053,10 +1060,11 @@ DEPENDENCIES
webmock (~> 3.18)
webpacker (~> 5.4)
webpush!
websocket-driver (~> 0.8)
xorcist (~> 1.1)
RUBY VERSION
ruby 3.3.2p78
ruby 3.3.4p94
BUNDLED WITH
2.5.11
2.6.5

View File

@@ -11,4 +11,4 @@ worker: bundle exec sidekiq
#
# and let the main app use the separate app:
#
# heroku config:set STREAMING_API_BASE_URL=wss://<streaming-app>.herokuapp.com -a <main-app>
# heroku config:set STREAMING_API_BASE_URL=wss://<streaming-app-random>.herokuapp.com -a <main-app>

View File

@@ -13,8 +13,9 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
## Supported Versions
| Version | Supported |
| ------- | --------- |
| 4.2.x | Yes |
| 4.1.x | Yes |
| < 4.1 | No |
| Version | Supported |
| ------- | ---------------- |
| 4.4.x | Yes |
| 4.3.x | Until 2026-05-06 |
| 4.2.x | Until 2026-01-08 |
| < 4.2 | No |

View File

@@ -90,9 +90,15 @@
}
},
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-activestorage-preview"
},
{
"url": "https://github.com/heroku/heroku-buildpack-apt"
},
{
"url": "heroku/nodejs"
},
{
"url": "heroku/ruby"
}
@@ -100,5 +106,6 @@
"scripts": {
"postdeploy": "bundle exec rails db:migrate && bundle exec rails db:seed"
},
"addons": ["heroku-postgresql", "heroku-redis"]
"addons": ["heroku-postgresql", "heroku-redis"],
"stack": "heroku-24"
}

View File

@@ -1,18 +0,0 @@
# frozen_string_literal: true
class ActivityPub::ClaimsController < ActivityPub::BaseController
skip_before_action :authenticate_user!
before_action :require_account_signature!
before_action :set_claim_result
def create
render json: @claim_result, serializer: ActivityPub::OneTimeKeySerializer
end
private
def set_claim_result
@claim_result = ::Keys::ClaimService.new.call(@account.id, params[:id])
end
end

View File

@@ -22,8 +22,6 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController
@items = @items.map { |item| item.distributable? ? item : ActivityPub::TagManager.instance.uri_for(item) }
when 'tags'
@items = for_signed_account { @account.featured_tags }
when 'devices'
@items = @account.devices
else
not_found
end
@@ -31,7 +29,7 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController
def set_size
case params[:id]
when 'featured', 'devices', 'tags'
when 'featured', 'tags'
@size = @items.size
else
not_found
@@ -42,7 +40,7 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController
case params[:id]
when 'featured'
@type = :ordered
when 'devices', 'tags'
when 'tags'
@type = :unordered
else
not_found

View File

@@ -0,0 +1,36 @@
# frozen_string_literal: true
class ActivityPub::LikesController < ActivityPub::BaseController
include Authorization
vary_by -> { 'Signature' if authorized_fetch_mode? }
before_action :require_account_signature!, if: :authorized_fetch_mode?
before_action :set_status
def index
expires_in 0, public: @status.distributable? && public_fetch_mode?
render json: likes_collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
end
private
def pundit_user
signed_request_account
end
def set_status
@status = @account.statuses.find(params[:status_id])
authorize @status, :show?
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end
def likes_collection_presenter
ActivityPub::CollectionPresenter.new(
id: account_status_likes_url(@account, @status),
type: :unordered,
size: @status.favourites_count
)
end
end

View File

@@ -12,7 +12,7 @@ class ActivityPub::RepliesController < ActivityPub::BaseController
before_action :set_replies
def index
expires_in 0, public: public_fetch_mode?
expires_in 0, public: @status.distributable? && public_fetch_mode?
render json: replies_collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json', skip_activities: true
end
@@ -25,7 +25,7 @@ class ActivityPub::RepliesController < ActivityPub::BaseController
def set_status
@status = @account.statuses.find(params[:status_id])
authorize @status, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end

View File

@@ -0,0 +1,36 @@
# frozen_string_literal: true
class ActivityPub::SharesController < ActivityPub::BaseController
include Authorization
vary_by -> { 'Signature' if authorized_fetch_mode? }
before_action :require_account_signature!, if: :authorized_fetch_mode?
before_action :set_status
def index
expires_in 0, public: @status.distributable? && public_fetch_mode?
render json: shares_collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
end
private
def pundit_user
signed_request_account
end
def set_status
@status = @account.statuses.find(params[:status_id])
authorize @status, :show?
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end
def shares_collection_presenter
ActivityPub::CollectionPresenter.new(
id: account_status_shares_url(@account, @status),
type: :unordered,
size: @status.reblogs_count
)
end
end

View File

@@ -13,7 +13,7 @@ module Admin
redirect_to admin_account_path(@account_moderation_note.target_account_id), notice: I18n.t('admin.account_moderation_notes.created_msg')
else
@account = @account_moderation_note.target_account
@moderation_notes = @account.targeted_moderation_notes.latest
@moderation_notes = @account.targeted_moderation_notes.chronological.includes(:account)
@warnings = @account.strikes.custom.latest
render 'admin/accounts/show'

View File

@@ -33,7 +33,7 @@ module Admin
@deletion_request = @account.deletion_request
@account_moderation_note = current_account.account_moderation_notes.new(target_account: @account)
@moderation_notes = @account.targeted_moderation_notes.latest
@moderation_notes = @account.targeted_moderation_notes.chronological.includes(:account)
@warnings = @account.strikes.includes(:target_account, :account, :appeal).latest
@domain_block = DomainBlock.rule_for(@account.domain)
end

View File

@@ -6,6 +6,7 @@ class Admin::AnnouncementsController < Admin::BaseController
def index
authorize :announcement, :index?
@published_announcements_count = Announcement.published.async_count
end
def new

View File

@@ -7,17 +7,12 @@ module Admin
layout 'admin'
before_action :set_body_classes
before_action :set_cache_headers
after_action :verify_authorized
private
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View File

@@ -7,12 +7,12 @@ module Admin
def index
authorize :dashboard, :index?
@pending_appeals_count = Appeal.pending.async_count
@pending_reports_count = Report.unresolved.async_count
@pending_tags_count = Tag.pending_review.async_count
@pending_users_count = User.pending.async_count
@system_checks = Admin::SystemCheck.perform(current_user)
@time_period = (29.days.ago.to_date...Time.now.utc.to_date)
@pending_users_count = User.pending.count
@pending_reports_count = Report.unresolved.count
@pending_tags_count = Tag.pending_review.count
@pending_appeals_count = Appeal.pending.count
end
end
end

View File

@@ -6,6 +6,7 @@ class Admin::Disputes::AppealsController < Admin::BaseController
def index
authorize :appeal, :index?
@pending_appeals_count = Appeal.pending.async_count
@appeals = filtered_appeals.page(params[:page])
end

View File

@@ -21,7 +21,7 @@ module Admin
redirect_to after_create_redirect_path, notice: I18n.t('admin.report_notes.created_msg')
else
@report_notes = @report.notes.includes(:account).order(id: :desc)
@report_notes = @report.notes.chronological.includes(:account)
@action_logs = @report.history.includes(:target)
@form = Admin::StatusBatchAction.new
@statuses = @report.statuses.with_includes

View File

@@ -13,7 +13,7 @@ module Admin
authorize @report, :show?
@report_note = @report.notes.new
@report_notes = @report.notes.includes(:account).order(id: :desc)
@report_notes = @report.notes.chronological.includes(:account)
@action_logs = @report.history.includes(:target)
@form = Admin::StatusBatchAction.new
@statuses = @report.statuses.with_includes

View File

@@ -4,6 +4,7 @@ class Admin::Trends::Links::PreviewCardProvidersController < Admin::BaseControll
def index
authorize :preview_card_provider, :review?
@pending_preview_card_providers_count = PreviewCardProvider.unreviewed.async_count
@preview_card_providers = filtered_preview_card_providers.page(params[:page])
@form = Trends::PreviewCardProviderBatch.new
end

View File

@@ -4,6 +4,7 @@ class Admin::Trends::TagsController < Admin::BaseController
def index
authorize :tag, :review?
@pending_tags_count = Tag.pending_review.async_count
@tags = filtered_tags.page(params[:page])
@form = Trends::TagBatch.new
end

View File

@@ -72,6 +72,13 @@ class Api::BaseController < ApplicationController
end
end
# Redefine `require_functional!` to properly output JSON instead of HTML redirects
def require_functional!
return if current_user.functional?
require_user!
end
def render_empty
render json: {}, status: 200
end

View File

@@ -7,7 +7,7 @@ class Api::OEmbedController < Api::BaseController
before_action :require_public_status!
def show
render json: @status, serializer: OEmbedSerializer, width: maxwidth_or_default, height: maxheight_or_default
render json: @status, serializer: OEmbedSerializer, width: params[:maxwidth], height: params[:maxheight]
end
private
@@ -23,12 +23,4 @@ class Api::OEmbedController < Api::BaseController
def status_finder
StatusFinder.new(params[:url])
end
def maxwidth_or_default
(params[:maxwidth].presence || 400).to_i
end
def maxheight_or_default
params[:maxheight].present? ? params[:maxheight].to_i : nil
end
end

View File

@@ -14,7 +14,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController
@account = current_account
UpdateAccountService.new.call(@account, account_params, raise_error: true)
current_user.update(user_params) if user_params
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
render json: @account, serializer: REST::CredentialAccountSerializer
rescue ActiveRecord::RecordInvalid => e
render json: ValidationErrorFormatter.new(e).as_json, status: 422

View File

@@ -16,6 +16,7 @@ class Api::V1::AccountsController < Api::BaseController
before_action :check_account_confirmation, except: [:index, :create]
before_action :check_enabled_registrations, only: [:create]
before_action :check_accounts_limit, only: [:index]
before_action :check_following_self, only: [:follow]
skip_before_action :require_authenticated_user!, only: :create
@@ -101,6 +102,10 @@ class Api::V1::AccountsController < Api::BaseController
raise(Mastodon::ValidationError) if account_ids.size > DEFAULT_ACCOUNTS_LIMIT
end
def check_following_self
render json: { error: I18n.t('accounts.self_follow_error') }, status: 403 if current_user.account.id == @account.id
end
def relationships(**options)
AccountRelationshipsPresenter.new([@account], current_user.account_id, **options)
end

View File

@@ -1,30 +0,0 @@
# frozen_string_literal: true
class Api::V1::Crypto::DeliveriesController < Api::BaseController
before_action -> { doorkeeper_authorize! :crypto }
before_action :require_user!
before_action :set_current_device
def create
devices.each do |device_params|
DeliverToDeviceService.new.call(current_account, @current_device, device_params)
end
render_empty
end
private
def set_current_device
@current_device = Device.find_by!(access_token: doorkeeper_token)
end
def resource_params
params.require(:device)
params.permit(device: [:account_id, :device_id, :type, :body, :hmac])
end
def devices
Array(resource_params[:device])
end
end

View File

@@ -1,47 +0,0 @@
# frozen_string_literal: true
class Api::V1::Crypto::EncryptedMessagesController < Api::BaseController
LIMIT = 80
before_action -> { doorkeeper_authorize! :crypto }
before_action :require_user!
before_action :set_current_device
before_action :set_encrypted_messages, only: :index
after_action :insert_pagination_headers, only: :index
def index
render json: @encrypted_messages, each_serializer: REST::EncryptedMessageSerializer
end
def clear
@current_device.encrypted_messages.up_to(params[:up_to_id]).delete_all
render_empty
end
private
def set_current_device
@current_device = Device.find_by!(access_token: doorkeeper_token)
end
def set_encrypted_messages
@encrypted_messages = @current_device.encrypted_messages.to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id))
end
def next_path
api_v1_crypto_encrypted_messages_url pagination_params(max_id: pagination_max_id) if records_continue?
end
def prev_path
api_v1_crypto_encrypted_messages_url pagination_params(min_id: pagination_since_id) unless @encrypted_messages.empty?
end
def pagination_collection
@encrypted_messages
end
def records_continue?
@encrypted_messages.size == limit_param(LIMIT)
end
end

View File

@@ -1,25 +0,0 @@
# frozen_string_literal: true
class Api::V1::Crypto::Keys::ClaimsController < Api::BaseController
before_action -> { doorkeeper_authorize! :crypto }
before_action :require_user!
before_action :set_claim_results
def create
render json: @claim_results, each_serializer: REST::Keys::ClaimResultSerializer
end
private
def set_claim_results
@claim_results = devices.filter_map { |device_params| ::Keys::ClaimService.new.call(current_account, device_params[:account_id], device_params[:device_id]) }
end
def resource_params
params.permit(device: [:account_id, :device_id])
end
def devices
Array(resource_params[:device])
end
end

View File

@@ -1,17 +0,0 @@
# frozen_string_literal: true
class Api::V1::Crypto::Keys::CountsController < Api::BaseController
before_action -> { doorkeeper_authorize! :crypto }
before_action :require_user!
before_action :set_current_device
def show
render json: { one_time_keys: @current_device.one_time_keys.count }
end
private
def set_current_device
@current_device = Device.find_by!(access_token: doorkeeper_token)
end
end

View File

@@ -1,26 +0,0 @@
# frozen_string_literal: true
class Api::V1::Crypto::Keys::QueriesController < Api::BaseController
before_action -> { doorkeeper_authorize! :crypto }
before_action :require_user!
before_action :set_accounts
before_action :set_query_results
def create
render json: @query_results, each_serializer: REST::Keys::QueryResultSerializer
end
private
def set_accounts
@accounts = Account.where(id: account_ids).includes(:devices)
end
def set_query_results
@query_results = @accounts.filter_map { |account| ::Keys::QueryService.new.call(account) }
end
def account_ids
Array(params[:id]).map(&:to_i)
end
end

View File

@@ -1,29 +0,0 @@
# frozen_string_literal: true
class Api::V1::Crypto::Keys::UploadsController < Api::BaseController
before_action -> { doorkeeper_authorize! :crypto }
before_action :require_user!
def create
device = Device.find_or_initialize_by(access_token: doorkeeper_token)
device.transaction do
device.account = current_account
device.update!(resource_params[:device])
if resource_params[:one_time_keys].present? && resource_params[:one_time_keys].is_a?(Enumerable)
resource_params[:one_time_keys].each do |one_time_key_params|
device.one_time_keys.create!(one_time_key_params)
end
end
end
render json: device, serializer: REST::Keys::DeviceSerializer
end
private
def resource_params
params.permit(device: [:device_id, :name, :fingerprint_key, :identity_key], one_time_keys: [:key_id, :key, :signature])
end
end

View File

@@ -0,0 +1,27 @@
# frozen_string_literal: true
class Api::V1::DomainBlocks::PreviewsController < Api::BaseController
before_action -> { doorkeeper_authorize! :follow, :write, :'write:blocks' }
before_action :require_user!
before_action :set_domain
before_action :set_domain_block_preview
def show
render json: @domain_block_preview, serializer: REST::DomainBlockPreviewSerializer
end
private
def set_domain
@domain = TagManager.instance.normalize_domain(params[:domain])
end
def set_domain_block_preview
@domain_block_preview = with_read_replica do
DomainBlockPreviewPresenter.new(
following_count: current_account.following.where(domain: @domain).count,
followers_count: current_account.followers.where(domain: @domain).count
)
end
end
end

View File

@@ -31,7 +31,7 @@ class Api::V1::Instances::DomainBlocksController < Api::V1::Instances::BaseContr
end
def show_domain_blocks_to_user?
Setting.show_domain_blocks == 'users' && user_signed_in?
Setting.show_domain_blocks == 'users' && user_signed_in? && current_user.functional_or_moved?
end
def set_domain_blocks
@@ -47,6 +47,6 @@ class Api::V1::Instances::DomainBlocksController < Api::V1::Instances::BaseContr
end
def show_rationale_for_user?
Setting.show_domain_blocks_rationale == 'users' && user_signed_in?
Setting.show_domain_blocks_rationale == 'users' && user_signed_in? && current_user.functional_or_moved?
end
end

View File

@@ -52,7 +52,7 @@ class Api::V1::Notifications::RequestsController < Api::BaseController
private
def load_requests
requests = NotificationRequest.where(account: current_account).includes(:last_status, from_account: [:account_stat, :user]).to_a_paginated_by_id(
requests = NotificationRequest.where(account: current_account).without_suspended.includes(:last_status, from_account: [:account_stat, :user]).to_a_paginated_by_id(
limit_param(DEFAULT_ACCOUNTS_LIMIT),
params_slice(:max_id, :since_id, :min_id)
)

View File

@@ -7,6 +7,8 @@ class Api::V1::Peers::SearchController < Api::BaseController
skip_before_action :require_authenticated_user!, unless: :limited_federation_mode?
skip_around_action :set_locale
LIMIT = 10
vary_by ''
def index
@@ -35,10 +37,10 @@ class Api::V1::Peers::SearchController < Api::BaseController
field: 'accounts_count',
modifier: 'log2p',
},
}).limit(10).pluck(:domain)
}).limit(LIMIT).pluck(:domain)
else
domain = normalized_domain
@domains = Instance.searchable.domain_starts_with(domain).limit(10).pluck(:domain)
@domains = Instance.searchable.domain_starts_with(domain).limit(LIMIT).pluck(:domain)
end
rescue Addressable::URI::InvalidURIError
@domains = []

View File

@@ -17,7 +17,7 @@ class Api::V1::Polls::VotesController < Api::BaseController
def set_poll
@poll = Poll.attached.find(params[:poll_id])
authorize @poll.status, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end

View File

@@ -17,7 +17,7 @@ class Api::V1::PollsController < Api::BaseController
def set_poll
@poll = Poll.attached.find(params[:id])
authorize @poll.status, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end

View File

@@ -7,7 +7,7 @@ class Api::V1::Profile::AvatarsController < Api::BaseController
def destroy
@account = current_account
UpdateAccountService.new.call(@account, { avatar: nil }, raise_error: true)
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
render json: @account, serializer: REST::CredentialAccountSerializer
end
end

View File

@@ -7,7 +7,7 @@ class Api::V1::Profile::HeadersController < Api::BaseController
def destroy
@account = current_account
UpdateAccountService.new.call(@account, { header: nil }, raise_error: true)
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
render json: @account, serializer: REST::CredentialAccountSerializer
end
end

View File

@@ -10,7 +10,7 @@ class Api::V1::Statuses::BaseController < Api::BaseController
def set_status
@status = Status.find(params[:status_id])
authorize @status, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end
end

View File

@@ -23,7 +23,7 @@ class Api::V1::Statuses::BookmarksController < Api::V1::Statuses::BaseController
bookmark&.destroy!
render json: @status, serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new([@status], current_account.id, bookmarks_map: { @status.id => false })
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end
end

View File

@@ -25,7 +25,7 @@ class Api::V1::Statuses::FavouritesController < Api::V1::Statuses::BaseControlle
relationships = StatusRelationshipsPresenter.new([@status], current_account.id, favourites_map: { @status.id => false }, attributes_map: { @status.id => { favourites_count: count } })
render json: @status, serializer: REST::StatusSerializer, relationships: relationships
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end
end

View File

@@ -36,7 +36,7 @@ class Api::V1::Statuses::ReblogsController < Api::V1::Statuses::BaseController
relationships = StatusRelationshipsPresenter.new([@status], current_account.id, reblogs_map: { @reblog.id => false }, attributes_map: { @reblog.id => { reblogs_count: count } })
render json: @reblog, serializer: REST::StatusSerializer, relationships: relationships
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end
@@ -45,7 +45,7 @@ class Api::V1::Statuses::ReblogsController < Api::V1::Statuses::BaseController
def set_reblog
@reblog = Status.find(params[:status_id])
authorize @reblog, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end

View File

@@ -23,6 +23,6 @@ class Api::V1::Statuses::TranslationsController < Api::V1::Statuses::BaseControl
private
def set_translation
@translation = TranslateStatusService.new.call(@status, content_locale)
@translation = TranslateStatusService.new.call(@status, I18n.locale.to_s)
end
end

View File

@@ -127,7 +127,7 @@ class Api::V1::StatusesController < Api::BaseController
def set_status
@status = Status.find(params[:id])
authorize @status, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end

View File

@@ -0,0 +1,50 @@
# frozen_string_literal: true
class Api::V2::Notifications::AccountsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:notifications' }
before_action :require_user!
before_action :set_notifications!
after_action :insert_pagination_headers, only: :index
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
end
private
def load_accounts
@paginated_notifications.map(&:from_account)
end
def set_notifications!
@paginated_notifications = begin
current_account
.notifications
.without_suspended
.where(group_key: params[:notification_group_key])
.includes(from_account: [:account_stat, :user])
.paginate_by_max_id(
limit_param(DEFAULT_ACCOUNTS_LIMIT),
params[:max_id],
params[:since_id]
)
end
end
def next_path
api_v2_notification_accounts_url pagination_params(max_id: pagination_max_id) if records_continue?
end
def prev_path
api_v2_notification_accounts_url pagination_params(min_id: pagination_since_id) unless @paginated_notifications.empty?
end
def pagination_collection
@paginated_notifications
end
def records_continue?
@paginated_notifications.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
end
end

View File

@@ -1,6 +1,6 @@
# frozen_string_literal: true
class Api::V2Alpha::NotificationsController < Api::BaseController
class Api::V2::NotificationsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:notifications' }, except: [:clear, :dismiss]
before_action -> { doorkeeper_authorize! :write, :'write:notifications' }, only: [:clear, :dismiss]
before_action :require_user!
@@ -13,7 +13,6 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
def index
with_read_replica do
@notifications = load_notifications
@group_metadata = load_group_metadata
@grouped_notifications = load_grouped_notifications
@relationships = StatusRelationshipsPresenter.new(target_statuses_from_notifications, current_user&.account_id)
@presenter = GroupedNotificationsPresenter.new(@grouped_notifications, expand_accounts: expand_accounts_param)
@@ -22,7 +21,7 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
ActiveRecord::Associations::Preloader.new(records: @presenter.accounts, associations: [:account_stat, { user: :role }]).call
end
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#index rendering') do |span|
MastodonOTELTracer.in_span('Api::V2::NotificationsController#index rendering') do |span|
statuses = @grouped_notifications.filter_map { |group| group.target_status&.id }
span.add_attributes(
@@ -34,7 +33,7 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
'app.notification_grouping.expand_accounts_param' => expand_accounts_param
)
render json: @presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, group_metadata: @group_metadata, expand_accounts: expand_accounts_param
render json: @presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, expand_accounts: expand_accounts_param
end
end
@@ -42,13 +41,13 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
limit = limit_param(DEFAULT_NOTIFICATIONS_COUNT_LIMIT, MAX_NOTIFICATIONS_COUNT_LIMIT)
with_read_replica do
render json: { count: browserable_account_notifications.paginate_groups_by_min_id(limit, min_id: notification_marker&.last_read_id).count }
render json: { count: browserable_account_notifications.paginate_groups_by_min_id(limit, min_id: notification_marker&.last_read_id, grouped_types: params[:grouped_types]).count }
end
end
def show
@notification = current_account.notifications.without_suspended.find_by!(group_key: params[:id])
presenter = GroupedNotificationsPresenter.new([NotificationGroup.from_notification(@notification)])
@notification = current_account.notifications.without_suspended.by_group_key(params[:group_key]).take!
presenter = GroupedNotificationsPresenter.new(NotificationGroup.from_notifications([@notification]))
render json: presenter, serializer: REST::DedupNotificationGroupSerializer
end
@@ -58,17 +57,17 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
def dismiss
current_account.notifications.where(group_key: params[:id]).destroy_all
current_account.notifications.by_group_key(params[:group_key]).destroy_all
render_empty
end
private
def load_notifications
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_notifications') do
MastodonOTELTracer.in_span('Api::V2::NotificationsController#load_notifications') do
notifications = browserable_account_notifications.includes(from_account: [:account_stat, :user]).to_a_grouped_paginated_by_id(
limit_param(DEFAULT_NOTIFICATIONS_LIMIT),
params_slice(:max_id, :since_id, :min_id)
params.slice(:max_id, :since_id, :min_id, :grouped_types).permit(:max_id, :since_id, :min_id, grouped_types: [])
)
Notification.preload_cache_collection_target_statuses(notifications) do |target_statuses|
@@ -77,23 +76,33 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
end
def load_group_metadata
return {} if @notifications.empty?
def load_grouped_notifications
return [] if @notifications.empty?
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_group_metadata') do
browserable_account_notifications
.where(group_key: @notifications.filter_map(&:group_key))
.where(id: (@notifications.last.id)..(@notifications.first.id))
.group(:group_key)
.pluck(:group_key, 'min(notifications.id) as min_id', 'max(notifications.id) as max_id', 'max(notifications.created_at) as latest_notification_at')
.to_h { |group_key, min_id, max_id, latest_notification_at| [group_key, { min_id: min_id, max_id: max_id, latest_notification_at: latest_notification_at }] }
MastodonOTELTracer.in_span('Api::V2::NotificationsController#load_grouped_notifications') do
pagination_range = (@notifications.last.id)..@notifications.first.id
# If the page is incomplete, we know we are on the last page
if incomplete_page?
if paginating_up?
pagination_range = @notifications.last.id...(params[:max_id]&.to_i)
else
range_start = params[:since_id]&.to_i
range_start += 1 unless range_start.nil?
pagination_range = range_start..(@notifications.first.id)
end
end
NotificationGroup.from_notifications(@notifications, pagination_range: pagination_range, grouped_types: params[:grouped_types])
end
end
def load_grouped_notifications
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_grouped_notifications') do
@notifications.map { |notification| NotificationGroup.from_notification(notification, max_id: @group_metadata.dig(notification.group_key, :max_id)) }
end
def incomplete_page?
@notifications.size < limit_param(DEFAULT_NOTIFICATIONS_LIMIT)
end
def paginating_up?
params[:min_id].present?
end
def browserable_account_notifications
@@ -113,11 +122,11 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
def next_path
api_v2_alpha_notifications_url pagination_params(max_id: pagination_max_id) unless @notifications.empty?
api_v2_notifications_url pagination_params(max_id: pagination_max_id) unless @notifications.empty?
end
def prev_path
api_v2_alpha_notifications_url pagination_params(min_id: pagination_since_id) unless @notifications.empty?
api_v2_notifications_url pagination_params(min_id: pagination_since_id) unless @notifications.empty?
end
def pagination_collection
@@ -125,11 +134,11 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
def browserable_params
params.permit(:include_filtered, types: [], exclude_types: [])
params.slice(:include_filtered, :types, :exclude_types, :grouped_types).permit(:include_filtered, types: [], exclude_types: [], grouped_types: [])
end
def pagination_params(core_params)
params.slice(:limit, :types, :exclude_types, :include_filtered).permit(:limit, :include_filtered, types: [], exclude_types: []).merge(core_params)
params.slice(:limit, :include_filtered, :types, :exclude_types, :grouped_types).permit(:limit, :include_filtered, types: [], exclude_types: [], grouped_types: []).merge(core_params)
end
def expand_accounts_param

View File

@@ -9,7 +9,7 @@ class Api::Web::EmbedsController < Api::Web::BaseController
return not_found if @status.hidden?
if @status.local?
render json: @status, serializer: OEmbedSerializer, width: 400
render json: @status, serializer: OEmbedSerializer
else
return not_found unless user_signed_in?
@@ -30,7 +30,7 @@ class Api::Web::EmbedsController < Api::Web::BaseController
def set_status
@status = Status.find(params[:id])
authorize @status, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end
end

View File

@@ -74,7 +74,23 @@ class ApplicationController < ActionController::Base
end
def require_functional!
redirect_to edit_user_registration_path unless current_user.functional?
return if current_user.functional?
respond_to do |format|
format.any do
redirect_to edit_user_registration_path
end
format.json do
if !current_user.confirmed?
render json: { error: 'Your login is missing a confirmed e-mail address' }, status: 403
elsif !current_user.approved?
render json: { error: 'Your login is currently pending approval' }, status: 403
elsif !current_user.functional?
render json: { error: 'Your login is currently disabled' }, status: 403
end
end
end
end
def skip_csrf_meta_tags?

View File

@@ -11,7 +11,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
before_action :configure_sign_up_params, only: [:create]
before_action :set_sessions, only: [:edit, :update]
before_action :set_strikes, only: [:edit, :update]
before_action :set_body_classes, only: [:new, :create, :edit, :update]
before_action :require_not_suspended!, only: [:update]
before_action :set_cache_headers, only: [:edit, :update]
before_action :set_rules, only: :new
@@ -104,10 +103,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
private
def set_body_classes
@body_classes = 'admin' if %w(edit update).include?(action_name)
end
def set_invite
@invite = begin
invite = Invite.find_by(code: invite_code) if invite_code.present?

View File

@@ -20,11 +20,6 @@ class Auth::SessionsController < Devise::SessionsController
p.form_action(false)
end
def check_suspicious!
user = find_user
@login_is_suspicious = suspicious_sign_in?(user) unless user.nil?
end
def create
super do |resource|
# We only need to call this if this hasn't already been
@@ -101,6 +96,11 @@ class Auth::SessionsController < Devise::SessionsController
private
def check_suspicious!
user = find_user
@login_is_suspicious = suspicious_sign_in?(user) unless user.nil?
end
def home_paths(resource)
paths = [about_path, '/explore']

View File

@@ -21,7 +21,7 @@ class AuthorizeInteractionsController < ApplicationController
def set_resource
@resource = located_resource
authorize(@resource, :show?) if @resource.is_a?(Status)
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end

View File

@@ -9,13 +9,15 @@ class BackupsController < ApplicationController
before_action :authenticate_user!
before_action :set_backup
BACKUP_LINK_TIMEOUT = 1.hour.freeze
def download
case Paperclip::Attachment.default_options[:storage]
when :s3, :azure
redirect_to @backup.dump.expiring_url(10), allow_other_host: true
redirect_to @backup.dump.expiring_url(BACKUP_LINK_TIMEOUT.to_i), allow_other_host: true
when :fog
if Paperclip::Attachment.default_options.dig(:fog_credentials, :openstack_temp_url_key).present?
redirect_to @backup.dump.expiring_url(Time.now.utc + 10), allow_other_host: true
redirect_to @backup.dump.expiring_url(BACKUP_LINK_TIMEOUT.from_now), allow_other_host: true
else
redirect_to full_asset_url(@backup.dump.url), allow_other_host: true
end

View File

@@ -20,7 +20,7 @@ module AccountControllerConcern
webfinger_account_link,
actor_url_link,
]
)
).to_s
end
def webfinger_account_link

View File

@@ -19,7 +19,7 @@ module Api::Pagination
links = []
links << [next_path, [%w(rel next)]] if next_path
links << [prev_path, [%w(rel prev)]] if prev_path
response.headers['Link'] = LinkHeader.new(links) unless links.empty?
response.headers['Link'] = LinkHeader.new(links).to_s unless links.empty?
end
def require_valid_pagination_options!

View File

@@ -117,7 +117,7 @@ module SignatureVerification
def verify_signature_strength!
raise SignatureVerificationError, 'Mastodon requires the Date header or (created) pseudo-header to be signed' unless signed_headers.include?('date') || signed_headers.include?('(created)')
raise SignatureVerificationError, 'Mastodon requires the Digest header or (request-target) pseudo-header to be signed' unless signed_headers.include?(Request::REQUEST_TARGET) || signed_headers.include?('digest')
raise SignatureVerificationError, 'Mastodon requires the Digest header or (request-target) pseudo-header to be signed' unless signed_headers.include?(HttpSignatureDraft::REQUEST_TARGET) || signed_headers.include?('digest')
raise SignatureVerificationError, 'Mastodon requires the Host header to be signed when doing a GET request' if request.get? && !signed_headers.include?('host')
raise SignatureVerificationError, 'Mastodon requires the Digest header to be signed when doing a POST request' if request.post? && !signed_headers.include?('digest')
end
@@ -155,14 +155,14 @@ module SignatureVerification
def build_signed_string(include_query_string: true)
signed_headers.map do |signed_header|
case signed_header
when Request::REQUEST_TARGET
when HttpSignatureDraft::REQUEST_TARGET
if include_query_string
"#{Request::REQUEST_TARGET}: #{request.method.downcase} #{request.original_fullpath}"
"#{HttpSignatureDraft::REQUEST_TARGET}: #{request.method.downcase} #{request.original_fullpath}"
else
# Current versions of Mastodon incorrectly omit the query string from the (request-target) pseudo-header.
# Therefore, temporarily support such incorrect signatures for compatibility.
# TODO: remove eventually some time after release of the fixed version
"#{Request::REQUEST_TARGET}: #{request.method.downcase} #{request.path}"
"#{HttpSignatureDraft::REQUEST_TARGET}: #{request.method.downcase} #{request.path}"
end
when '(created)'
raise SignatureVerificationError, 'Invalid pseudo-header (created) for rsa-sha256' unless signature_algorithm == 'hs2019'

View File

@@ -8,6 +8,16 @@ module WebAppControllerConcern
before_action :redirect_unauthenticated_to_permalinks!
before_action :set_app_body_class
content_security_policy do |p|
policy = ContentSecurityPolicy.new
if policy.sso_host.present?
p.form_action policy.sso_host, -> { "https://#{request.host}/auth/auth/" }
else
p.form_action :none
end
end
end
def skip_csrf_meta_tags?
@@ -21,7 +31,7 @@ module WebAppControllerConcern
def redirect_unauthenticated_to_permalinks!
return if user_signed_in? # NOTE: Different from upstream because we allow moved users to log in
permalink_redirector = PermalinkRedirector.new(request.path)
permalink_redirector = PermalinkRedirector.new(request.original_fullpath)
return if permalink_redirector.redirect_path.blank?
expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?

View File

@@ -7,16 +7,11 @@ class Disputes::BaseController < ApplicationController
skip_before_action :require_functional!
before_action :set_body_classes
before_action :authenticate_user!
before_action :set_cache_headers
private
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View File

@@ -6,7 +6,6 @@ class Filters::StatusesController < ApplicationController
before_action :authenticate_user!
before_action :set_filter
before_action :set_status_filters
before_action :set_body_classes
before_action :set_cache_headers
PER_PAGE = 20
@@ -42,10 +41,6 @@ class Filters::StatusesController < ApplicationController
'remove' if params[:remove]
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View File

@@ -5,7 +5,6 @@ class FiltersController < ApplicationController
before_action :authenticate_user!
before_action :set_filter, only: [:edit, :update, :destroy]
before_action :set_body_classes
before_action :set_cache_headers
def index
@@ -52,10 +51,6 @@ class FiltersController < ApplicationController
params.require(:custom_filter).permit(:title, :expires_in, :filter_action, context: [], keywords_attributes: [:id, :keyword, :whole_word, :_destroy])
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View File

@@ -6,7 +6,6 @@ class InvitesController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_body_classes
before_action :set_cache_headers
def index
@@ -47,10 +46,6 @@ class InvitesController < ApplicationController
params.require(:invite).permit(:max_uses, :expires_in, :autofollow, :comment)
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View File

@@ -19,9 +19,7 @@ class MediaController < ApplicationController
redirect_to @media_attachment.file.url(:original)
end
def player
@body_classes = 'player'
end
def player; end
private
@@ -36,7 +34,7 @@ class MediaController < ApplicationController
def verify_permitted_status!
authorize @media_attachment.status, :show?
rescue Mastodon::NotPermittedError
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
not_found
end

View File

@@ -6,7 +6,6 @@ class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicatio
before_action :store_current_location
before_action :authenticate_resource_owner!
before_action :require_not_suspended!, only: :destroy
before_action :set_body_classes
before_action :set_cache_headers
before_action :set_last_used_at_by_app, only: :index, unless: -> { request.format == :json }
@@ -23,10 +22,6 @@ class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicatio
private
def set_body_classes
@body_classes = 'admin'
end
def store_current_location
store_location_for(:user, request.url)
end

View File

@@ -4,7 +4,6 @@ class Redirect::BaseController < ApplicationController
vary_by 'Accept-Language'
before_action :set_resource
before_action :set_app_body_class
def show
@redirect_path = ActivityPub::TagManager.instance.url_for(@resource)
@@ -14,10 +13,6 @@ class Redirect::BaseController < ApplicationController
private
def set_app_body_class
@body_classes = 'app-body'
end
def set_resource
raise NotImplementedError
end

View File

@@ -6,7 +6,6 @@ class RelationshipsController < ApplicationController
before_action :authenticate_user!
before_action :set_accounts, only: :show
before_action :set_relationships, only: :show
before_action :set_body_classes
before_action :set_cache_headers
helper_method :following_relationship?, :followed_by_relationship?, :mutual_relationship?
@@ -68,10 +67,6 @@ class RelationshipsController < ApplicationController
end
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View File

@@ -4,15 +4,10 @@ class Settings::BaseController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_body_classes
before_action :set_cache_headers
private
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View File

@@ -8,7 +8,7 @@ module Settings
def destroy
if valid_picture?
if UpdateAccountService.new.call(@account, { @picture => nil, "#{@picture}_remote_url" => '' })
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
redirect_to settings_profile_path, notice: I18n.t('generic.changes_saved_msg'), status: 303
else
redirect_to settings_profile_path

View File

@@ -8,7 +8,7 @@ class Settings::PrivacyController < Settings::BaseController
def update
if UpdateAccountService.new.call(@account, account_params.except(:settings))
current_user.update!(settings_attributes: account_params[:settings])
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
redirect_to settings_privacy_path, notice: I18n.t('generic.changes_saved_msg')
else
render :show

View File

@@ -9,7 +9,7 @@ class Settings::ProfilesController < Settings::BaseController
def update
if UpdateAccountService.new.call(@account, account_params)
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
redirect_to settings_profile_path, notice: I18n.t('generic.changes_saved_msg')
else
@account.build_fields

View File

@@ -15,7 +15,7 @@ module Settings
end
def create
session[:new_otp_secret] = User.generate_otp_secret(32)
session[:new_otp_secret] = User.generate_otp_secret
redirect_to new_settings_two_factor_authentication_confirmation_path
end

View File

@@ -2,14 +2,30 @@
class Settings::VerificationsController < Settings::BaseController
before_action :set_account
before_action :set_verified_links
def show
@verified_links = @account.fields.select(&:verified?)
def show; end
def update
if UpdateAccountService.new.call(@account, account_params)
ActivityPub::UpdateDistributionWorker.perform_in(ActivityPub::UpdateDistributionWorker::DEBOUNCE_DELAY, @account.id)
redirect_to settings_verification_path, notice: I18n.t('generic.changes_saved_msg')
else
render :show
end
end
private
def account_params
params.require(:account).permit(:attribution_domains_as_text)
end
def set_account
@account = current_account
end
def set_verified_links
@verified_links = @account.fields.select(&:verified?)
end
end

View File

@@ -4,7 +4,6 @@ class SeveredRelationshipsController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_body_classes
before_action :set_cache_headers
before_action :set_event, only: [:following, :followers]
@@ -51,10 +50,6 @@ class SeveredRelationshipsController < ApplicationController
account.local? ? account.local_username_and_domain : account.acct
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

Some files were not shown because too many files have changed in this diff Show More