All notable changes to this project will be documented in this file.
## [4.1.5] - 2023-07-21
### Added
- Add check preventing Sidekiq workers from running with Makara configured ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25850))
### Changed
- Change request timeout handling to use a longer deadline ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26055))
### Fixed
- Fix moderation interface for remote instances with a .zip TLD ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25885))
- Fix remote accounts being possibly persisted to database with incomplete protocol values ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25886))
- Fix trending publishers table not rendering correctly on narrow screens ([vmstan](https://github.com/mastodon/mastodon/pull/25945))
### Security
- Fix CSP headers being unintentionally wide ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26105))
redraftMessage:{id:'confirmations.redraft.message',defaultMessage:'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.'},
redraftMessage:{id:'confirmations.redraft.message',defaultMessage:'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.'},
replyMessage:{id:'confirmations.reply.message',defaultMessage:'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?'},
@ -47,7 +47,7 @@ class Statuses extends PureComponent {
return(
<>
<DismissableBannerid='explore/statuses'>
<FormattedMessageid='dismissable_banner.explore_statuses'defaultMessage='These are posts from across the social web that are gaining traction today. Newer posts with more boosts and favourites are ranked higher.'/>
<FormattedMessageid='dismissable_banner.explore_statuses'defaultMessage='These are posts from across the social web that are gaining traction today. Newer posts with more boosts and favorites are ranked higher.'/>
constemptyMessage=<FormattedMessageid='empty_column.favourited_statuses'defaultMessage="You don't have any favourite posts yet. When you favourite one, it will show up here."/>;
constemptyMessage=<FormattedMessageid='empty_column.favourited_statuses'defaultMessage="You don't have any favorite posts yet. When you favorite one, it will show up here."/>;
@ -61,7 +61,7 @@ class Favourites extends ImmutablePureComponent {
);
}
constemptyMessage=<FormattedMessageid='empty_column.favourites'defaultMessage='No one has favourited this post yet. When someone does, they will show up here.'/>;
constemptyMessage=<FormattedMessageid='empty_column.favourites'defaultMessage='No one has favorited this post yet. When someone does, they will show up here.'/>;
actionDescription=<FormattedMessageid='interaction_modal.description.favourite'defaultMessage='With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.'/>;
actionDescription=<FormattedMessageid='interaction_modal.description.favourite'defaultMessage='With an account on Mastodon, you can favorite this post to let the author know you appreciate it and save it for later.'/>;
break;
case'follow':
icon=<Iconid='user-plus'/>;
@ -158,7 +158,7 @@ class InteractionModal extends PureComponent {
<h3><FormattedMessageid='interaction_modal.on_another_server'defaultMessage='On a different server'/></h3>
<p><FormattedMessageid='interaction_modal.other_server_instructions'defaultMessage='Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.'/></p>
<p><FormattedMessageid='interaction_modal.other_server_instructions'defaultMessage='Copy and paste this URL into the search field of your favorite Mastodon app or the web interface of your Mastodon server.'/></p>
replyMessage:{id:'confirmations.reply.message',defaultMessage:'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?'},
open:{id:'status.open',defaultMessage:'Expand this status'},
redraftMessage:{id:'confirmations.redraft.message',defaultMessage:'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.'},
redraftMessage:{id:'confirmations.redraft.message',defaultMessage:'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.'},
replyMessage:{id:'confirmations.reply.message',defaultMessage:'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?'},
redraftMessage:{id:'confirmations.redraft.message',defaultMessage:'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.'},
redraftMessage:{id:'confirmations.redraft.message',defaultMessage:'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.'},
revealAll:{id:'status.show_more_all',defaultMessage:'Show more for all'},
hideAll:{id:'status.show_less_all',defaultMessage:'Show less for all'},
statusTitleWithAttachments:{id:'status.title.with_attachments',defaultMessage:'{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}'},
<p><FormattedMessageid='sign_in_banner.text'defaultMessage='Login to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.'/></p>
<p><FormattedMessageid='sign_in_banner.text'defaultMessage='Login to follow profiles or hashtags, favorite, share and reply to posts. You can also interact from your account on a different server.'/></p>
"confirmations.mute.explanation":"This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
"confirmations.mute.message":"Are you sure you want to mute {name}?",
"confirmations.redraft.message":"Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"confirmations.redraft.message":"Are you sure you want to delete this post and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.",
"confirmations.reply.confirm":"Reply",
"confirmations.reply.message":"Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.unfollow.confirm":"Unfollow",
@ -202,7 +202,7 @@
"dismissable_banner.community_timeline":"These are the most recent public posts from people whose accounts are hosted by {domain}.",
"dismissable_banner.dismiss":"Dismiss",
"dismissable_banner.explore_links":"These are news stories being shared the most on the social web today. Newer news stories posted by more different people are ranked higher.",
"dismissable_banner.explore_statuses":"These are posts from across the social web that are gaining traction today. Newer posts with more boosts and favourites are ranked higher.",
"dismissable_banner.explore_statuses":"These are posts from across the social web that are gaining traction today. Newer posts with more boosts and favorites are ranked higher.",
"dismissable_banner.explore_tags":"These are hashtags that are gaining traction on the social web today. Hashtags that are used by more different people are ranked higher.",
"dismissable_banner.public_timeline":"These are the most recent public posts from people on the social web that people on {domain} follow.",
"embed.instructions":"Embed this post on your website by copying the code below.",
@ -231,8 +231,8 @@
"empty_column.direct":"You don't have any private mentions yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks":"There are no blocked domains yet.",
"empty_column.explore_statuses":"Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses":"You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites":"No one has favourited this post yet. When someone does, they will show up here.",
"empty_column.favourited_statuses":"You don't have any favorite posts yet. When you favorite one, it will show up here.",
"empty_column.favourites":"No one has favorited this post yet. When someone does, they will show up here.",
"empty_column.follow_requests":"You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.followed_tags":"You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.hashtag":"There is nothing in this hashtag yet.",
@ -307,15 +307,15 @@
"home.explore_prompt.title":"This is your home base within Mastodon.",
"home.hide_announcements":"Hide announcements",
"home.show_announcements":"Show announcements",
"interaction_modal.description.favourite":"With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.favourite":"With an account on Mastodon, you can favorite this post to let the author know you appreciate it and save it for later.",
"interaction_modal.description.follow":"With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
"interaction_modal.description.reblog":"With an account on Mastodon, you can boost this post to share it with your own followers.",
"interaction_modal.description.reply":"With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server":"On a different server",
"interaction_modal.on_this_server":"On this server",
"interaction_modal.other_server_instructions":"Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.other_server_instructions":"Copy and paste this URL into the search field of your favorite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble":"Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"sign_in_banner.text":"Login to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"sign_in_banner.text":"Login to follow profiles or hashtags, favorite, share and reply to posts. You can also interact from your account on a different server.",
"status.admin_account":"Open moderation interface for @{name}",
"status.admin_domain":"Open moderation interface for {domain}",
"status.admin_status":"Open this post in the moderation interface",
@ -612,7 +612,7 @@
"status.edited":"Edited {date}",
"status.edited_x_times":"Edited {count, plural, one {{count} time} other {{count} times}}",
bookmarks_html:You are about to <strong>replace your bookmarks</strong> with up to <strong>%{total_items} posts</strong> from <strong>%{filename}</strong>.
domain_blocking_html:You are about to <strong>replace your domain block list</strong> with up to <strong>%{total_items} domains</strong> from <strong>%{filename}</strong>.
following_html:You are about to <strong>follow</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong> and <strong>stop following anyone else</strong>.
lists_html:You are about to <strong>replace your lists</strong> with contents of <strong>%{filename}</strong>. Up to <strong>%{total_items} accounts</strong> will be added to new lists.
muting_html:You are about to <strong>replace your list of muted accounts</strong> with up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
preambles:
blocking_html:You are about to <strong>block</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
bookmarks_html:You are about to add up to <strong>%{total_items} posts</strong> from <strong>%{filename}</strong> to your <strong>bookmarks</strong>.
domain_blocking_html:You are about to <strong>block</strong> up to <strong>%{total_items} domains</strong> from <strong>%{filename}</strong>.
following_html:You are about to <strong>follow</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
lists_html:You are about to add up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong> to your <strong>lists</strong>. New lists will be created if there is no list to add to.
muting_html:You are about to <strong>mute</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
preface:You can import data that you have exported from another server, such as a list of the people you are following or blocking.