···
## 🚧 In Progress / Needs Testing
+
**Status:** All core endpoints E2E tested! ✅
+
**✅ E2E Tested (via community_e2e_test.go):**
+
- [x] `social.coves.community.create` - Full E2E test with real PDS
+
- [x] `social.coves.community.get` - E2E test validates HTTP endpoint
+
- [x] `social.coves.community.list` - E2E test with pagination/filtering
+
- [x] `social.coves.community.update` - E2E test verifies write-forward + PDS update
+
- [x] `social.coves.community.subscribe` - E2E test verifies subscription in user's repo
+
- [x] `social.coves.community.unsubscribe` - E2E test verifies PDS deletion
+
- [ ] `social.coves.community.search` - Handler exists, defer E2E testing to post-alpha
+
**⚠️ Remaining Alpha Blocker:**
+
- Replace placeholder auth (X-User-DID header) with OAuth context extraction across all endpoints
+
## ⚠️ Alpha Blockers (Must Complete Before Alpha Launch)
+
### Critical Missing Features
+
- [ ] **Subscription Visibility Level (1-5 Scale):** Implement feed slider from DOMAIN_KNOWLEDGE.md
+
- Lexicon: ✅ Ready ([subscription.json:28-34](internal/atproto/lexicon/social/coves/actor/subscription.json))
+
- Service: ❌ Not using `contentVisibility` field
+
- Handler: ❌ Subscribe endpoint doesn't accept/store visibility level
+
- **Impact:** Users can't control how much content they see from each community
+
- [ ] **Community Blocking:** Users can block communities from their feeds
+
- Lexicon: ❌ Need new record type (extend `social.coves.actor.block` or create new)
+
- Service: ❌ No implementation (`BlockCommunity()` / `UnblockCommunity()`)
+
- Handler: ❌ No endpoints
+
- Repository: ❌ No methods
+
- **Impact:** Users have no way to hide unwanted communities
+
### Critical Security (High Priority)
+
- [ ] **OAuth Authentication:** Replace placeholder `X-User-DID` header with OAuth context
+
- **Currently affected endpoints:** create, update, subscribe, unsubscribe
+
- **See:** [PRD_BACKLOG.md P1 Priority](docs/PRD_BACKLOG.md#L42-L50)
+
- [ ] **Token Refresh Logic:** Auto-refresh expired PDS access tokens
+
- **Impact:** Communities break after ~2 hours when tokens expire
+
- **See:** [PRD_BACKLOG.md P1 Priority](docs/PRD_BACKLOG.md#L31-L38)
+
## 📍 Beta Features (High Priority - Post Alpha)
**Status:** Lexicon designed, implementation TODO
+
**Priority:** HIGHEST for Beta 1
+
- [ ] `social.coves.post` already has `community` field ✅
+
- [ ] Create post endpoint (decide: membership validation?)
- [ ] Feed generation for community posts
- [ ] Post consumer (index community posts from firehose)
- [ ] Community post count tracking
+
- [ ] Decide membership requirements for posting
+
**Without posts, communities exist but can't be used!**
+
## 📍 Beta Features (Lower Priority)
+
**Status:** Lexicon exists, design decisions needed
+
**Deferred:** Answer design questions before implementing
+
- [ ] Decide: Auto-join on first post vs explicit join?
+
- [ ] Decide: Reputation tracking in lexicon vs AppView only?
+
- [ ] Implement membership record creation (if explicit join)
+
- [ ] Member lists endpoint
+
- [ ] Reputation tracking (if in lexicon)
+
### Community Management
+
- [ ] **Community Deletion:** Soft delete / permanent delete
+
- [ ] **Wiki System:** Lexicon exists, no implementation
+
- [ ] **Advanced Rules:** Separate rules records, moderation config
+
- [ ] **Moderator Management:** Assign/remove moderators (governance work)
+
- [ ] **Categories:** REMOVE from lexicon and code (not needed)
+
- [ ] **Saved Items:** Save posts/comments for later
+
- [ ] **User Flairs:** Per-community user flair (design TBD)
+
### Instance Moderation
- [ ] **Delist Community:** Remove from search/directory
- [ ] **Quarantine Community:** Show warning label
- [ ] **Remove Community:** Hide from instance AppView
- [ ] **Moderation Audit Log:** Track all moderation actions
+
## ⏳ TODO Before V1 Production Launch
+
### Community Discovery & Visibility
+
- [ ] **Visibility Enforcement:** Respect public/unlisted/private settings in listings
+
- [ ] **Federation Config:** Honor `allowExternalDiscovery` flag
+
- [ ] **Search Relevance:** Implement ranking algorithm (members, activity, etc.)
+
- [ ] **Directory Endpoint:** Public community directory with filters
+
- [ ] **Rate Limiting:** Prevent community creation spam (e.g., 5 per user per hour)
+
- [ ] **Handle Collision Detection:** Prevent duplicate community handles
+
- [ ] **DID Validation:** Verify DIDs before accepting create requests
### Token Refresh & Resilience
- [ ] **Retry Mechanism:** Retry failed PDS calls with backoff
- [ ] **Credential Rotation:** Periodic password rotation for security
- [ ] **Error Recovery:** Graceful degradation if PDS is unavailable