Problem/Motivation
Despite activitypub specification doesn't mention backfill, and activitypub is taken as mail inbox/outbox, which cannot receive messages before they are created. There are reasons to implement, first of all the silos comparation, it's a common practice among them that when you start following someone its previous messages appear in your timeline.
I think most of the users are expecting it.
To collect some conversations/ideas about it:
- Mastodon: https://github.com/mastodon/mastodon/issues/34
- Pixelfed: https://github.com/pixelfed/pixelfed/issues/1745
- Friendica: backfills pinned statuses
Implementation
There's a setting on the settings screen in the 'Inbox' group where you can toggle the functionality and set the amount of activities to backfill. This is handled by StaticTypes::onActivityPostSave and StaticTypes::doInboxProcess. There's no manual button so far, that can maybe be handled in the UI of the reader module, but we'll see. Other clients don't seem to have this, as far as I can see anyway. Could be an ideal candidate for #3574479: Create a pluggable transport manager too (the doInboxProcess part then)
Issue fork activitypub-3315832
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
swentel commentedI like the idea. I can imagine a setting for the amount to get fetch; If 0, nothing comes in. Maybe limit the UI to say maximum 30 or so? (otherwise, we'd have to iterate all pages in the outbox too)
Comment #3
aleixGood, that would be great. Maybe it could start with a little amount of 10 (or the number set manually in settings) and a manual button to obtain more activities afterwards.
Comment #4
swentel commentedThis is becoming interesting for the API implementation too. I have a test in the api where a user follows another one, and then I expected to see the posts, which are created before in the test, are appearing, but they aren't available for the timeline items yet.
Setting as task, but not necessarily as a dependency to finish the API, but will move it to the 'other' section to get this in for 1.0.0
Comment #6
swentel commentedComment #7
swentel commentedComment #8
swentel commentedComment #9
swentel commentedComment #10
swentel commentedComment #12
swentel commentedMerged in, woop!
Comment #14
swentel commented