- Add Cloudflare Turnstile verification to login flow
- Add API_BASE_URL and APP_BASE_URL to config for environment flexibility
- Redesign verification and password reset emails with modern HTML templates
- Use config URLs instead of hardcoded domains in auth handlers
- Remove sensitive logging from OTK operations for security
- Delete unused deployment and draft inspection scripts
- Add TURNSTILE_SITE_KEY to Flutter run
- Create SecureChatLoaderScreen for linking to conversations by ID
- Add /secure-chat/:id route to AppRoutes
- Update NotificationService to use AppRoutes.router for all navigation
- Fix Follow and Post navigation routes in NotificationService
- Decouple notification handling from manual Navigator pushes
Features:
- Create FollowersFollowingScreen with tabs for followers/following lists
- Make follower/following counts tappable on profile to navigate to connections
- Create comprehensive PrivacySettingsScreen with sections for:
- Account privacy (private account toggle)
- Post visibility defaults
- Interaction controls (who can message/comment)
- Discovery settings (search visibility)
- Circle (close friends) management placeholder
- Data export and blocked users
- Update ProfilePrivacySettings model with additional fields
- Connect to new backend API endpoints
- Add top padding to anchor zone for better spacing
- Move reactions into stage actions to match main post width
- Left-align interaction buttons (reply, like, save)
- Create dashboard-style reply chains with:
- Header showing reply count and 'Dashboard View' badge
- Individual reply cards with menu buttons
- 'View Thread' action buttons
- Consistent width matching main post
- Subtle shadows and borders for depth
- Add staggered animations for reply items
- Improve visual hierarchy and spacing throughout
- Edit correct file: threaded_conversation_screen.dart _buildAnchorZone method
- Implement rounded top corners with flat bottom
- Add gradient from darker navy top to transparent bottom
- Add prominent top border for visual separation
- Remove spacing between anchor zone and stage zone
- Add 'Previous chain' label and enhanced styling
- Update arrow icon with background container
Change _reactionCountsFor and _myReactionsFor to prefer local state for immediate UI updates after toggle reactions, falling back to post model data when no local state exists.
- Replace NULLIF with CASE WHEN for proper UUID casting
- Fix missing ::uuid casting in WHERE clauses
- Resolve 'operator does not exist: uuid = text' errors
- Focus on post_repository.go, notification_repository.go, and category_repository.go