fix: pre-release improvements — scale, correctness, API clarity
#1 count_accepted_followers / get_accepted_followers_page: new DB-side methods on FollowRepository — no more loading all followers into memory to count or page them. #2 Move re-follows are now non-blocking: tokio::spawn instead of awaiting each sign_and_send inside receive() — inbox handler no longer stalls for slow remote servers during account migration. #3 Remove get_local_objects_for_user from ApContentReader (dead code). Backfill and outbox both use the paginated get_local_objects_page. #6 Rename backfill_outbox → import_remote_outbox with a clear doc explaining the direction (import FROM a remote server, not to a follower). #7 also_known_as: Option<String> → Vec<String> on ApUser, LookedUpActor, and DbActor. from_json now stores all aliases; move_act.rs checks all. Mentions: broadcast_create_note / broadcast_update_note now accept mentioned_inboxes: Vec<Url> — delivery goes to followers + mentioned actors who aren't already followers. Deduplication is done before sending. Pass vec![] if note has no external mentions. Docs: ApObjectHandler and ApContentReader now have complete doc comments with contracts, idempotency guidance, and error-handling semantics.
This commit is contained in:
@@ -43,6 +43,16 @@ pub trait FollowRepository: Send + Sync {
|
||||
/// followers, excluding blocked actors/domains. DB-side filtering.
|
||||
async fn get_accepted_follower_inboxes(&self, local_user_id: uuid::Uuid)
|
||||
-> Result<Vec<String>>;
|
||||
/// Count of accepted followers only. More efficient than loading all followers
|
||||
/// and filtering in application memory.
|
||||
async fn count_accepted_followers(&self, local_user_id: uuid::Uuid) -> Result<usize>;
|
||||
/// Accepted followers page for display purposes. `offset` is 0-based.
|
||||
async fn get_accepted_followers_page(
|
||||
&self,
|
||||
local_user_id: uuid::Uuid,
|
||||
offset: u32,
|
||||
limit: usize,
|
||||
) -> Result<Vec<RemoteActor>>;
|
||||
|
||||
// ── Outbound following ──────────────────────────────────────────────────
|
||||
async fn add_following(
|
||||
|
||||
Reference in New Issue
Block a user