Skip to content
  • v2.1.0
  • a29432f
  • Compare
    Choose a tag to compare
    Search for a tag
  • v2.1.0
  • a29432f
  • Compare
    Choose a tag to compare
    Search for a tag

@Gargron Gargron released this Dec 15, 2017 · 5122 commits to master since this release



Lists (#5703)

Lists allow you to categorize your home feed for easier digestion. You can sort people you are following into arbitrary lists, and mount those lists in your web UI as separate columns. Lists are private and cannot include people you are not following.

How to get started: "Getting Started" -> "Lists". Open a list and click on the column sliders icon to see "Edit list" and "Delete list" options. And don't forget you can pin columns!

Invite system (#5814)

The invite system allows you to generate an invite link that lets people sign up even if registrations are closed. Each invite link can have an optional time limit or maximum uses limit. The minimum role required for creating invites can be adjusted in admin settings, by default this function is exposed to admins only.

Account migration: profile moved note (#5746)

If you move from one account to another in the Mastodon network, you can now configure your old account to display a prominent link to the new profile. While this isn't quite the automated follower migration yet, it's a step above having to do it manually. When this is setup, the profile avatar is also greyed out and the follow button is hidden to make it more obvious.

How to get started: "Edit profile" -> scroll down to "Move to a different account". This setting currently does not touch your followers so it is reversible.

Moderator role (#5635)

The permission system in Mastodon has been expanded. Between users and admins there is a new role, moderator, which can handle reports and some other moderation-related functions but nothing like site settings. Admin navigation has been reworked.

How to get started: To avoid tricky situations admins cannot demote other admins through the UI. So if you've got fellow admins who were really supposed to be mods all along, you'll need to use the Rails console. In it, you can do: User.find_by(email: 'email@of.mod').update(admin: false, moderator: true)

Audit log for staff actions (#5757)

All actions performed by admins and moderators are now logged into an audit log, visible to admins and moderators.

Memorial accounts (#5615)

Admins can now disable logins of accounts without suspending. Separately, an account can be turned into a memorial page. That automatically disables the login and displays a note on the profile.

Improved muting (#5087)

Over the course of the project's lifetime the mute function has gone through various changes following user feedback. The last iteration essentially equalized it with block, with stealth being the only difference. However, the initial use case of mutes was missed by some. As a result, when muting someone, you can now choose whether you want to mute notifications from them or not. If not, they can still talk to you.

Hide boosts from people you are following (#5762)

You can now do this. There's not much to say about it, but it's a highly requested feature.

Block direct messages from people you don't follow (#5669)

You can now do this. There's not much to say about it, but it's a highly requested feature.

Integration with PeerTube (#5848)

PeerTube is a decentralized alternative to YouTube that is also based on ActivityPub, like Mastodon. With some minor adjustments we ensured that PeerTube users can be followed from Mastodon and you can properly receive updates from them.


  • UI: Ability to hide some custom emoji without disabling them (#5485)
  • UI: Add ServiceWorker caching for static assets (#5524)
  • UI: Show the local couterpart of emoji when it exists in admin UI (#5467)
  • UI: Show confirmation dialog on leaving Web UI while composing (#5616)
  • UI: Allow to open a modal for embedded photo (#5777)
  • UI: Add keyboard shortcuts legend (#5823)
  • API: Rate limit by user instead of IP when API user is authenticated (#5923, #5948)
  • UI: Improve public status page title (now includes author's name and excerpt) (#5985)
  • API: Make it possible to stream public timelines without authorization (#5977)
  • UI: Add Galician language support (#5955)

Upgrade notes:

Non-Docker only:

  • Dependency updates: bundle install and yarn install

Both Docker and non-Docker:

  • This release includes database migrations, that means you need to run RAILS_ENV=production bundle exec rails db:migrate (in Docker: docker-compose run --rm web rails db:migrate).
  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)
  • This release includes changes to some preview cards, that means you need to run RAILS_ENV=production bundle exec rails mastodon:maintenance:migrate_photo_preview_cards immediately AFTER you updated. Note that this will queue some pull jobs for Sidekiq.



  • UI: Remove unnecessary translateZ(0) when doing scale() (#5473)
  • UI: Remove translateZ(0) on modal overlay (#5478)
  • Fix Cocaine::ExitStatusError when uploading small non-animated GIF (#5489)
  • UI: Fix column design broken with very long title (#5493)
  • Fix copying emojis: redirect to the page you were on (#5509)
  • ActivityPub: Allow ActivityPub Note's tag and attachment to be single objects (#5534)
  • Add artist, title, and date metadata to boop.{mp3,ogg} (#5531)
  • Instantiate service classes for each call (fixes #5540) (#5543)
  • UI: Separate Follow/Unfollow and back buttons (#5496)
  • Avoid modifying emoji data inline (#5548)
  • ActivityPub: Update remote ActivityPub users when fetching their toots (#5545)
  • UI: Avoid useless renders in WrappedSwitch (#5580)
  • Add account search condition (instance domain) (#5577)
  • UI: Don't display any descendants of .invisible (#5567)
  • UI: Hide disabled custom emojis from emoji picker and emoji auto suggestions. (#5613)
  • UI: Make fullscreen video in detailed status plays in fullscreen (Partially fix #5160) (#5611)
  • Unify file upload to use the fog gem (#5604)
  • ActivityPub: Resolve remote accounts when mentioned even if they are already known (#5539)
  • ActivityPub: Do not process undeliverable mentions (#5598)
  • UI: Avoid emojifying on invisible text (#5558)
  • Twidere mentions workaround (#5552)
  • UI: Eliminate space around emoji (#5474)
  • In remove_remote, exclude already removed media attachments. (#5626)
  • UI: Fix focused background color of direct toots (#5642)
  • ActivityPub: Retry thread resolving (#5599)
  • UI: Reset column loading status after fetch failure (#5659)
  • Allow specifying STATSD_NAMESPACE (#5700)
  • Filter searched toots to be consistent with blocking behaviors (#5383)
  • Fix N+1 at notification (#5752)
  • Fix NoMethodError at ActivityPub::FetchRemoteStatusService (#5753)
  • Fixed duplicating URL of photo type of oEmbed (#5763)
  • Add index of account and reblog to statuses (#5785)
  • UI: Don't remove originals of boosted toots from timeline (#5479)
  • Fix unnecessary order (#5807)
  • Do not filter the status collection after muting and blocking (#5815)
  • UI: Use account.display_name for og:title single toot pages (#5821)
  • Merge indexes for reblog on statuses table (#5831)
  • Add index on stream_entries table (#5793)
  • ActivityPub: Fix too many forwards in ActivityPub federation traffic (#5854)
  • Remove rabl dependency (#5894)
  • UI: Disable status content outline (#5921)
  • UI: Prevent duplicate load of favourites (#5931)
  • UI: Keep WebPush settings after logout (#5879)
  • UI: Polish video player CSS, add timer on fullscreen/modal/public pages (#5928)
  • UI: Ensure link thumbnails are not stretched to super low quality (#5932)
  • ActivityPub: Do not downgrade to OStatus once ActivityPub is known (#5929)
  • UI: Fix is undefined (#5935)
  • UI: Move push notifications settings (regression from #5879) (#5941)
  • UI: Back to Web UI from tag page when signed in (#5943)
  • Ignore HEAD method if does not support (#5949)
  • Save media outside transaction (#5959)
  • Fix account and tag searches with leading/trailing spaces (#5965)
  • UI: Change the disclaimer under the sign up form (#5817)
  • Exclude moved accounts from search results (#5984)
  • Change conditional to avoid nil into string error in sidekiq (#5987)
  • Return false if object does not respond to url (#5988)
  • Store preview image for embedded photo in preview cards (#5986)
  • UI: Make detect empty string before assign image description (#5994)
  • API: Improve error handling in streaming/index.js (#5968)
  • UI: Use streaming API for standalone timelines on /about and /tag pages (#5998)
  • UI: Shorten English title for 2FA to avoid line-break (#6001)
  • UI: Fix GIF avatars not autoplaying when GIF autoplay is enabled (#6000)
  • UI: Clean up admin UI for accounts (#6004)
  • Fix redundant HTTP request in FetchLinkCardService (#6002)
  • UI: Set direction style to reply indicator (#6006)
  • UI: Redesign tootbox (#5919)
  • UI: Exchange the order of spoiler-input and unlocked warning (#6015)
  • Do not hide statuses from silenced accounts from other silenced accounts in threads (#6030)

Contributors to this release:


Assets 2
You can’t perform that action at this time.