code
Clone this repository
https://tangled.org/bretton.dev/coves-mobile
git@knot.bretton.dev:bretton.dev/coves-mobile
For self-hosted knots, clone URLs may differ based on your setup.
Full-screen community selection interface for post creation:
- Search with debounced client-side filtering
- Infinite scroll pagination
- Cached avatar images with error fallback
- Proper authenticated API service with disposal
- Member/subscriber count formatting (K/M suffixes)
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add CovesApiService methods for community operations:
- listCommunities(): Fetch communities with pagination and sorting
- createPost(): Create posts with title, content, embeds, and labels
Both methods include proper error handling and debug logging.
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add data models for community-related API operations:
- CommunitiesResponse and CommunityView for listing communities
- CommunityViewerState for subscription/membership status
- CreatePostRequest and CreatePostResponse for post creation
- ExternalEmbedInput for link embeds
- SelfLabels and SelfLabel for content labels (NSFW, etc.)
All models support const constructors for better performance.
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add per-post CommentsProvider caching with LRU eviction for instant
back-navigation, scroll position restoration, and draft text preservation.
Updates feed tests to reflect the new feed type tab behavior:
- Default feed is now Discover (not timeline)
- Authenticated users see both Discover and For You tabs
- Unauthenticated users see only Discover tab
- Updated test descriptions for clarity
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updates tests to work with the new CommentsProvider constructor that
requires postUri and postCid parameters.
Changes:
- CommentsProvider tests: pass postUri/postCid in constructor, remove
parameters from loadComments calls
- Add MockCommentsProvider helper for widget tests
- Update FocusedThreadScreen tests to provide commentsProvider parameter
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updates PostDetailScreen, ReplyScreen, and FocusedThreadScreen to use
the new CommentsProviderCache for instant back-navigation and state preservation.
PostDetailScreen:
- Acquires provider from cache with reference counting
- Restores scroll position when returning to cached comments
- Background refresh if data is stale (>5 min)
- Handles sign-out by navigating back to feed
ReplyScreen:
- Requires CommentsProvider parameter for draft access
- Saves draft text on cancel, restores on reopen
- Per-parent-URI drafts (separate drafts for different reply contexts)
- Auto-closes on sign-out
FocusedThreadScreen:
- Passes CommentsProvider to children for consistent draft/vote state
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>