Pachli 2.8.0 released

Pachli 2.8.0 is now available. This release introduces experimental support for reading the timeline in reverse order and significantly improves notification reliability, as well as the usual bug fixes and other small improvements.

New features and other improvements

Experimental support for reversing the timeline

Do you prefer to read your Fediverse feed by scrolling down, oldest to newest, instead of scrolling up?

To enable, open “Preferences” and at the bottom is a new “Lab experiments” section. Open it, and enable the new “Reverse timeline order” setting.

Pachli lab experiments preference

This is an experiment, and there are number of things which don’t work yet, or are a bit clumsy. So only enable this if:

  • You are prepared to deal with these issues.
  • You’re comfortable reporting any other problems you might encounter.

At the time of writing the known issues are:

  • There’s no “pull to refresh” equivalent. To refresh your timeline you must use the menu at the top right.
  • Returning to the timeline might lose your position.
  • The timelines on account profile pages are also reversed, which can be awkward to navigate.

Please report other issues you discover in the Reverse timeline order discussion.

To set some expectations it’s probably going to take several release cycles to iron out these issues.

The new “Lab experiments” feature allows me to incrementally roll out new changes and get feedback on them from a wider audience.

Timely notifications

Back in February I started looking at the problem of Mastodon notifications never appearing as Android notifications in Pachli.

There’s good news and so-so news.

The good news is this release fixes every bug I could find with how Pachli and related software handles notifications. They should – in the general case – now be delivered much more reliably for most users.

The so-so news is I’ve also discovered all the ways in which this can go wrong and are completely outside Pachli’s control.

The “push” method is where your server notifies Pachli as soon as a new notification is available. The notification is “pushed” to Pachli, and you should see it almost immediately.

The “pull” method is where Pachli checks every 15 minutes to see if there are new notifications, “pulling” them if they exist.

Pachli tries to configure push notifications for all accounts. If it fails for any account Pachli falls back to pull notifications for that account only.

In addition, even for accounts configured to use push notifications, Pachli periodically pulls new notifications to ensure nothing is missed.

The fixes

Easier to understand the notification configuration

The “About > Notifications” screen still exists to show additional debugging information, but has been superceded by a new “Notifications” section in “Preferences”.

This:

  • Shows the UnifiedPush distributor Pachli is using (if present).
  • Lets you change the UnifiedPush distributor if more than one is installed.
  • Shows the notification method (push, or pull) for each account, with details and the timestamp of the last notification fetch.
  • Warns you if you need to disable battery optimisation, and allows you to do so directly.

Pachli notification preferences

In the screenshot above:

  • ntfy.sh is installed and active for some accounts.
  • Multiple accounts are logged in. Some accounts are on servers supporting push notifications, some aren’t. Details for each account can be seen by tapping the “Notification method” entry.
  • Battery optimisation has not been disabled, and it should be, because some accounts require notifications to be pulled. Tapping “Battery optimization” will allow the user to change this.
Bugs in Pachli
  • The code tried to synchronise the set of filtered notification types between Pachli and your server. This could fail, causing some notifications to be ignored. Pachli now fetches all notifications, and filters them in the app according to your preferences.
  • Logging out of one account would disable push notifications for all remaining accounts.
  • If you were logged in with multiple accounts and one of the accounts did not support push notifications then all accounts were downgraded to pull notifications only.
Bugs in Friendica

Friendica servers returned bad data when trying to subscribe to push notifications. Coupled with the third bug from the previous section this meant if you were logged in with e.g., two Mastodon accounts and one Friendica account, all three accounts would use pull notifications.

This was reported in Malformed JSON response for POST to `/api/v1/push/subscription` and fixed by the Friendica team.

Bugs in the UnifiedPush libraries

Pachli uses a library from the UnifiedPush project. It was possible for this library to get in a state where configuring the notification mechanism would silently fail. Pachli would act as if notifications were being pushed even though they weren’t.

This was reported in UnifiedPush preferences can get out of sync, registering silently fails and fixed by the UnifiedPush team.

Things that can still go wrong

Despite these fixes some notifications may still be delayed for reason’s outside Pachli’s control.

Unfortunately it’s generally not possible for Pachli to detect any of these issues or warn you about them.

Bugs in your server

Your server may have bugs that mean notifications are not delivered in a timely fashion.

For example, https://github.com/mastodon/mastodon/issues/26078 (not fixed at the time of writing).

Here, a bug in the Mastodon software is effectively causing a denial-of-service attack on the ntfy.sh service, which responds by blocking all notifications for accounts at mastodon.social.

The intermediate service is down

If you are using an intermediate service like ntfy.sh it may be experiencing an outage.

The intermediate service is rate limiting you

If you are using an intermediate service like ntfy.sh it may have imposed limits on your account you have exceeded, and the service is throttling or discarding notifications.

For example, the free tier of ntfy.sh allows 250 notifications per day (see Sending messages / limitations). If you receive more notifications they will be ignored.

You have enabled notification filtering on your server

Mastodon 4.3 allows you to filter notifications from certain accounts; for example, accounts less than 30 days old.

Mastodon does not send these filtered notifications through the push notification system, so they will never be received in a timely fashion. Pachli always pulls those notifications.

Android battery optimisation delays notifications

If you use a UnifiedPush app like ntfy.sh you must follow any recommendations it makes to disable battery optimisations. Otherwise your Android device may put the app to sleep at arbitrary times, leading to delayed notifications.

If any of your accounts use the “pull” mechanism you will need to disable Pachli’s battery optimisation (accessible in the new Preferences > Notifications section). Without this, although Pachli tells Android “Wake me up every 15 minutes to check for notifications”, Android is free to ignore the 15 minute request and delay it to an arbitrary point in the future.

Updates to translations

Languages with updated translations are:

If you would like to help improve Pachli’s translation in to your language there’s information on how you can contribute.

Significant bug fixes

Username and hashtag rendering in right-to-left languages

NeatNit reported that usernames at the start of text could cause text to be displayed incorrectly in right-to-left languages (#870). This also affected the display of hashtags.

Juan M Sevilla noticed the “Links” icon in the new search filters feature had the wrong colour in dark and black themes (#875).

Errors on the veganism.social timeline

Aubergines posted they were seeing errors on their veganism.social timeline. Further troubleshooting showed this was a bug in the software running on veganism.social but there are some things Pachli can do to work around them.

Always show the posting app name in a post’s details

NordNick said the details display on a post didn’t always include the posting app name, but might show a spurious bullet point with nothing after it. That’s been cleaned up.

Thank you

Thank you to everyone who took the time to report issues and provide additional followup information and screenshots.

Download Pachli 2.8.0 from Google Play, F-Droid, or the GitHub release page.

Pachli is a Nivenly Foundation project