- Oct 03, 2017
-
-
Eugen Rochko authored
-
- Sep 30, 2017
-
-
ThibG authored
-
- Sep 29, 2017
-
-
Eugen Rochko authored
- A successful delivery cancels it out - An incoming delivery from account of the inbox cancels it out
-
- Sep 28, 2017
-
-
abcang authored
-
- Sep 25, 2017
-
-
Eugen Rochko authored
-
- Sep 24, 2017
-
-
Daigo 3 Dango authored
-
- Sep 16, 2017
-
-
unarist authored
Reply distribution is proceed by Sidekiq, so replied status may be deleted before this.
-
- Sep 14, 2017
-
-
sdukhovni authored
* Add scheduled worker to purge old user IPs * Use ruby 1.9 hash syntax
-
- Sep 13, 2017
-
-
ThibG authored
* Make RefollowWorker ActivityPub-only to avoid potential identifier mismatches * Don't call RefollowWorker on new accounts
-
- Sep 12, 2017
-
-
ThibG authored
* Whenever a remote keypair changes, unfollow them and re-subscribe to them In Mastodon (it could be different for other OStatus or AP-enabled software), a keypair change is indicative of whole user (or instance) data loss. In this situation, the “new” user might be different, and almost certainly has an empty followers list. In this case, Mastodon instances will disagree on follower lists, leading to unreliable delivery and “shadow followers”, that is users believed by a remote instance to be followers, without the affected user knowing. Drawbacks of this change are: 1. If an user legitimately changes public key for some reason without losing data (not possible in Mastodon at the moment), they will have their remote followers unsubscribed/re-subscribed needlessly. 2. Depending of the number of remote followers, this may generate quite some traffic. 3. If the user change is an attempt at usurpation, the remote followers will unknowingly follow the usurper. Note that this is *not* a change of behavior, Mastodon already behaves like that, although delivery might be unreliable, and the usurper would not have known the former user's followers. * Rename ResubscribeWorker to RefollowWorker * Process followers in batches
-
- Sep 10, 2017
-
-
Eugen Rochko authored
When a new user confirms their e-mail, bootstrap their home timeline by automatically following a set of accounts. By default, all local admin accounts (that are unlocked). Can be customized by new admin setting (comma-separated usernames, local and unlocked only)
-
- Sep 06, 2017
-
-
Eugen Rochko authored
* Decouple Status#local? from uri being nil * Replace on-the-fly URI generation with stored URIs - Generate URI in after_save hook for local statuses - Use static value in TagManager when available, fallback to tag format - Make TagManager use ActivityPub::TagManager to understand new format - Adjust tests * Use other heuristic for locality of old statuses, do not perform long query * Exclude tombstone stream entries from Atom feed * Prevent nil statuses from landing in Pubsubhubbub::DistributionWorker * Fix URI not being saved (#4818) * Add more specs for Status * Save generated uri immediately and also fix method order to minimize diff. * Fix alternate HTML URL in Atom * Fix tests * Remove not-null constraint from statuses migration to speed it up
-
- Sep 05, 2017
-
-
abcang authored
-
- Sep 02, 2017
-
-
Eugen Rochko authored
-
- Aug 30, 2017
-
-
Eugen Rochko authored
* Forward ActivityPub creates that reply to local statuses * Fix test * Fix wrong signers
-
- Aug 29, 2017
-
-
Eugen Rochko authored
Requires moving Atom rendering from DistributionWorker (where `stream_entry.status` is already nil) to inline (where `stream_entry.status.destroyed?` is true) and distributing that. Unfortunately, such XML renderings can no longer be easily chained together into one payload of n items.
-
- Aug 26, 2017
-
-
Eugen Rochko authored
-
Eugen Rochko authored
* Add handling of Linked Data Signatures in payloads * Add a way to sign JSON, fix canonicalization of signature options * Fix signatureValue encoding, send out signed JSON when distributing * Add missing security context
-
masarakki authored
-
- Aug 24, 2017
-
-
Eugen Rochko authored
-
- Aug 21, 2017
-
-
Eugen Rochko authored
-
- Aug 20, 2017
-
-
Eugen Rochko authored
* ActivityPub migration procedure Once one account is detected as going from OStatus to ActivityPub, invalidate WebFinger cache for other accounts from the same domain * Unsubscribe from PuSH updates once we receive an ActivityPub payload * Re-subscribe to PuSH unless already unsubscribed, regardless of protocol
-
- Aug 19, 2017
-
-
Eugen Rochko authored
*Note: OStatus URIs are invalid for ActivityPub. But we have them for as long as we want to keep old OStatus-sourced content and as long as we remain OStatus-compatible.* - In Announce handling, if object URI is not a URL, fallback to object URL - Do not use specialized ThreadResolveWorker, rely on generalized handling - When serializing notes, if parent's URI is not a URL, use parent's URL
-
- Aug 12, 2017
-
-
Eugen Rochko authored
* Deliver ActivityPub Like * Deliver ActivityPub Undo-Like * Deliver ActivityPub Create/Announce activities * Deliver ActivityPub creates from mentions * Deliver ActivityPub Block/Undo-Block * Deliver ActivityPub Accept/Reject-Follow * Deliver ActivityPub Undo-Follow * Deliver ActivityPub Follow * Deliver ActivityPub Delete activities Incidentally fix #889 * Adjust BatchedRemoveStatusService for ActivityPub * Add tests for ActivityPub workers * Add tests for FollowService * Add tests for FavouriteService, UnfollowService and PostStatusService * Add tests for ReblogService, BlockService, UnblockService, ProcessMentionsService * Add tests for AuthorizeFollowService, RejectFollowService, RemoveStatusService * Add tests for BatchedRemoveStatusService * Deliver updates to a local account to ActivityPub followers * Minor adjustments
-
Eugen Rochko authored
-
- Aug 08, 2017
-
-
Eugen Rochko authored
* Add ActivityPub inbox * Handle ActivityPub deletes * Handle ActivityPub creates * Handle ActivityPub announces * Stubs for handling all activities that need to be handled * Add ActivityPub actor resolving * Handle conversation URI passing in ActivityPub * Handle content language in ActivityPub * Send accept header when fetching actor, handle JSON parse errors * Test for ActivityPub::FetchRemoteAccountService * Handle public key and icon/image when embedded/as array/as resolvable URI * Implement ActivityPub::FetchRemoteStatusService * Add stubs for more interactions * Undo activities implemented * Handle out of order activities * Hook up ActivityPub to ResolveRemoteAccountService, handle Update Account activities * Add fragment IDs to all transient activity serializers * Add tests and fixes * Add stubs for missing tests * Add more tests * Add more tests
-
- Jul 31, 2017
-
-
Yamagishi Kazutoshi authored
-
- Jul 28, 2017
-
-
Eugen Rochko authored
-
Eugen Rochko authored
-
- Jul 26, 2017
-
-
Clworld authored
* Add destination informations to exception on SubscribeWorker and DeliveryWorker. * Simplify delivery error message. * Prevent changing Exception type... * fix typo.
-
Sorin Davidoi authored
-
- Jul 24, 2017
-
-
Eugen Rochko authored
* Move clean up of unconfirmed users to sidekiq-scheduler * mastodon:daily is now deprecated
-
- Jul 19, 2017
-
-
Eugen Rochko authored
* Do not raise unretryable exceptions in ResolveRemoteAccountService * Removed fatal exceptions from ResolveRemoteAccountService Exceptions that cannot be retried should not be raised. New exception class for those that can be retried (Mastodon::UnexpectedResponseError)
-
- Jul 18, 2017
-
-
Eugen Rochko authored
-
Akihiko Odaki authored
* Wrap methods of ProcessFeedService::ProcessEntry in classes This is a change same with 425acecf, except that it has the following changes: * Revert irrelevant change in find_or_create_conversation * Fix error handling for RemoteActivity * Introduce Ostatus name space
-
Sorin Davidoi authored
-
- Jul 17, 2017
-
-
Akihiko Odaki authored
-
Akihiko Odaki authored
-
- Jul 15, 2017
-
-
ThibG authored
* Add dependency on idn-ruby to speed up URI normalization * Use normalized_host instead of normalize.host when applicable When we are only interested in the normalized host, calling normalized_host avoids normalizing the other components of the URI as well as creating a new object
-