Post by @jorijn@jorijn.com
Hey guys. Please take a look at LittleFedi.social. It’s new software by @stefano@bsd.cafe and Ivory doesn’t play nice yet. Consider me one of the users who would be very happy for this to happen.
@jorijn @stefano Unfortunately we can only support Mastodon. For other ActivityPub services to work with Ivory, they need to be closer to how Mastodon works. There are many other ActivityPub services that work great in Ivory because of this. We just don’t have the time or resources to make Ivory work for other services. It has to be the other way around.
@stefano@bsd.cafe @ivory@tapbots.social it works OK-ish, but doesn’t reload new timeline data and doesn’t load notifications. It seems to happen only when it already has state. Uninstall and fetching data after logging in works fine.
@jorijn@jorijn.com @stefano@bsd.cafe @ivory@tapbots.social
Until very recently I have been able to use #Ivory quite well.
I concur with @stefano that something changed on the side of #Ivory app
@fd0 @jorijn @ivory @stefano@littleone.littlefedi.social I cannot exclude some changes in littlefedi have broken something there. There have been a couple of changes in the mastoapi support, but at least in theory, nothing that should affect this. We will check!
@stefano@bsd.cafe @fd0@littleone.littlefedi.social @ivory@tapbots.social
Spent a bit of time debugging with Claude based on the source code and webserver logs, and found a few reasons. See below. Claude made a few patches and Ivory works as intended now. Hope this helps, somehow :)
Let me know if you want to see the code, but since its AI; YMMV.
-
Home timeline doesn't refresh.
- Problem: the timeline cache keeps
min_id/since_idresults for up totimeline_ttland doesn't clear them when new posts arrive. Ivory keeps asking for posts newer than its newest one and gets the same empty list for up to two hours. - Solution: don't cache
min_id/since_idwindows, or invalidate them whenever the viewer's home feed changes. Turning off[cache]fixes it as a workaround.
- Problem: the timeline cache keeps
-
Notifications don't refresh.
- Problem:
/api/v1/notificationsand/api/v2/notificationssend noLinkheader. Ivory builds its refresh request fromrel="prev", so pull-to-refresh never reaches the server. - Solution: send
Linkheaders with absolute URLs, as the timeline endpoints already do. Patch attached.
- Problem:
-
Read position isn't saved (PostgreSQL).
- Problem: the marker upsert refers to
versionwithout naming the table, which PostgreSQL rejects as ambiguous. EveryPOST /api/v1/markersreturns 500, so Ivory can't sync unread state and notifications are never marked read. - Solution: write
markers.versionin the update.
- Problem: the marker upsert refers to
-
Push notifications can't be expanded.
- Problem: the push payload has no
access_token, andnotification_idis the internal UUID rather than the API ID. Ivory's notification extension then fetches the full notification and gets 401. - Solution: send the numeric API ID, and provide a way for the client to authenticate that fetch.
- Problem: the push payload has no
