Merge branch 'main' into glitch-soc/merge-upstream Conflicts: - `.github/dependabot.yml`: Updated upstream, removed in glitch-soc to disable noise. Kept removed. - `CODE_OF_CONDUCT.md`: Upstream updated to a new version of the covenant, but I have not read it yet, so kept unchanged. - `Gemfile.lock`: Not a real conflict, one upstream dependency updated textually too close to the glitch-soc only `hcaptcha` dependency. Applied upstream changes. - `app/controllers/admin/base_controller.rb`: Minor conflict due to glitch-soc's theming system. Applied upstream changes. - `app/controllers/application_controller.rb`: Minor conflict due to glitch-soc's theming system. Applied upstream changes. - `app/controllers/disputes/base_controller.rb`: Minor conflict due to glitch-soc's theming system. Applied upstream changes. - `app/controllers/relationships_controller.rb`: Minor conflict due to glitch-soc's theming system. Applied upstream changes. - `app/controllers/statuses_cleanup_controller.rb`: Minor conflict due to glitch-soc's theming system. Applied upstream changes. - `app/helpers/application_helper.rb`: Minor conflict due to glitch-soc's theming system. Applied upstream changes. - `app/javascript/mastodon/features/compose/components/compose_form.jsx`: Upstream added a highlight animation for onboarding, while we changed the max character limit. Applied our local changes on top of upstream's new version. - `app/views/layouts/application.html.haml`: Minor conflict due to glitch-soc's theming system. Applied upstream changes. - `stylelint.config.js`: Upstream added ignore paths, glitch-soc had extra ignore paths. Added the same paths as upstream.
440 files changed, 8271 insertions(+), 3854 deletions(-) M .eslintrc.js A .github/workflows/build-nightly.yml M .github/workflows/test-ruby.yml M .rubocop.yml M .rubocop_todo.yml M Gemfile M Gemfile.lock M app/controllers/about_controller.rb M app/controllers/accounts_controller.rb M app/controllers/activitypub/base_controller.rb M app/controllers/activitypub/collections_controller.rb M app/controllers/activitypub/followers_synchronizations_controller.rb M app/controllers/activitypub/outboxes_controller.rb M app/controllers/activitypub/replies_controller.rb M app/controllers/admin/base_controller.rb M app/controllers/api/base_controller.rb M app/controllers/api/v1/accounts/follower_accounts_controller.rb M app/controllers/api/v1/accounts/following_accounts_controller.rb M app/controllers/api/v1/accounts/lookup_controller.rb M app/controllers/api/v1/accounts/statuses_controller.rb M app/controllers/api/v1/accounts_controller.rb M app/controllers/api/v1/custom_emojis_controller.rb M app/controllers/api/v1/directories_controller.rb M app/controllers/api/v1/instances/activity_controller.rb M app/controllers/api/v1/instances/domain_blocks_controller.rb M app/controllers/api/v1/instances/extended_descriptions_controller.rb M app/controllers/api/v1/instances/peers_controller.rb M app/controllers/api/v1/instances/privacy_policies_controller.rb M app/controllers/api/v1/instances/rules_controller.rb M app/controllers/api/v1/instances/translation_languages_controller.rb M app/controllers/api/v1/instances_controller.rb M app/controllers/api/v1/polls_controller.rb M app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb M app/controllers/api/v1/statuses/histories_controller.rb M app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb M app/controllers/api/v1/statuses_controller.rb M app/controllers/api/v1/tags_controller.rb M app/controllers/api/v1/timelines/public_controller.rb M app/controllers/api/v1/timelines/tag_controller.rb M app/controllers/api/v1/trends/links_controller.rb M app/controllers/api/v1/trends/statuses_controller.rb M app/controllers/api/v1/trends/tags_controller.rb M app/controllers/api/v2/instances_controller.rb M app/controllers/application_controller.rb M app/controllers/auth/registrations_controller.rb A app/controllers/concerns/api_caching_concern.rb M app/controllers/concerns/cache_concern.rb M app/controllers/concerns/web_app_controller_concern.rb M app/controllers/custom_css_controller.rb M app/controllers/disputes/base_controller.rb M app/controllers/emojis_controller.rb M app/controllers/filters/statuses_controller.rb M app/controllers/filters_controller.rb M app/controllers/follower_accounts_controller.rb M app/controllers/following_accounts_controller.rb M app/controllers/home_controller.rb M app/controllers/instance_actors_controller.rb M app/controllers/invites_controller.rb M app/controllers/manifests_controller.rb M app/controllers/media_controller.rb M app/controllers/media_proxy_controller.rb M app/controllers/oauth/authorizations_controller.rb M app/controllers/oauth/authorized_applications_controller.rb M app/controllers/privacy_controller.rb M app/controllers/relationships_controller.rb M app/controllers/settings/base_controller.rb M app/controllers/statuses_cleanup_controller.rb M app/controllers/statuses_controller.rb M app/controllers/tags_controller.rb M app/controllers/well_known/host_meta_controller.rb M app/controllers/well_known/nodeinfo_controller.rb M app/controllers/well_known/webfinger_controller.rb M app/helpers/application_helper.rb M app/helpers/instance_helper.rb M app/helpers/jsonld_helper.rb M app/helpers/languages_helper.rb A app/helpers/media_component_helper.rb A app/helpers/react_component_helper.rb M app/helpers/statuses_helper.rb A app/javascript/images/elephant_ui_conversation.svg M app/javascript/mastodon/actions/compose.js M app/javascript/mastodon/actions/search.js M app/javascript/mastodon/components/account.jsx M app/javascript/mastodon/components/check.jsx M app/javascript/mastodon/components/column_back_button.jsx M app/javascript/mastodon/components/edited_timestamp/index.jsx M app/javascript/mastodon/components/hashtag.jsx M app/javascript/mastodon/components/logo.jsx M app/javascript/mastodon/components/short_number.jsx M app/javascript/mastodon/components/status.jsx M app/javascript/mastodon/components/status_content.jsx A app/javascript/mastodon/components/verified_badge.jsx M app/javascript/mastodon/containers/status_container.jsx M app/javascript/mastodon/features/account/components/header.jsx M app/javascript/mastodon/features/account_timeline/components/header.jsx M app/javascript/mastodon/features/account_timeline/containers/header_container.jsx M app/javascript/mastodon/features/compose/components/compose_form.jsx M app/javascript/mastodon/features/compose/components/search.jsx M app/javascript/mastodon/features/compose/components/search_results.jsx M app/javascript/mastodon/features/compose/containers/search_container.js M app/javascript/mastodon/features/emoji/__tests__/emoji-test.js M app/javascript/mastodon/features/emoji/emoji.js M app/javascript/mastodon/features/explore/index.jsx D app/javascript/mastodon/features/follow_recommendations/components/account.jsx D app/javascript/mastodon/features/follow_recommendations/index.jsx M app/javascript/mastodon/features/notifications/components/report.jsx A app/javascript/mastodon/features/onboarding/components/arrow_small_right.jsx A app/javascript/mastodon/features/onboarding/components/progress_indicator.jsx A app/javascript/mastodon/features/onboarding/components/step.jsx A app/javascript/mastodon/features/onboarding/follows.jsx A app/javascript/mastodon/features/onboarding/index.jsx A app/javascript/mastodon/features/onboarding/share.jsx M app/javascript/mastodon/features/status/components/card.jsx M app/javascript/mastodon/features/status/index.jsx M app/javascript/mastodon/features/ui/components/header.jsx M app/javascript/mastodon/features/ui/index.jsx M app/javascript/mastodon/features/ui/util/async-components.js M app/javascript/mastodon/locales/af.json M app/javascript/mastodon/locales/an.json M app/javascript/mastodon/locales/ar.json M app/javascript/mastodon/locales/ast.json M app/javascript/mastodon/locales/be.json M app/javascript/mastodon/locales/bg.json M app/javascript/mastodon/locales/bn.json M app/javascript/mastodon/locales/br.json M app/javascript/mastodon/locales/bs.json M app/javascript/mastodon/locales/ca.json M app/javascript/mastodon/locales/ckb.json M app/javascript/mastodon/locales/co.json M app/javascript/mastodon/locales/cs.json D app/javascript/mastodon/locales/csb.json M app/javascript/mastodon/locales/cy.json M app/javascript/mastodon/locales/da.json M app/javascript/mastodon/locales/de.json M app/javascript/mastodon/locales/defaultMessages.json M app/javascript/mastodon/locales/el.json M app/javascript/mastodon/locales/en-GB.json M app/javascript/mastodon/locales/en.json M app/javascript/mastodon/locales/eo.json M app/javascript/mastodon/locales/es-AR.json M app/javascript/mastodon/locales/es-MX.json M app/javascript/mastodon/locales/es.json M app/javascript/mastodon/locales/et.json M app/javascript/mastodon/locales/eu.json M app/javascript/mastodon/locales/fa.json M app/javascript/mastodon/locales/fi.json M app/javascript/mastodon/locales/fo.json M app/javascript/mastodon/locales/fr-QC.json M app/javascript/mastodon/locales/fr.json M app/javascript/mastodon/locales/fy.json M app/javascript/mastodon/locales/ga.json M app/javascript/mastodon/locales/gd.json M app/javascript/mastodon/locales/gl.json M app/javascript/mastodon/locales/he.json M app/javascript/mastodon/locales/hi.json M app/javascript/mastodon/locales/hr.json M app/javascript/mastodon/locales/hu.json M app/javascript/mastodon/locales/hy.json M app/javascript/mastodon/locales/id.json M app/javascript/mastodon/locales/ig.json M app/javascript/mastodon/locales/io.json M app/javascript/mastodon/locales/is.json M app/javascript/mastodon/locales/it.json M app/javascript/mastodon/locales/ja.json M app/javascript/mastodon/locales/ka.json M app/javascript/mastodon/locales/kab.json M app/javascript/mastodon/locales/kk.json M app/javascript/mastodon/locales/kn.json M app/javascript/mastodon/locales/ko.json M app/javascript/mastodon/locales/ku.json M app/javascript/mastodon/locales/kw.json M app/javascript/mastodon/locales/la.json M app/javascript/mastodon/locales/lt.json M app/javascript/mastodon/locales/lv.json M app/javascript/mastodon/locales/mk.json M app/javascript/mastodon/locales/ml.json M app/javascript/mastodon/locales/mr.json M app/javascript/mastodon/locales/ms.json M app/javascript/mastodon/locales/my.json M app/javascript/mastodon/locales/nl.json M app/javascript/mastodon/locales/nn.json M app/javascript/mastodon/locales/no.json M app/javascript/mastodon/locales/oc.json M app/javascript/mastodon/locales/pa.json M app/javascript/mastodon/locales/pl.json M app/javascript/mastodon/locales/pt-BR.json M app/javascript/mastodon/locales/pt-PT.json M app/javascript/mastodon/locales/ro.json M app/javascript/mastodon/locales/ru.json M app/javascript/mastodon/locales/sa.json M app/javascript/mastodon/locales/sc.json M app/javascript/mastodon/locales/sco.json M app/javascript/mastodon/locales/si.json M app/javascript/mastodon/locales/sk.json M app/javascript/mastodon/locales/sl.json M app/javascript/mastodon/locales/sq.json M app/javascript/mastodon/locales/sr-Latn.json M app/javascript/mastodon/locales/sr.json M app/javascript/mastodon/locales/sv.json M app/javascript/mastodon/locales/szl.json M app/javascript/mastodon/locales/ta.json M app/javascript/mastodon/locales/tai.json M app/javascript/mastodon/locales/te.json M app/javascript/mastodon/locales/th.json M app/javascript/mastodon/locales/tr.json M app/javascript/mastodon/locales/tt.json M app/javascript/mastodon/locales/ug.json M app/javascript/mastodon/locales/uk.json M app/javascript/mastodon/locales/ur.json M app/javascript/mastodon/locales/uz.json M app/javascript/mastodon/locales/vi.json M app/javascript/mastodon/locales/zgh.json M app/javascript/mastodon/locales/zh-CN.json M app/javascript/mastodon/locales/zh-HK.json M app/javascript/mastodon/locales/zh-TW.json M app/javascript/mastodon/reducers/accounts_counters.js M app/javascript/mastodon/reducers/compose.js M app/javascript/mastodon/utils/numbers.js M app/javascript/styles/mastodon/components.scss M app/lib/activitypub/activity/create.rb M app/lib/activitypub/activity/delete.rb M app/lib/activitypub/activity/flag.rb M app/lib/activitypub/activity/update.rb M app/lib/activitypub/dereferencer.rb M app/lib/emoji_formatter.rb M app/lib/plain_text_formatter.rb M app/lib/text_formatter.rb M app/models/account.rb M app/models/account_statuses_cleanup_policy.rb M app/models/concerns/omniauthable.rb M app/services/activitypub/fetch_featured_collection_service.rb M app/services/activitypub/fetch_featured_tags_collection_service.rb M app/services/activitypub/fetch_replies_service.rb M app/services/activitypub/prepare_followers_synchronization_service.rb M app/services/activitypub/synchronize_followers_service.rb M app/services/fetch_oembed_service.rb M app/views/auth/registrations/new.html.haml M app/views/auth/registrations/rules.html.haml M app/views/layouts/application.html.haml M app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb M config/application.rb M config/initializers/rack_attack.rb M config/initializers/strong_migrations.rb M config/locales/activerecord.cs.yml D config/locales/activerecord.csb.yml M config/locales/an.yml M config/locales/ar.yml M config/locales/ast.yml M config/locales/be.yml M config/locales/bg.yml M config/locales/bn.yml M config/locales/br.yml M config/locales/ca.yml M config/locales/ckb.yml M config/locales/co.yml M config/locales/cs.yml D config/locales/csb.yml M config/locales/cy.yml M config/locales/da.yml M config/locales/de.yml M config/locales/devise.bg.yml D config/locales/devise.csb.yml M config/locales/devise.de.yml M config/locales/devise.fa.yml M config/locales/devise.nl.yml M config/locales/devise.th.yml D config/locales/doorkeeper.csb.yml M config/locales/doorkeeper.de.yml M config/locales/doorkeeper.ko.yml M config/locales/doorkeeper.ku.yml M config/locales/el.yml M config/locales/en-GB.yml M config/locales/eo.yml M config/locales/es-AR.yml M config/locales/es-MX.yml M config/locales/es.yml M config/locales/et.yml M config/locales/eu.yml M config/locales/fa.yml M config/locales/fi.yml M config/locales/fo.yml M config/locales/fr-QC.yml M config/locales/fr.yml M config/locales/fy.yml M config/locales/ga.yml M config/locales/gd.yml M config/locales/gl.yml M config/locales/he.yml M config/locales/hr.yml M config/locales/hu.yml M config/locales/hy.yml M config/locales/id.yml M config/locales/io.yml M config/locales/is.yml M config/locales/it.yml M config/locales/ja.yml M config/locales/ka.yml M config/locales/kab.yml M config/locales/kk.yml M config/locales/ko.yml M config/locales/ku.yml M config/locales/lt.yml M config/locales/lv.yml M config/locales/ml.yml M config/locales/ms.yml M config/locales/my.yml M config/locales/nl.yml M config/locales/nn.yml M config/locales/no.yml M config/locales/oc.yml M config/locales/pl.yml M config/locales/pt-BR.yml M config/locales/pt-PT.yml M config/locales/ro.yml M config/locales/ru.yml M config/locales/sc.yml M config/locales/sco.yml M config/locales/si.yml M config/locales/simple_form.be.yml M config/locales/simple_form.bg.yml M config/locales/simple_form.ca.yml M config/locales/simple_form.cs.yml D config/locales/simple_form.csb.yml M config/locales/simple_form.cy.yml M config/locales/simple_form.da.yml M config/locales/simple_form.de.yml M config/locales/simple_form.el.yml M config/locales/simple_form.en-GB.yml M config/locales/simple_form.es-MX.yml M config/locales/simple_form.es.yml M config/locales/simple_form.et.yml M config/locales/simple_form.eu.yml M config/locales/simple_form.fa.yml M config/locales/simple_form.fi.yml M config/locales/simple_form.fo.yml M config/locales/simple_form.fy.yml M config/locales/simple_form.gl.yml M config/locales/simple_form.he.yml M config/locales/simple_form.hu.yml M config/locales/simple_form.is.yml M config/locales/simple_form.it.yml M config/locales/simple_form.ja.yml M config/locales/simple_form.ko.yml M config/locales/simple_form.lv.yml M config/locales/simple_form.my.yml M config/locales/simple_form.nl.yml M config/locales/simple_form.no.yml M config/locales/simple_form.pl.yml M config/locales/simple_form.pt-PT.yml M config/locales/simple_form.ru.yml M config/locales/simple_form.sl.yml M config/locales/simple_form.sq.yml M config/locales/simple_form.sr.yml M config/locales/simple_form.sv.yml M config/locales/simple_form.th.yml M config/locales/simple_form.tr.yml M config/locales/simple_form.zh-CN.yml M config/locales/simple_form.zh-TW.yml M config/locales/sk.yml M config/locales/sl.yml M config/locales/sq.yml M config/locales/sr-Latn.yml M config/locales/sr.yml M config/locales/sv.yml D config/locales/tai.yml M config/locales/th.yml M config/locales/tr.yml M config/locales/uk.yml M config/locales/vi.yml M config/locales/zh-CN.yml M config/locales/zh-HK.yml M config/locales/zh-TW.yml M db/seeds.rb M dist/mastodon-streaming.service A lib/action_controller/conditional_get_extensions.rb M lib/mastodon/accounts_cli.rb M package.json M scalingo.json M spec/controllers/accounts_controller_spec.rb M spec/controllers/activitypub/followers_synchronizations_controller_spec.rb M spec/controllers/admin/base_controller_spec.rb M spec/controllers/admin/export_domain_blocks_controller_spec.rb M spec/controllers/api/base_controller_spec.rb M spec/controllers/api/oembed_controller_spec.rb M spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb M spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb M spec/controllers/api/v1/accounts/statuses_controller_spec.rb M spec/controllers/api/v1/bookmarks_controller_spec.rb M spec/controllers/api/v1/favourites_controller_spec.rb M spec/controllers/api/v1/reports_controller_spec.rb M spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb M spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb M spec/controllers/application_controller_spec.rb M spec/controllers/auth/registrations_controller_spec.rb M spec/controllers/custom_css_controller_spec.rb M spec/controllers/filters/statuses_controller_spec.rb M spec/controllers/filters_controller_spec.rb M spec/controllers/follower_accounts_controller_spec.rb M spec/controllers/following_accounts_controller_spec.rb M spec/controllers/invites_controller_spec.rb M spec/controllers/manifests_controller_spec.rb M spec/controllers/oauth/authorizations_controller_spec.rb M spec/controllers/oauth/authorized_applications_controller_spec.rb M spec/controllers/relationships_controller_spec.rb M spec/controllers/settings/aliases_controller_spec.rb M spec/controllers/settings/applications_controller_spec.rb M spec/controllers/settings/deletes_controller_spec.rb M spec/controllers/settings/exports_controller_spec.rb M spec/controllers/settings/imports_controller_spec.rb M spec/controllers/settings/login_activities_controller_spec.rb M spec/controllers/settings/migration/redirects_controller_spec.rb M spec/controllers/settings/preferences/appearance_controller_spec.rb M spec/controllers/settings/preferences/notifications_controller_spec.rb M spec/controllers/settings/preferences/other_controller_spec.rb M spec/controllers/settings/profiles_controller_spec.rb M spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb M spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb M spec/controllers/shares_controller_spec.rb M spec/controllers/statuses_cleanup_controller_spec.rb M spec/controllers/statuses_controller_spec.rb M spec/controllers/tags_controller_spec.rb A spec/features/oauth_spec.rb M spec/helpers/application_helper_spec.rb A spec/helpers/media_component_helper_spec.rb A spec/helpers/react_component_helper_spec.rb M spec/models/account_filter_spec.rb M spec/models/account_spec.rb M spec/models/account_statuses_cleanup_policy_spec.rb M spec/models/custom_emoji_filter_spec.rb M spec/models/status_spec.rb M spec/models/user_spec.rb M spec/presenters/familiar_followers_presenter_spec.rb M spec/rails_helper.rb A spec/requests/anonymous_cookies_spec.rb M spec/services/activitypub/fetch_featured_collection_service_spec.rb M spec/services/update_status_service_spec.rb M spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb M streaming/index.js M stylelint.config.js M yarn.lock