Merge pull request #2406 from ClearlyClaire/glitch-soc/merge-upstream Merge upstream changes up to 6273416292090b2f6bfda33f070cea325a1759df
406 files changed, 8911 insertions(+), 2389 deletions(-) M .github/workflows/build-container-image.yml M .github/workflows/build-nightly.yml M .github/workflows/build-push-pr.yml M .github/workflows/build-releases.yml M .github/workflows/bundler-audit.yml M .github/workflows/check-i18n.yml M .github/workflows/codeql.yml M .github/workflows/crowdin-download.yml M .github/workflows/crowdin-upload.yml M .github/workflows/lint-css.yml M .github/workflows/lint-haml.yml M .github/workflows/lint-js.yml M .github/workflows/lint-json.yml M .github/workflows/lint-md.yml M .github/workflows/lint-ruby.yml M .github/workflows/lint-yml.yml M .github/workflows/test-js.yml M .github/workflows/test-migrations-one-step.yml M .github/workflows/test-migrations-two-step.yml M .github/workflows/test-ruby.yml M .nvmrc M .rubocop_todo.yml M CHANGELOG.md M Dockerfile M FEDERATION.md M Gemfile.lock M SECURITY.md M Vagrantfile A app/controllers/api/v1/admin/tags_controller.rb M app/controllers/api/v1/directories_controller.rb M app/controllers/api/v1/peers/search_controller.rb M app/controllers/concerns/signature_verification.rb M app/controllers/concerns/web_app_controller_concern.rb M app/javascript/core/remote_interaction_helper.ts M app/javascript/flavours/glitch/actions/notifications.js M app/javascript/flavours/glitch/actions/search.js M app/javascript/flavours/glitch/actions/store.js M app/javascript/flavours/glitch/components/dismissable_banner.tsx M app/javascript/flavours/glitch/features/audio/index.jsx M app/javascript/flavours/glitch/features/compose/components/search.jsx M app/javascript/flavours/glitch/features/compose/components/search_results.jsx M app/javascript/flavours/glitch/features/compose/containers/search_container.js A app/javascript/flavours/glitch/features/explore/components/search_section.jsx M app/javascript/flavours/glitch/features/explore/results.jsx M app/javascript/flavours/glitch/features/interaction_modal/index.jsx M app/javascript/flavours/glitch/features/video/index.jsx M app/javascript/flavours/glitch/main.jsx M app/javascript/flavours/glitch/reducers/search.js M app/javascript/flavours/glitch/settings.js M app/javascript/flavours/glitch/styles/components/accounts.scss M app/javascript/flavours/glitch/styles/components/columns.scss M app/javascript/flavours/glitch/styles/components/drawer.scss M app/javascript/flavours/glitch/styles/components/search.scss M app/javascript/flavours/glitch/styles/rtl.scss D app/javascript/mastodon/actions/account_notes.js A app/javascript/mastodon/actions/account_notes.ts M app/javascript/mastodon/actions/notifications.js M app/javascript/mastodon/actions/search.js M app/javascript/mastodon/actions/store.js R app/javascript/mastodon/{api.js => api.ts} M app/javascript/mastodon/components/animated_number.tsx M app/javascript/mastodon/components/dismissable_banner.tsx M app/javascript/mastodon/components/icon_button.tsx M app/javascript/mastodon/components/status_action_bar.jsx M app/javascript/mastodon/features/account/containers/account_note_container.js M app/javascript/mastodon/features/audio/index.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 A app/javascript/mastodon/features/explore/components/search_section.jsx M app/javascript/mastodon/features/explore/results.jsx M app/javascript/mastodon/features/interaction_modal/index.jsx M app/javascript/mastodon/features/picture_in_picture/components/footer.jsx M app/javascript/mastodon/features/video/index.jsx 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 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/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/main.jsx M app/javascript/mastodon/reducers/relationships.js M app/javascript/mastodon/reducers/search.js M app/javascript/mastodon/settings.js M app/javascript/mastodon/store/index.ts M app/javascript/mastodon/store/middlewares/errors.ts M app/javascript/mastodon/store/middlewares/loading_bar.ts M app/javascript/mastodon/store/middlewares/sounds.ts A app/javascript/mastodon/store/store.ts A app/javascript/mastodon/store/typed_functions.ts M app/javascript/styles/mastodon/components.scss M app/javascript/styles/mastodon/rtl.scss R app/{models => lib}/account_statuses_filter.rb M app/lib/activitypub/activity/update.rb A app/lib/admin/account_statuses_filter.rb M app/lib/search_query_parser.rb M app/lib/search_query_transformer.rb M app/lib/tag_manager.rb M app/models/account.rb M app/models/admin/status_batch_action.rb M app/models/media_attachment.rb M app/models/poll.rb M app/models/status_stat.rb M app/models/tag.rb M app/models/trends/statuses.rb M app/policies/admin/status_policy.rb M app/serializers/initial_state_serializer.rb M app/serializers/rest/admin/tag_serializer.rb M app/services/activitypub/fetch_remote_poll_service.rb M app/services/activitypub/process_status_update_service.rb M app/services/notify_service.rb M app/services/statuses_search_service.rb M app/views/admin/trends/tags/_tag.html.haml M app/views/admin_mailer/new_appeal.text.erb M app/views/notification_mailer/_status.html.haml M app/views/user_mailer/appeal_approved.html.haml M app/views/user_mailer/appeal_approved.text.erb M app/views/user_mailer/appeal_rejected.html.haml M app/views/user_mailer/appeal_rejected.text.erb M app/views/user_mailer/suspicious_sign_in.html.haml M app/views/user_mailer/suspicious_sign_in.text.erb R config/initializers/{omniauth => 3_omniauth}.rb M config/initializers/content_security_policy.rb M config/locales/activerecord.ar.yml M config/locales/activerecord.bn.yml M config/locales/activerecord.da.yml M config/locales/activerecord.de.yml M config/locales/activerecord.eu.yml M config/locales/activerecord.fr.yml M config/locales/activerecord.hi.yml M config/locales/activerecord.io.yml M config/locales/activerecord.lv.yml M config/locales/activerecord.ro.yml M config/locales/activerecord.sv.yml M config/locales/activerecord.zh-HK.yml M config/locales/activerecord.zh-TW.yml M config/locales/af.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/bs.yml M config/locales/ca.yml M config/locales/co.yml M config/locales/cy.yml M config/locales/da.yml M config/locales/de.yml M config/locales/devise.ar.yml M config/locales/devise.da.yml M config/locales/devise.de.yml M config/locales/devise.eu.yml M config/locales/devise.fi.yml M config/locales/devise.hi.yml M config/locales/devise.is.yml M config/locales/devise.pt-BR.yml M config/locales/devise.sr.yml M config/locales/devise.th.yml M config/locales/devise.zh-CN.yml M config/locales/doorkeeper.ar.yml M config/locales/doorkeeper.bg.yml M config/locales/doorkeeper.de.yml M config/locales/doorkeeper.eo.yml M config/locales/doorkeeper.eu.yml M config/locales/doorkeeper.fy.yml M config/locales/doorkeeper.io.yml M config/locales/doorkeeper.lv.yml M config/locales/doorkeeper.pt-BR.yml M config/locales/doorkeeper.ro.yml M config/locales/doorkeeper.sq.yml M config/locales/doorkeeper.sv.yml M config/locales/doorkeeper.th.yml M config/locales/doorkeeper.zh-HK.yml M config/locales/en-GB.yml M config/locales/en.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/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/hi.yml M config/locales/hr.yml M config/locales/hu.yml M config/locales/hy.yml M config/locales/ig.yml M config/locales/is.yml M config/locales/it.yml M config/locales/ja.yml M config/locales/ka.yml M config/locales/kn.yml M config/locales/ko.yml M config/locales/kw.yml M config/locales/la.yml M config/locales/lt.yml M config/locales/lv.yml M config/locales/mk.yml M config/locales/ml.yml M config/locales/mr.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/pa.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/sa.yml M config/locales/sc.yml M config/locales/simple_form.ar.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.cy.yml M config/locales/simple_form.da.yml M config/locales/simple_form.de.yml M config/locales/simple_form.en-GB.yml M config/locales/simple_form.eo.yml M config/locales/simple_form.es-AR.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.fi.yml M config/locales/simple_form.fo.yml M config/locales/simple_form.fr-QC.yml M config/locales/simple_form.fr.yml M config/locales/simple_form.fy.yml M config/locales/simple_form.gd.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.ms.yml M config/locales/simple_form.my.yml M config/locales/simple_form.nl.yml M config/locales/simple_form.nn.yml M config/locales/simple_form.no.yml M config/locales/simple_form.pl.yml M config/locales/simple_form.pt-BR.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-Latn.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.uk.yml M config/locales/simple_form.vi.yml M config/locales/simple_form.zh-CN.yml M config/locales/simple_form.zh-HK.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 M config/locales/szl.yml M config/locales/ta.yml M config/locales/tai.yml M config/locales/te.yml M config/locales/th.yml M config/locales/tr.yml M config/locales/tt.yml M config/locales/ug.yml M config/locales/uk.yml M config/locales/ur.yml M config/locales/uz.yml M config/locales/vi.yml M config/locales/zgh.yml M config/locales/zh-CN.yml M config/locales/zh-HK.yml M config/locales/zh-TW.yml M config/routes/api.rb M config/webpack/production.js A db/migrate/20230907150100_add_index_account_stats_on_last_status_at_and_account_id.rb M db/schema.rb M lib/mastodon/cli/search.rb M lib/mastodon/sidekiq_middleware.rb M lib/mastodon/snowflake.rb M lib/mastodon/version.rb M lib/tasks/spec.rake M package.json M spec/controllers/admin/statuses_controller_spec.rb M spec/controllers/api/v1/directories_controller_spec.rb M spec/lib/search_query_transformer_spec.rb M spec/models/account_statuses_filter_spec.rb M spec/policies/admin/status_policy_spec.rb M spec/rails_helper.rb A spec/requests/api/v1/admin/tags_spec.rb A spec/search/models/concerns/account_search_spec.rb A spec/search/models/concerns/account_statuses_search_spec.rb M spec/services/activitypub/process_status_update_service_spec.rb M spec/spec_helper.rb M yarn.lock