slop slop slop sahuuuurrr
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 53 lines 3.4 kB view raw view rendered
1# Missing AppView Endpoints (Final Deep Comparison) 2 3This document provides a final audit of our custom Hydrant-based AppView compared to the official `@atproto/bsky` reference implementation. 4 5## 1. Native / Fully Local Implementations 6These are features served entirely from our local Hydrant index or `fjall` private database. 7- **Actor:** `getProfile`, `getProfiles`, `getPreferences`, `putPreferences`. 8- **Feed:** `getAuthorFeed`, `getTimeline`, `getPostThread`, `getPosts`, `getQuotes`, `getActorLikes`, `getLikes`, `getRepostedBy`, `getFeed` (Hydrated via external generators). 9- **Graph:** `getFollows`, `getFollowers`, `getKnownFollowers`, `getRelationships`, `getBlocks`, `getMutes`, `muteActor`, `unmuteActor`, `getList`, `getLists`. 10- **Notification:** `listNotifications`, `getUnreadCount`, `updateSeen`. 11- **Private State:** `getBookmarks`, `createBookmark`, `deleteBookmark`, `getDrafts`, `createDraft`, `updateDraft`, `deleteDraft`. 12 13--- 14 15## 2. Missing Endpoints (Currently Proxied) 16 17### Search & Discovery (The biggest gap) 18- `app.bsky.actor.searchActors` / `searchActorsTypeahead`: Requires a full-text search engine. 19- `app.bsky.feed.searchPosts`: Requires a full-text search engine. 20- `app.bsky.actor.getSuggestions`: Algorithmic "Who to follow". 21- `app.bsky.feed.getSuggestedFeeds`: Discovery of new custom feeds. 22- `app.bsky.graph.searchStarterPacks`: Search for starter packs. 23- `app.bsky.unspecced.getTrends` / `getTrendingTopics`: Real-time analysis of global post volume. 24 25### Moderation & Labeling 26- `app.bsky.labeler.getServices`: Fetching views of moderation services. 27- `app.bsky.graph.getListBlocks` / `getListMutes`: Mutes/Blocks based on curated lists. 28- `app.bsky.graph.muteActorList` / `muteThread` / etc.: Bulk or contextual muting. 29 30### Starter Packs & Misc Graph 31- `app.bsky.graph.getStarterPack` / `getStarterPacks` / `getActorStarterPacks`: Curated onboarding packs. 32- `app.bsky.graph.getListsWithMembership`: Finding which lists a user belongs to. 33 34### Push Notifications 35- `app.bsky.notification.registerPush` / `unregisterPush`: Requires integration with FCM/APNs. 36 37--- 38 39## 3. Reference Implementation Details Missing 40Even in our "implemented" endpoints, we lack some deep "AppView-only" hydration features present in the reference TypeScript code: 41 42- **Embed Record Hydration:** Our `getPostView` hydrates the main post but doesn't recursively hydrate nested `app.bsky.embed.record` embeds (showing a quote-post's content inside the main post view). The client currently has to fetch those separately or they show as empty. 43- **Labels:** We do not currently fetch or apply labels from Ozone or other labelers to the returned views. 44- **Viewer State:** Our views (like `postView`) don't always include the `viewer` field (e.g., `viewer.like`, `viewer.repost`) which tells the client if *you* have already liked that post. This requires checking your repo's records for every post returned. 45 46--- 47 48## 4. Excluded by Design 49- **Age Assurance:** Always returns "assured". 50- **Contacts:** Not implemented. 51 52## Summary Status 53The AppView is **~85% complete** for a single-user power-user experience. It handles all daily interactions (reading the timeline, checking notifications, viewing threads, managing settings) natively. The remaining ~15% consists of "Global" features like Search and Discovery which typically require massive infrastructure beyond a local repository index.