Add missing com.atproto.sync endpoints and Sync v1.1 support #21

Closed
opened 2026-04-12 17:28:57 +00:00 by Grandiras · 0 comments
Owner

Summary

ATProto.NET is missing several com.atproto.sync endpoints that are specified in the protocol for repository synchronization. These are important for relay implementations and advanced sync scenarios.

Missing endpoints

  • com.atproto.sync.getRepoStatus - Get hosting status of a specific repo (active, deactivated, suspended, takendown, etc.)
  • com.atproto.sync.listHosts - List known hosts (relay-specific)
  • com.atproto.sync.getHostStatus - Get status of a specific host (relay-specific)
  • com.atproto.sync.listReposByCollection - List repos filtered by collection (new in Sync v1.1)
  • com.atproto.label.subscribeLabels - WebSocket subscription for label events (client currently exists but only for repo events)

Context

The Sync v1.1 specification (proposal) introduces:

  • Efficient MST operation validation in commits ("inductive firehose")
  • New #sync message type on the firehose
  • New desynchronized and throttled account statuses
  • listReposByCollection for efficient backfill

Account hosting statuses to model

  • active - Normal active account
  • deleted - Account deleted
  • deactivated - Temporarily paused
  • takendown - Moderation takedown
  • suspended - Temporarily suspended
  • desynchronized - Sync problem detected (new)
  • throttled - Rate limit exceeded (new)
## Summary ATProto.NET is missing several `com.atproto.sync` endpoints that are specified in the protocol for repository synchronization. These are important for relay implementations and advanced sync scenarios. ## Missing endpoints - `com.atproto.sync.getRepoStatus` - Get hosting status of a specific repo (active, deactivated, suspended, takendown, etc.) - `com.atproto.sync.listHosts` - List known hosts (relay-specific) - `com.atproto.sync.getHostStatus` - Get status of a specific host (relay-specific) - `com.atproto.sync.listReposByCollection` - List repos filtered by collection (new in Sync v1.1) - `com.atproto.label.subscribeLabels` - WebSocket subscription for label events (client currently exists but only for repo events) ## Context The Sync v1.1 specification ([proposal](https://github.com/bluesky-social/proposals/tree/main/0006-sync-iteration)) introduces: - Efficient MST operation validation in commits ("inductive firehose") - New `#sync` message type on the firehose - New `desynchronized` and `throttled` account statuses - `listReposByCollection` for efficient backfill ### Account hosting statuses to model - `active` - Normal active account - `deleted` - Account deleted - `deactivated` - Temporarily paused - `takendown` - Moderation takedown - `suspended` - Temporarily suspended - `desynchronized` - Sync problem detected (new) - `throttled` - Rate limit exceeded (new)
Sign in to join this conversation.
No description provided.