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.
- Add Podfile.lock for reproducible CocoaPods builds
- Update Xcode project and workspace settings
- Update AppFrameworkInfo.plist
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Podfile for iOS native dependencies
- Update xcconfig files to include CocoaPods integration
- Ignore macOS directory (not targeting this platform)
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add collapsed comment tracking to CommentsProvider with toggleCollapsed()
- Add long-press gesture on CommentCard with haptic feedback
- Show "+N hidden" badge when thread is collapsed (depth-aware positioning)
- Animate collapse/expand with AnimatedSwitcher + SizeTransition (200ms)
- Only build replies widget when not collapsed (optimization)
- Wire up collapse state in PostDetailScreen
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add FeedType enum (discover/forYou) with feed switching in FeedProvider
- Replace AppBar with transparent gradient header overlay
- Add Discover/For You tabs with underline indicator (auth-gated)
- Rename Search tab to Communities with Workspaces icon
- Use IndexedStack to preserve screen state on tab switch
- Add accessibility labels and extract magic numbers to constants
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Comment creation feature with backend integration:
- CommentService for API calls
- Shared auth interceptor (401 retry)
- Input validation (10k chars, emoji-aware)
- Tap-to-reply UI for nested comments
- 22 new tests
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
CommentService tests (10 tests):
- Successful comment creation
- Auth failure when no session
- Network error handling
- 401 response handling
- Invalid responses (null data, missing uri, empty uri)
- Server error handling
- Nested reply request format
CommentsProvider.createComment tests (12 tests):
- Validation: empty content, whitespace-only, exceeds limit
- Emoji counting with grapheme clusters
- Error states: no post loaded, no CommentService
- Top-level comment (reply to post)
- Nested comment (reply to comment)
- Content trimming
- Refresh after success
- Exception propagation
- Boundary testing at max length
All 52 tests pass.
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>