this repo has no description

Implementation TODOs#

Lewis' special big boy todofile

1. Server Infrastructure & Health#

  • Health Check
    • Implement GET /health endpoint (returns "OK").
  • Server Description
    • Implement com.atproto.server.describeServer (returns available user domains).

2. Authentication & Account Management (com.atproto.server)#

  • Account Creation

    • Implement com.atproto.server.createAccount.
    • Validate handle format (reject invalid characters).
    • Create DID for new user.
    • Initialize user repository.
    • Return access JWT and DID.
    • MST stuff I think...
  • Session Management

    • Implement com.atproto.server.createSession (Login).
      • Validate identifier (handle/email) and password.
      • Return access JWT, refresh JWT, and DID.
    • Implement com.atproto.server.getSession.
      • Verify JWT validity.
    • Implement com.atproto.server.refreshSession.
    • Implement com.atproto.server.deleteSession (Logout).
      • Invalidate current session/token.

3. Repository Operations (com.atproto.repo)#

  • Record CRUD
    • Implement com.atproto.repo.createRecord.
      • Generate rkey if not provided.
      • Validate schema against Lexicon.
      • Handle swapCommit for optimistic locking.
    • Implement com.atproto.repo.putRecord.
      • Handle create vs update logic.
      • Validate repo matches authenticated user.
      • Validate record schema (e.g., missing required fields).
    • Implement com.atproto.repo.getRecord.
      • Handle missing params (400 Bad Request).
      • Handle non-existent record (404 Not Found).
    • Implement com.atproto.repo.deleteRecord.
    • Implement com.atproto.repo.listRecords.
      • Support pagination (limit, cursor).
  • Blob Management
    • Implement com.atproto.repo.uploadBlob.
      • Enforce authentication.
      • Validate MIME types (reject unsupported).
      • Return blob reference ($link).
  • Repo Meta
    • Implement com.atproto.repo.describeRepo.

4. Actor & Profile (app.bsky.actor)#

  • Profile Management
    • Implement app.bsky.actor.getProfile.
      • Resolve handle to DID.
      • Return profile record data.
  • Discovery
    • Implement app.bsky.actor.searchActors.

5. Feed & Timeline (app.bsky.feed)#

  • Feed Retrieval
    • Implement app.bsky.feed.getTimeline.
    • Implement app.bsky.feed.getAuthorFeed.
      • Filter by actor.
      • Respect mutes (if viewer is authenticated).
    • Implement app.bsky.feed.getPostThread.
      • Construct thread tree (parents, replies).
      • Handle deleted posts (return notFoundPost view).
  • Record Types
    • Support app.bsky.feed.post record type.
    • Support app.bsky.feed.like record type.
    • Support app.bsky.embed.images in posts.

6. Social Graph (app.bsky.graph)#

  • Relationships
    • Implement app.bsky.graph.getFollows.
    • Implement app.bsky.graph.getFollowers.
    • Implement app.bsky.graph.getMutes.
    • Implement app.bsky.graph.getBlocks.
  • Record Types
    • Support app.bsky.graph.follow record type.
    • Support app.bsky.graph.mute record type.

7. Notifications (app.bsky.notification)#

  • Notification Management
    • Implement app.bsky.notification.listNotifications.
      • Aggregate notifications (likes, follows, replies).
    • Implement app.bsky.notification.getUnreadCount.
      • Track read state.
      • Reset count on list/read.

8. Identity (com.atproto.identity)#

  • Resolution
    • Implement com.atproto.identity.resolveHandle.

9. Sync & Federation (com.atproto.sync)#

  • Data Export
    • Implement com.atproto.sync.getRepo (Export CAR file).
    • Implement com.atproto.sync.getBlocks.

10. General Requirements#

  • Validation
    • Ensure all endpoints validate input parameters.
    • Ensure proper error codes (400, 401, 404, 409).
  • Concurrency
    • Ensure thread safety for repo updates.