All notable changes to this project will be documented in this file.
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.
form-action
Content-Security-Policy directive to be more restrictive (#26897 and #32241 by @ClearlyClaire)group_key
attribute to Notification
entitiesGET /api/v2/notifications
: https://docs.joinmastodon.org/methods/grouped_notifications/#get-groupedGET /api/v2/notifications/:group_key
: https://docs.joinmastodon.org/methods/grouped_notifications/#get-notification-groupGET /api/v2/notifications/:group_key/accounts
: https://docs.joinmastodon.org/methods/grouped_notifications/#get-group-accountsPOST /api/v2/notifications/:group_key/dimsiss
: https://docs.joinmastodon.org/methods/grouped_notifications/#dismiss-groupGET /api/v2/notifications/:unread_count
: https://docs.joinmastodon.org/methods/grouped_notifications/#unread-group-countAdd 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.\ This adds the following REST API endpoints:
GET /api/v2/notifications/policy
: https://docs.joinmastodon.org/methods/notifications/#get-policyPATCH /api/v2/notifications/policy
: https://docs.joinmastodon.org/methods/notifications/#update-the-filtering-policy-for-notificationsGET /api/v1/notifications/requests
: https://docs.joinmastodon.org/methods/notifications/#get-requestsGET /api/v1/notifications/requests/:id
: https://docs.joinmastodon.org/methods/notifications/#get-one-requestPOST /api/v1/notifications/requests/:id/accept
: https://docs.joinmastodon.org/methods/notifications/#accept-requestPOST /api/v1/notifications/requests/:id/dismiss
: https://docs.joinmastodon.org/methods/notifications/#dismiss-requestPOST /api/v1/notifications/requests/accept
: https://docs.joinmastodon.org/methods/notifications/#accept-multiple-requestsPOST /api/v1/notifications/requests/dismiss
: https://docs.joinmastodon.org/methods/notifications/#dismiss-multiple-requestsGET /api/v1/notifications/requests/merged
: https://docs.joinmastodon.org/methods/notifications/#requests-mergedIn addition, accepting one or more notification requests generates a new streaming event:
notifications_merged
: an event of this type indicates accepted notification requests have finished merging, and the notifications list should be refreshed
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.
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.
Add "system" theme setting (light/dark theme depending on user system preference) (#29748, #29553, #29795, #29918, #30839, and #30861 by @nshki, @ErikUden, @mjankowski, @renchap, and @vmstan)\ Add a “system” theme that automatically switch between default dark and light themes depending on the user's system preferences.\ Also changes the default server theme to this new “system” theme so that automatic theme selection happens even when logged out.
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, #30846, #31819, #31900 and #32188 by @Gargron, @mjankowski and @oneiros)\ This adds a mechanism to highlight the author of news articles shared on Mastodon.\ Articles hosted outside the fediverse can indicate a fediverse author with a meta tag:
<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 \
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.
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 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)
Add optional hints for server rules (#29539 and #29758 by @ClearlyClaire and @Gargron)\
Server rules can now be broken into a short rule name and a longer explanation of the rule.\
This adds a new hint
attribute to Rule
entities in the REST API.
Add support for PKCE in OAuth flow (#31129 by @ThisIsMissEm)
Add CDN cache busting on media deletion (#31353 and #31414 by @ClearlyClaire and @tribela)
Add the OAuth application used in local reports (#30539 by @ThisIsMissEm)
Add hint to user that other remote statuses may be missing (#26910, #31387, and #31516 by @Gargron, @audiodude, and @renchap)
Add lang attribute on preview card title (#31303 by c960657
">@c960657
)
Add check for Content-Length
in ResponseWithLimitAdapter
(#31285 by c960657
">@c960657
)
Add Accept-Language
header to fetch preview cards in the server's default language (#31232 by c960657
">@c960657
)
Add support for PKCE Extension in OmniAuth OIDC through the OIDC_USE_PKCE
environment variable (#31131 by @ThisIsMissEm)
Add API endpoints for unread notifications count (#31191 by @ClearlyClaire)\ This adds the following REST API endpoints:
GET /api/v1/notifications/unread_count
: https://docs.joinmastodon.org/methods/notifications/#unread-countAdd /
keyboard shortcut to focus the search field (#29921 by @ClearlyClaire)
Add button to view the Hashtag on the instance from Hashtags in Moderation UI (#31533 by @ThisIsMissEm)
Add list of pending releases directly in mail notifications for version updates (#29436 and #30035 by @ClearlyClaire)
Add “Appeals” link under “Moderation” navigation category in moderation interface (#31071 by @ThisIsMissEm)
Add badge on account card in report moderation interface when account is already suspended (#29592 by @ClearlyClaire)
Add admin comments directly to the admin/instances
page (#29240 by @tribela)
Add ability to require approval when users sign up using specific email domains (#28468, #28732, #28607, and #28608 by @ClearlyClaire)
Add banner for forwarded reports made by remote users about remote content (#27549 by @ClearlyClaire)
Add support HTML ruby tags in remote posts for east-asian languages (#30897 by @ThisIsMissEm)
Add link to manage warning presets in admin navigation (#26199 by @vmstan)
Add volume saving/reuse to video player (#27488 by @thehydrogen)
Add Elasticsearch index size, ffmpeg and ImageMagick versions to the admin dashboard (#27301, #30710, #31130, and #30845 by @vmstan)
Add MASTODON_SIDEKIQ_READY_FILENAME
environment variable to use a file for Sidekiq to signal it is ready to process jobs (#30971 and #30988 by @renchap)\
In the official Docker image, this is set to sidekiq_process_has_started_and_will_begin_processing_jobs
so that Sidekiq will touch tmp/sidekiq_process_has_started_and_will_begin_processing_jobs
to signal readiness.
Add S3_RETRY_LIMIT
environment variable to make S3 retries configurable (#23215 by @smiba)
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 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, #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, #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)
Add profile
OAuth 2.0 scope, allowing more limited access to user data (#29087 and #30357 by @ThisIsMissEm)
Add diagnostic message for failure during CLI search deploy (#29462 by @mjankowski)
Add pagination Link
headers on API accounts/statuses when pinned true (#29442 by @mjankowski)
Add support for specifying custom CA cert for Elasticsearch through ES_CA_FILE
(#29122 and #29147 by @ClearlyClaire)
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
">@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)
Add support for invite codes in the registration API (#27805 by @ClearlyClaire)
Add HTML lang attribute to preview card descriptions (#27503 by @srapilly)
Add display of relevant account warnings to report action logs (#27425 by @ClearlyClaire)
Add validation of allowed schemes on preview card URLs (#27485 by @mjankowski)
Add token introspection without read scope to /api/v1/apps/verify_credentials
(#27142 by @ThisIsMissEm)
Add support for cross-origin request to /nodeinfo/2.0
(#27413 by @palant)
Add variable delay before link verification of remote account links (#27351 by @ClearlyClaire)
Add PWA shortcut to /explore
page (#27235 by @jake-anto)
c960657
">@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.source
attribute in Suggestion
entities in the REST API, and replaces it with the new sources
attribute.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.undefined
as canonical url (#31882 by @oneiros)c960657
">@c960657
)not-allowed
on disabled buttons (#32076 by @mjankowski)with_suspended
parameter to GET /api/v1/accounts/relationships
in the REST API.c960657
">@c960657
)@
at the end of an URL (#31124 by @adamniedzielski).env
file loading from deprecated dotenv-rails
gem to dotenv
gem (#29173 and #30121 by @mjankowski)\
This should have no effect except in the unlikely case an environment variable included a newline.bundle exec rails db:encryption:init
.\
Furthermore, there is a risk that the introduced migration fails if the server was misconfigured in the past. If that happens, the migration error will include the relevant information./api/v1/announcements
to return regular Status
entities (#26736 by @ClearlyClaire)npmlog
to pino
and pino-http
(#27828 by @ThisIsMissEm)\
This changes the Mastodon streaming server log format, so this might be considered a breaking change if you were parsing the logs.img-src
and media-src
CSP directives to not include https:
(#28025 and #28561 by @ClearlyClaire)tootctl self-destruct
now outputs a value for the SELF_DESTRUCT
environment variable, which puts a server in self-destruct mode, processing deletions in the background, while giving users access to their export archives.crypto
OAuth scope (#31193, #31945, #31963, and #31964 by @ClearlyClaire and @mjankowski)CacheBuster
default options (#30718 by @mjankowski)c960657
">@c960657
)/api/v1/polls/:id/votes
when required choices
parameter is missing (#25598 by @danielmbrasil)inert.css
polyfill (#30687 by @louis77)visibility
values in POST /api/v1/statuses
returning 500 errors (#31571 by c960657
">@c960657
)c960657
">@c960657
)POST /api/v1/statuses
silently ignoring invalid media_ids
parameter (#31681 by c960657
">@c960657
)BIND
environment variable in the streaming server (#31624 by @ThisIsMissEm)aria-hidden
attribute value in logo resources area (#30570 by @mjankowski)match_type
value typo in logging config (#30514 by @mjankowski)POST /api/v1/push/subscription
(#30166 by @ClearlyClaire)/start
when not logged in (#30023 by @timothyjrogers)api/v1/featured_tags/suggestions
(#29597 by @mjankowski)StringScanner
(#29133 by @ClearlyClaire)PUT /api/v1/admin/reports/:id
not being logged in the audit log (#29044, #30342, and #31033 by @mjankowski, @tribela, and @vmstan)@
to their decoded form (#31184 by @timothyjrogers)RedownloadMediaWorker
not being called on transient S3 failure (#28714 by @ClearlyClaire)fr-QC
to fr-CA
(#26015 by @gunchleoc).opus
file uploads being misidentified by Paperclip (#28580 by @vmstan)delete_matched
cache method in domain blocks (#28374 by @ClearlyClaire)/home
to /deck/home
in the advanced interface (#27378 by @Signez)<s>
tag (mediaformat)ß
in adjacent word preventing mention and hashtag matching (adamniedzielski)self
links (adamniedzielski)orderedItems
in user archive's outbox.json
(ClearlyClaire)replies
attribute (ClearlyClaire)--verbose
option of tootctl media remove
, which was previously erroneously removed (mjankowski)Tag
objects from Kbin (ShadowJonathan)items
attribute (tribela)mastodon:stats
decoration of stats rake task (mjankowski)STATSD_ADDR
handling to emit a warning rather than crashing if the address is unreachable (timothyjrogers)/home
to /
(ClearlyClaire)posix-spawn
(ClearlyClaire)/admin/accounts/:account_id/statuses/:id
for edited posts with media attachments (ClearlyClaire)@context
attribute in user archive export (ClearlyClaire)WEB_DOMAIN@WEB_DOMAIN
(ClearlyClaire)digest
attribute to Admin::DomainBlock
entity in REST API (ThisIsMissEm)tootctl media
commands (ClearlyClaire)LIMITED_FEDERATION_MODE
) not being recorded in the audit log (ThisIsMissEm)Idempotency-Key
being ignored when scheduling a post (ClearlyClaire)FFMPEG_BINARY
environment variable (timothyjrogers)api/v1/featured_tags/suggestions
(mjankowski)mastodon:setup
not being auto-approved (ClearlyClaire)EMAIL_DOMAIN_ALLOWLIST
is used, and can also be disabled with DISABLE_AUTOMATIC_SWITCHING_TO_APPROVED_REGISTRATIONS=true
.tootctl settings registrations open
if you want to enable them again.Link
objects as Image
url
(ClearlyClaire)nsa
gem, instead of a no longer existing commit (mjankowski)sidekiq-unique-jobs
dependency (see GHSA-cmh9-rx85-xj38)
In addition, we have disabled the web interface for sidekiq-unique-jobs
out of caution.
If you need it, you can re-enable it by setting ENABLE_SIDEKIQ_UNIQUE_JOBS_UI=true
.
If you only need to clear all locks, you can now use bundle exec rake sidekiq_unique_jobs:delete_all_locks
.nokogiri
dependency (see GHSA-xc9x-jj77-9p9j)ALLOW_UNSAFE_AUTH_PROVIDER_REATTACH
environment variable.
In addition, regardless of this environment variable, Mastodon will refuse to attach two identities from the same authentication provider to the same account.RecordNotUnique
errors in LinkCrawlWorker (tribela)streaming_api_base_url
(ClearlyClaire)inLanguage
(ClearlyClaire)Undo Announce
activity not being sent to non-follower authors (MitarashiDango)LinkCrawlWorker
error when encountering empty OEmbed response (ClearlyClaire)delete_matched
cache method in domain blocks (ClearlyClaire)json-canonicalization
version that has been made unavailable since last releaseFollow
activities delivery to bypass availability check (ShadowJonathan)/api/v1/accounts/:id/featured_tags
for remote accounts (ClearlyClaire)inLanguage
attribute in preview card processing (ClearlyClaire)/deck
URLs for logged-out users (ClearlyClaire)tootctl maintenance fix-duplicates
(ClearlyClaire)Vary
headers not being set on some redirects (ClearlyClaire)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 @danielmbrasil, @mjankowski, @nschonni, @renchap, and @takayamaki.
public_statuses
Elasticsearch index for public posts by users who have opted in to their posts being searchable (toot#indexable
flag).
This also revisits the other indexes to provide more useful indexing, and adds new search operators such as from:me
, before:2022-11-01
, after:2022-11-01
, during:2022-11-01
, language:fr
, has:poll
, or in:library
(for searching only in posts you have written or interacted with).
Results are now ordered chronologically.https://api.joinmastodon.org/update-check
every 30 minutes in a background job.
That URL can be changed using the UPDATE_CHECK_URL
environment variable, and the feature outright disabled by setting that variable to an empty string (UPDATE_CHECK_URL=
).forward_to_domains
parameter in POST /api/v1/reports
(ClearlyClaire, ClearlyClaire)
The forward_to_domains
REST API parameter is a list of strings. If it is empty or omitted, the previous behavior is maintained.
The forward
parameter still needs to be set for forward_to_domains
to be taken into account.
The forwarded-to domains can only include that of the original author and people being replied to.ONE_CLICK_SSO_LOGIN
environment variable to directly link to the Single-Sign On provider if there is only one sign up method available (CSDUMMI, ClearlyClaire, CSDUMMI, ClearlyClaire)status.created
, status.updated
, account.updated
and report.updated
(VyrCossont, VyrCossont, VyrCossont)hide_collections
, discoverable
and indexable
attributes to credentials API (ClearlyClaire)S3_ENABLE_CHECKSUM_MODE
environment variable to enable checksum verification on compatible S3-providers (ClearlyClaire)authorized_fetch
server setting in addition to env var (ClearlyClaire, ClearlyClaire)data-nosnippet
attribute to remote posts and local posts with noindex
(ClearlyClaire)memorial
attribute (rrgeorge)DELETE /api/v1/profile/avatar
and DELETE /api/v1/profile/header
to the REST API (danielmbrasil, ClearlyClaire)ES_PRESET
option to customize numbers of shards and replicas (Gargron, ClearlyClaire)
This can have a value of single_node_cluster
(default), small_cluster
(uses one replica) or large_cluster
(uses one replica and a higher number of shards).CACHE_BUSTER_HTTP_METHOD
environment variable (renchap, ClearlyClaire)DB_PASS
when using DATABASE_URL
(ThisIsMissEm)GET /api/v1/instance/languages
to REST API (danielmbrasil)preview_cards_statuses
join table (ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire, ClearlyClaire)lang
attribute to various UI components (c960657, c960657, c960657, c960657)unconfirmed_email
(ClearlyClaire, ClearlyClaire)oauth_applications
(ClearlyClaire)user_id
column (mjankowski)POST /api/v1/conversations/:id/unread
API endpoint to mark a conversation as unread (ClearlyClaire)translate="no"
to outgoing mentions and links (ClearlyClaire)legal
as report category (Gargron, renchap, ClearlyClaire)data-nosnippet
so Google doesn't use trending posts in snippets for /
(ClearlyClaire)accounts_tags
and statuses_tags
(ClearlyClaire)SSO_ACCOUNT_SIGN_UP
and reflected in the REST API by adding registrations.sign_up_url
to the /api/v2/instance
endpoint./start
on email confirmation (ClearlyClaire)POST /api/v1/admin/trends/statuses/:id/approve
POST /api/v1/admin/trends/statuses/:id/reject
POST /api/v1/admin/trends/links/:id/approve
POST /api/v1/admin/trends/links/:id/reject
POST /api/v1/admin/trends/tags/:id/approve
POST /api/v1/admin/trends/tags/:id/reject
GET /api/v1/admin/trends/links/publishers
POST /api/v1/admin/trends/links/publishers/:id/approve
POST /api/v1/admin/trends/links/publishers/:id/reject
--approve
option to tootctl accounts create
(danielmbrasil)memorial
attribute to the Account
REST API entity.sslmode
URL parameter (ramuuns)S3_STORAGE_CLASS
environment variable (hyl).zip
archives instead of .tar.gz
ones (ClearlyClaire, TheEssem)mastodon-streaming
systemd unit files to be templated (e-nomem)statsd
integration to disable sidekiq metrics by default (mjankowski, mjankowski, ClearlyClaire)
This deprecates statsd
support and disables the sidekiq integration unless STATSD_SIDEKIQ
is set to true
.
This is because the nsa
gem is unmaintained, and its sidekiq integration is known to add very significant overhead.
Later versions of Mastodon will have other ways to get the same metrics.makara
support, and requiring you to update your database configuration if you are using replicas.
To tell Mastodon to use a read replica, you can either set the REPLICA_DB_NAME
environment variable (along with REPLICA_DB_USER
, REPLICA_DB_PASS
, REPLICA_DB_HOST
, and REPLICA_DB_PORT
, if they differ from the primary database), or the REPLICA_DATABASE_URL
environment variable if your configuration is based on DATABASE_URL
.node-redis
to ioredis
for streaming (gmemstr)robots.txt
to block GPTBot (Foritus)/metrics
to include additional metrics (ThisIsMissEm, ThisIsMissEm)name
(ClearlyClaire)#
to include account index (jsgoldstein)@
(HeitorMC)Change translation to only be offered for supported languages (c960657, c960657)
This adds the /api/v1/instance/translation_languages
REST API endpoint that returns an object with the supported translation language pairs in the form:
{
"fr": ["en", "de"]
}
(where fr
is a supported source language and en
and de
or supported output language when translating a fr
string)
Change compose form checkbox to native input with appearance: none
(ClearlyClaire)
Change posts' clickable area to be larger (c960657)
Change followed_by
link to location=all
if account is local on /admin/accounts/:id page (tribela)
kmr
from language selection, as it was a duplicate for ku
(gunchleoc, ClearlyClaire)tai
locale (c960657)Permissions-Policy
header from all responses (Gargron)Content-Type
header for WebP images (c960657)tootctl search deploy
(ClearlyClaire)/api/v1/timelines/public
(danielmbrasil)/explore
after sign-in (ClearlyClaire)/api/v1/statuses/:id/unfavourite
and /api/v1/statuses/:id/unreblog
returning non-updated counts (c960657)null
ActivityPub activities (tribela)AccountDeletionWorker
(ClearlyClaire)/api/v2/search
not working with following query param (danielmbrasil)/api/*/instance
in web UI (mgmn)default_privacy
setting (ClearlyClaire)/api/v2/admin/accounts
(danielmbrasil)button
role and tabIndex (ClearlyClaire)tootctl maintenance fix-duplicates
(mjankowski)iframe
(ClearlyClaire)ActiveRecord::StatementInvalid
in Mastodon::IpBlocksCLI (danielmbrasil)tootctl accounts cull
crashing when encountering a domain resolving to a private address (ClearlyClaire)tootctl accounts approve --number N
not aproving the N earliest registrations (danielmbrasil)tootctl accounts create --reattach --force
(ClearlyClaire, danielmbrasil)Mastodon::AccountsCLI#approve
(danielmbrasil)tootctl accounts modify USERNAME --email EMAIL --confirm
(danielmbrasil)/settings/profile
on narrow screens (c960657)/about
and /privacy-policy
(mgmn)DATABASE_URL
(Gargron)ffprobe
reports 0/0
average framerate (NicolaiSoeborg)/api/v1/timelines/tag/:hashtag
allowing for unauthenticated access when public preview is disabled (danielmbrasil)PlainTextFormatter
(ClearlyClaire)LOCAL_DOMAIN@LOCAL_DOMAIN
(ClearlyClaire)/api/v1/statuses/:id/history
to always return at least one item (ClearlyClaire)X-Frame-Options: ALLOWALL
(ClearlyClaire)/api/v2/admin/accounts
(danielmbrasil)S3_ALIAS_HOST
includes a path component (ClearlyClaire)tootctl accounts approve --number N
not approving N earliest registrations (danielmbrasil)tootctl
commands making use of parallelization when Elasticsearch is enabled (ClearlyClaire, ClearlyClaire)db:setup
when Elasticsearch is enabled (rrgeorge)@
to their decoded form (thijskh)lang
attribute to native language names in language picker in Web UI (ClearlyClaire)tootctl accounts refresh
(9p4)PROXY_PROTO_V1
environment variable (CSDUMMI)SENDFILE_HEADER
environment variable (Gargron)ActivityPub::DeliveryWorker
retries to be spread out more (ClearlyClaire)/relationships
(ClearlyClaire)tootctl accounts migrate
crashing because of a typo (ClearlyClaire)/api/v1/streaming
sub-paths not being redirected (ClearlyClaire)PUT /api/v1/statuses/:id
now takes an extra media_attributes[]
array parameter with the id
of the updated media and their updated description
, focus
, and thumbnail
Relationship
entities have an extra requested_by
boolean attribute representing whether the represented user has requested to follow you/about
even when trends are enabled (ClearlyClaire)noindex
setting back to the admin interface (prplecake)configuration.urls.status
attribute to the object returned by GET /api/v2/instance
account.approved
webhook (Saiv46)--remove-headers
, --prune-profiles
and --include-follows
flags to tootctl media remove
(evanphilip)--email
and --dry-run
options to tootctl accounts delete
(ClearlyClaire)tootctl accounts migrate
(ClearlyClaire)tootctl accounts prune
(tribela)tootctl domains purge
(ClearlyClaire)SIDEKIQ_CONCURRENCY
environment variable (muffinista)DB_POOL
environment variable support for streaming server (Gargron)MIN_THREADS
environment variable to set minimum Puma threads (jimeh)assets:precompile
(Izorkin)/admin/accounts
UI (tribela)lang
attribute to image description textarea and poll option field (c960657)spellcheck
attribute to Content Warning and poll option input fields (c960657)title
attribute to video elements in media attachments (bramus)roles
attribute to Account
entities in REST API (ClearlyClaire, tribela)reading:autoplay:gifs
to /api/v1/preferences
(j-f1)hide_collections
parameter to /api/v1/accounts/credentials
(CarlSchwan)policy
attribute to web push subscription objects in REST API at /api/v1/push/subscriptions
(ClearlyClaire)mastodon:setup
rake task (jtolio)MediaGallery
(hs4man21)aria-hidden
to footer circle dividers to improve accessibility (hs4man21)lang
attribute to compose form inputs (ClearlyClaire)POST /settings/applications/:id
to regenerate token on scopes change (ClearlyClaire)referrer-policy
to same-origin
application-wide (ClearlyClaire, ClearlyClaire)Cache-Control
, match Rails expectations (daxtens)object-fit
polyfill used for old versions of Microsoft Edge (shuuji3)intersection-observer
polyfill for old Safari support (shuuji3)title
tag from mailer layout (nametoolong)/admin/instances
(ClearlyClaire)/api/v1/filters
(ClearlyClaire)role
on account entities in admin API (Gargron)VerifyLinkService
when processing links with no href (joshuap)VerifyLinkService
when processing links with invalid URLs (untitaker)tootctl domains crawl
(ClearlyClaire)tootctl accounts rotate
(ClearlyClaire)/api/v1/custom_emojis
when not logged in (ClearlyClaire)NotificationsController
(nametoolong)S3_HOSTNAME
used in the mastodon:setup
rake task (danp)ALLOWED_PRIVATE_ADDRESSES
(ClearlyClaire)・
detection in hashtags (parthoghosh24)$
not being escaped in .env.production
files generated by the mastodon:setup
rake task (ClearlyClaire, ClearlyClaire)scheduled_at
input not using datetime-local
when editing announcements (ClearlyClaire)Account
not including moved
when the moved account has itself moved (ClearlyClaire)/api/v1/admin/trends/tags
using wrong serializer (ClearlyClaire)form-action
CSP directive (ClearlyClaire, ClearlyClaire, ClearlyClaire)unsafe-eval
being used when wasm-unsafe-eval
is enough in Content Security Policy (Gargron, prplecake)Some of the features in this release have been funded through the NGI0 Discovery Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322.
noopener
to links to remote profiles in web UI (shleeable)audio/vnd.wave
files (tribela)tootctl
commandssensitized
attribute to accounts in admin REST API (trwnh)services
and metadata
to the NodeInfo endpoint (MFTabriz)--remove-role
option to tootctl accounts modify
(Gargron)--days
option to tootctl media refresh
(tribela)EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION
environment variable (ClearlyClaire)IP_RETENTION_PERIOD
and SESSION_RETENTION_PERIOD
environment variables (kescherCode)http_hidden_proxy
environment variable (tribela)ENABLE_STARTTLS
environment variable (erbridge)/web
prefix on web app paths/terms
to /privacy-policy
(Gargron)AUTHORIZED_FETCH
to not block unauthenticated REST API access (Gargron)ingress
queue (Gargron)mailers
queue not being used for mailers (Gargron)violation
if rule IDs are provided (trwnh)replies_policy
in REST API (trwnh)aria-expanded
attribute in web UI (ClearlyClaire)aria-pressed
attributes in web UI (Brawaru)nofollow
rel being removed in web UI (Gargron),
in Blurhash validation (noellabo)tootctl media refresh
(tribela)tootctl search deploy
(mashirozx)CDN_HOST
not being used in some asset URLs (tribela)CAS_DISPLAY_NAME
, SAML_DISPLAY_NAME
and OIDC_DISPLAY_NAME
being ignored (ClearlyClaire)For previous changes, review the stable-3.5 branch