We’re excited to release Mastodon 4.5 into the world! Arriving just a few months after the last release, this version brings the long-awaited Quote Posts feature, along with many other goodies. Here’s a quick look (you should read our blog post for more!)

https://blog.joinmastodon.org/2025/11/mastodon-4.5

Mastodon 4.5

Quote posts, the end of missing replies, new tools for admins and better emojis. All of these and more, in our latest release.

Mastodon Blog
Mastodon 4.5 brings Quote Post authoring features to everyone. Note that you can manage whether or how your posts are quoted by others, both globally on the new Posting Defaults page, and individually on specific posts. You can also revoke the use of a post. We wrote about this in more detail a few weeks ago: https://blog.joinmastodon.org/2025/09/introducing-quote-posts/
Introducing quote posts

Over the years, we’ve learned just how essential quoting is to many of you. Here's a deep dive on how quote posts will work on Mastodon.

Mastodon Blog
The Fediverse feels more vibrant when conversations are buzzing! Mastodon 4.5 fetches replies from other servers to show you more complete conversation threads - another much-anticipated feature.
@Mastodon Is this just a change in the web client to fetch the extra replies? Or can other clients, eg @pachli on Android, benefit from this change as well when connected to servers running v4.5?
@roddie @Mastodon @pachli it's a backend change, though other clients may need you to refresh the toot to see the fetched replies
@Ember @Mastodon @pachli That's great; thanks for the info

@roddie @Ember @Mastodon

I've looked at the new API (side note: I'm in the Mastodon Developer Discord run by Mastodon GmbH, which is their official communication channel, and as far as I can tell no input from third party developers in to this API was sought, and the first we found out about it was this blog post -- happy to be corrected on this point, but after searching the Discord for "async" I can't find it).

Best as I can tell from the documentation, it's of no use to mobile clients.

@roddie @Ember @Mastodon

Here's a concrete example as to why.

Suppose you open a thread in Pachli today. Pachli asks your server for the most recent version of the thread. You can read the thread, and you can choose to refresh at a time of your choosing, either by swipe-refresh, or by using the menu item at the top right.

@roddie @Ember @Mastodon

That's an explicit thing you choose to do. Pachli tries to keep your reading position in the thread at the same place, and any changes (e.g., new posts appearing, post content changing because of edits, etc) are something you can anticipate because it's happening at a time you choose.

Now, what are clients supposed to do with this new API?

@roddie @Ember @Mastodon

Pachli would fetch the thread as normal, but also receive an additional bit of information saying "Try again in 30 seconds, there might be more data".

30 seconds goes by, Pachli loads the new data, and now has to decide what to do with it.

There's a number of possible options here, and most of them have bad outcomes.

@roddie @Ember @Mastodon

1. Suppose the post you're actively reading in the thread has been deleted since you started reading it. The post would vanish from your screen, and Pachli will have to figure out where in the thread to reposition you.

That's obviously terrible user experience.

@roddie @Ember @Mastodon

2. Suppose the post you're actively reading in the thread has been edited -- text changed, attachments modified, content warning added or removed, etc. Again, the post would change as you're reading it.

Also terrible user experience.

2b. Popping up a note to the user that says "This post you're reading has been deleted/edited, do you want to refresh now" doesn't fix this, as it doesn't give the user enough information to make an informed decision about what to do.

@roddie @Ember @Mastodon

3. Suppose there were 10 posts in the thread when you started, and you're looking at post 8. Then the new data is loaded, and it turns out some new posts have arrived **and** they are chronologically earlier in the thread (i.e. up and offscreen from where you are).

Now what? Scroll you back to see them? Insert them in the thread but highlight them in some way, with a notification that you might want to scroll back? Collect all of them and show them out of context?

@roddie @Ember @Mastodon

4. Suppose there are new posts in the thread and they are chronologically after where you are currently reading (i.e., down and offscreen from where you are).

This is the only scenario where opportunistic fetch and updating the list could make sense. But it's very niche, and you can get Pachli to do that already using the "Refresh" options

@roddie @Ember @Mastodon

I can see how this API might make sense in a non-mobile webapp. For example, you open a thread, and get a notification saying that more posts are loading, so you leave the tab open and go and do something else, coming back to the webapp when it notifies you the new posts have loaded.

But I don't think that's a typical interaction model on mobile.

/fin

@pachli @Ember @Mastodon Thanks for the detailed response, it's a shame it's ultimately such a complicated problem/solution - I've been using the Subsitoot extension for Firefox when using a browser and it's a real game-changing experience for Mastodon that I miss on mobile

@roddie @Ember @Mastodon

That's slightly different. I have https://github.com/pachli/pachli-android/issues/65 on the (very far) back burner. If I've correctly understood what Subsitoot does it's basically the same thing.

pachli/pachli-android

The Pachli Android app. Contribute to pachli/pachli-android development by creating an account on GitHub.

GitHub