this repo has no description
1# Implementation TODOs
2
3Lewis' special big boy todofile
4
5## 1. Server Infrastructure & Health
6- [x] Health Check
7 - [x] Implement `GET /health` endpoint (returns "OK").
8- [x] Server Description
9 - [x] Implement `com.atproto.server.describeServer` (returns available user domains).
10
11## 2. Authentication & Account Management (`com.atproto.server`)
12- [x] Account Creation
13 - [x] Implement `com.atproto.server.createAccount`.
14 - [x] Validate handle format (reject invalid characters).
15 - [x] Create DID for new user.
16 - [x] Initialize user repository.
17 - [x] Return access JWT and DID.
18 - [x] MST stuff I think...
19
20- [x] Session Management
21 - [x] Implement `com.atproto.server.createSession` (Login).
22 - [x] Validate identifier (handle/email) and password.
23 - [x] Return access JWT, refresh JWT, and DID.
24 - [x] Implement `com.atproto.server.getSession`.
25 - [x] Verify JWT validity.
26 - [x] Implement `com.atproto.server.refreshSession`.
27 - [x] Implement `com.atproto.server.deleteSession` (Logout).
28 - [x] Invalidate current session/token.
29
30## 3. Repository Operations (`com.atproto.repo`)
31- [ ] Record CRUD
32 - [ ] Implement `com.atproto.repo.createRecord`.
33 - [ ] Generate `rkey` if not provided.
34 - [ ] Validate schema against Lexicon.
35 - [ ] Handle `swapCommit` for optimistic locking.
36 - [ ] Implement `com.atproto.repo.putRecord`.
37 - [ ] Handle create vs update logic.
38 - [ ] Validate `repo` matches authenticated user.
39 - [ ] Validate record schema (e.g., missing required fields).
40 - [ ] Implement `com.atproto.repo.getRecord`.
41 - [ ] Handle missing params (400 Bad Request).
42 - [ ] Handle non-existent record (404 Not Found).
43 - [ ] Implement `com.atproto.repo.deleteRecord`.
44 - [ ] Implement `com.atproto.repo.listRecords`.
45 - [ ] Support pagination (`limit`, `cursor`).
46- [ ] Blob Management
47 - [ ] Implement `com.atproto.repo.uploadBlob`.
48 - [ ] Enforce authentication.
49 - [ ] Validate MIME types (reject unsupported).
50 - [ ] Return blob reference (`$link`).
51- [ ] Repo Meta
52 - [ ] Implement `com.atproto.repo.describeRepo`.
53
54## 4. Actor & Profile (`app.bsky.actor`)
55- [ ] Profile Management
56 - [ ] Implement `app.bsky.actor.getProfile`.
57 - [ ] Resolve handle to DID.
58 - [ ] Return profile record data.
59- [ ] Discovery
60 - [ ] Implement `app.bsky.actor.searchActors`.
61
62## 5. Feed & Timeline (`app.bsky.feed`)
63- [ ] Feed Retrieval
64 - [ ] Implement `app.bsky.feed.getTimeline`.
65 - [ ] Implement `app.bsky.feed.getAuthorFeed`.
66 - [ ] Filter by actor.
67 - [ ] Respect mutes (if viewer is authenticated).
68 - [ ] Implement `app.bsky.feed.getPostThread`.
69 - [ ] Construct thread tree (parents, replies).
70 - [ ] Handle deleted posts (return `notFoundPost` view).
71- [ ] Record Types
72 - [ ] Support `app.bsky.feed.post` record type.
73 - [ ] Support `app.bsky.feed.like` record type.
74 - [ ] Support `app.bsky.embed.images` in posts.
75
76## 6. Social Graph (`app.bsky.graph`)
77- [ ] Relationships
78 - [ ] Implement `app.bsky.graph.getFollows`.
79 - [ ] Implement `app.bsky.graph.getFollowers`.
80 - [ ] Implement `app.bsky.graph.getMutes`.
81 - [ ] Implement `app.bsky.graph.getBlocks`.
82- [ ] Record Types
83 - [ ] Support `app.bsky.graph.follow` record type.
84 - [ ] Support `app.bsky.graph.mute` record type.
85
86## 7. Notifications (`app.bsky.notification`)
87- [ ] Notification Management
88 - [ ] Implement `app.bsky.notification.listNotifications`.
89 - [ ] Aggregate notifications (likes, follows, replies).
90 - [ ] Implement `app.bsky.notification.getUnreadCount`.
91 - [ ] Track read state.
92 - [ ] Reset count on list/read.
93
94## 8. Identity (`com.atproto.identity`)
95- [ ] Resolution
96 - [ ] Implement `com.atproto.identity.resolveHandle`.
97
98## 9. Sync & Federation (`com.atproto.sync`)
99- [ ] Data Export
100 - [ ] Implement `com.atproto.sync.getRepo` (Export CAR file).
101 - [ ] Implement `com.atproto.sync.getBlocks`.
102
103## 10. General Requirements
104- [ ] Validation
105 - [ ] Ensure all endpoints validate input parameters.
106 - [ ] Ensure proper error codes (400, 401, 404, 409).
107- [ ] Concurrency
108 - [ ] Ensure thread safety for repo updates.