> [!WARNING]
This is a pre-release! This has not been as widely tested as regular releases, although it is still tested on mastodon.social and some other servers. If you update to this release, you will not be able to safely downgrade to the existing stable releases. You will, however, be able to upgrade to later nightly releases or pre-releases, as well as the upcoming 4.7.0 stable release.
This version introduces very few user-facing changes but substantially reworks Mastodon's internals to increase security, support new protocols, and pave the way for new features. Updating to this version will be required for zero-downtime migration to the upcoming Mastodon 5.0.
##### Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires assets recompilation\
ℹ️ Requires streaming server restart\
ℹ️ Requires database migrations
For more information, view the complete release notes and scroll down to the upgrade instructions section.
##### Changelog
###### Added
- Add audit logs for Hashtags (#39473, #39337 and #39670 by @arte7)
- Add search field to admin ip blocks (#39404 by @arte7)
- Add notifications for out-of-support versions of Mastodon (#39732 and #39734 by @ClearlyClaire)
- Add Elasticsearch request timeout of 10s (can be overridden through `ES_QUERY_TIMEOUT`) (#40064 by @ClearlyClaire)
- Add ActivityPub attributes to current span when processing Activities (#40041 by @jhbabon)
- Add OTel span attribute to deprecated endpoints (#40030 by @jhbabon)
- Add default permission check to admin area (#39974 by @oneiros)
- Add uniqueness constraint on Account `uri` (#39882, #39999 and #39861 by @ClearlyClaire)
- Add new theme tokens `bg-blend`, `bg-highlight`, and `border-strong` (#39786 by @diondiondion)
- Add support for `Link` objects in `attachment` (FEP-8967) (#36104, #39977 and #39983 by @Gargron, @TheEssem and @shleeable)
- Mastodon will use the first `Link` attachment, if any, as preview card.
- If there is no `Link` attachment, Mastodon will still scan the message content's to populate one. This may change in a later release.
- Mastodon sets a `Link` attachment for outgoing posts with a preview card.
- Add support for remote accounts changing handles (#39785, #39850, #39865 and #40045 by @ClearlyClaire)
- ActivityPub actor `id` is now used as the primary identifier, instead of webfinger handle.
- Remote actors that change handles are now renamed instead of a duplicate account being created then the two merged.
- Mastodon does not offer its users to change handles yet.
- The concept of “invalid handles” has been added to handle some edge cases. An account with an invalid handle
is an account for which the handle cannot be currently verified, but is otherwise valid.
In the REST API, they have their `username` and `domain` attribute overridden and this is made explicit through the [`invalid_handle` attribute](https://docs.joinmastodon.org/entities/Account/#invalid_handle).
- Add outgoing RFC9421 HTTP Message Signatures as fallback to earlier draft (#39756 by @ClearlyClaire)
- Change how local users' keypairs are stored (#39658, #39668, #39662, #39684, #39686 and #39690 by @ClearlyClaire)
- This moves local users' keypairs to the dedicated table that was created in 4.6.
- Private keys are now encrypted at rest, and the new infrastructure will allow for key rotation in the future.
- Add support for `expires` in Linked Data Signatures and Object Integrity Proofs (#39701 by @ClearlyClaire)
- Add verification of FEP-8b32 Object Integrity Proofs (#39530, #39728, #39754, #39760, #39522 and #39747 by @ClearlyClaire)
_[Truncated at 4000 characters — full notes: https://github.com/mastodon/mastodon/releases/tag/v4.7.0-beta.1]_