Commit graph

77 commits

Author SHA1 Message Date
Patrick Britton 5780f0ff75 feat: beacon tactical dashboard - dark map-first UI, DraggableScrollableSheet, severity pins, 'I see this too' verification, incident categories 2026-02-09 10:43:34 -06:00
Patrick Britton 442b4bef32 feat: beacon safety system - add severity/incident_status/radius to DB, model, and API 2026-02-09 10:21:07 -06:00
Patrick Britton 9a66d7df64 feat: move link preview card (news widget) above post body text 2026-02-08 15:22:18 -06:00
Patrick Britton ea692da571 fix: RadialMenuOverlay gesture-eating bug IgnorePointer when not visible + status listener to trigger rebuild on dismiss 2026-02-08 15:04:08 -06:00
Patrick Britton d6204db5c4 fix: prevent setState after pop with _popped guard, remove snackbar from compose to prevent scaffold corruption on Android 2026-02-08 14:58:53 -06:00
Patrick Britton 1d05300f17 feat: show link URL below post body for news stories 2026-02-08 14:53:46 -06:00
Patrick Britton e03442f789 fix: reset focus after compose pop to prevent web freeze, show snackbar before pop, skip animation replay on thread reload 2026-02-08 14:48:44 -06:00
Patrick Britton 46bf51a6c4 feat: compose URL preview, truncated URLs in post body, sync link preview fetch 2026-02-08 14:20:38 -06:00
Patrick Britton 43199e52bc refactor: remove hardcoded safe domain lists, fetch from backend API instead 2026-02-08 13:57:38 -06:00
Patrick Britton e9e140df5e feat: link preview system - OG tag fetching, safe URL validation, full-width thumbnail card 2026-02-08 13:27:13 -06:00
Patrick Britton 9a9b2eb887 feat: admin content tools UI - create user form + import posts/quips/beacons via links or CSV 2026-02-08 09:52:19 -06:00
Patrick Britton 25d3e213ea fix: hide NSFW posts entirely when user hasn't enabled NSFW - backend filtering + Flutter safety net 2026-02-08 00:19:44 -06:00
Patrick Britton b51c9ba90b feat: email notifications for deactivate/delete, typed confirmations, chat backup manager, provider invalidation on logout 2026-02-07 23:39:51 -06:00
Patrick Britton bc35eea69b feat: add NSFW self-labeling toggle in compose, blur setting in user preferences, improve signup date pickers with modal sheets
- Add `isNsfw` checkbox to compose screen for user self-labeling
- Add `nsfwBlurEnabled` setting to UserSettings model (default true)
- Replace signup month/year dropdowns with modal bottom sheet pickers
- Preload Noto Color Emoji font on app startup
- Refactor notifications/discover screens to use FullScreenShell component
2026-02-07 18:15:54 -06:00
Patrick Britton f48274706a fix: cast birthYear subtraction to int to fix build error 2026-02-07 12:07:04 -06:00
Patrick Britton 6e8cc5d802 fix: remove anonymous label from beacons, just omit author info entirely 2026-02-07 12:04:41 -06:00
Patrick Britton 67f74deb58 feat: anonymous beacons, video metadata stripping, remove beacon author exposure
- GetNearbyBeacons no longer returns author info (anonymous placeholder)
- Beacons excluded from profile posts (GetPostsByAuthor)
- Vouch/report notifications removed for beacon privacy
- MediaHandler strips all metadata (EXIF/GPS/device) via ffmpeg before R2 upload
- Flutter beacon UI shows 'Anonymous Beacon' instead of author info
2026-02-07 12:02:47 -06:00
Patrick Britton ecc02e10cc feat: implement account deactivation, deletion (14-day), and immediate destroy with email confirmation 2026-02-07 11:13:11 -06:00
Patrick Britton b10595f252 Age gating: birth month/year in registration, under-16 login block, under-18 NSFW block 2026-02-06 20:56:00 -06:00
Patrick Britton 256592379a NSFW content system: blur overlay, user toggle, AI tri-state (clean/nsfw/flag), feed filtering 2026-02-06 20:42:23 -06:00
Patrick Britton 7c52a1a1ed AI moderation config: OpenRouter integration, admin console page, 10s quip limit 2026-02-06 19:48:36 -06:00
Patrick Britton 9d7aa46a0d Fix bracket mismatch in notifications_screen.dart 2026-02-06 16:15:03 -06:00
Patrick Britton 72264c3044 NotificationsScreen + DiscoverScreen: match Thread screen AppBar (back, home/search/chat actions, full-page push) 2026-02-06 16:12:12 -06:00
Patrick Britton 8d52e34647 DiscoverScreen: match Thread screen AppBar (back, title, home/chat actions) 2026-02-06 16:04:49 -06:00
Patrick Britton b8bd45c0f9 NotificationsScreen: match Thread screen AppBar (back, title, home/chat actions, tab bar) 2026-02-06 16:03:50 -06:00
Patrick Britton 858d57b5b2 Keep original bottom nav, navigate search/notifications inside shell with Threads-style top bar 2026-02-06 16:00:07 -06:00
Patrick Britton 8623596903 Revert "Threads-style nav: Home, Search, +, Activity (heart+badge), Profile as bottom nav tabs"
This reverts commit 7f81923b3e.
2026-02-06 15:58:58 -06:00
Patrick Britton 7f81923b3e Threads-style nav: Home, Search, +, Activity (heart+badge), Profile as bottom nav tabs 2026-02-06 15:57:16 -06:00
Patrick Britton 863ddfe654 Revert "Fix: Search and Notifications render inside shell (bottom nav stays visible), remove duplicate nav"
This reverts commit d3aa09424e.
2026-02-06 15:55:33 -06:00
Patrick Britton d3aa09424e Fix: Search and Notifications render inside shell (bottom nav stays visible), remove duplicate nav 2026-02-06 15:51:59 -06:00
Patrick Britton c9add58b8b Revert "Threads-style nav: move Search and Activity into bottom nav tabs, remove duplicate nav from NotificationsScreen"
This reverts commit 1376802f76.
2026-02-06 15:50:38 -06:00
Patrick Britton 1376802f76 Threads-style nav: move Search and Activity into bottom nav tabs, remove duplicate nav from NotificationsScreen 2026-02-06 15:49:46 -06:00
Patrick Britton d83cdb3778 Fix orphaned string literals in local_message_store.dart causing build failure 2026-02-06 15:40:36 -06:00
Patrick Britton 8186e9e71c Fix notifications: add archived_at to model/queries, archived tab returns only archived, add bottom nav to notifications screen 2026-02-06 14:30:18 -06:00
Patrick Britton 46566f394b Clean up: fix run scripts, remove 190+ debug print statements from 22 files, keep only FCM debugPrints for active notification work 2026-02-06 14:13:03 -06:00
Patrick Britton b14e1fbfa3 Fix notification badge: archive marks as read; change notifications to full page 2026-02-06 13:04:36 -06:00
Patrick Britton 70fa1dddca Fix content filter: remove word boundaries to catch concatenated slurs 2026-02-06 12:01:19 -06:00
Patrick Britton b5002c1ce4 Replace blocked content popup with Instagram-style inline banner 2026-02-06 11:53:32 -06:00
Patrick Britton f6c4bb88e0 Add layered content moderation: hard blocklist + strike system + client-side filter 2026-02-06 11:46:30 -06:00
Patrick Britton 0954c1e2a3 feat: add Turnstile to login, improve email templates, and security cleanup
- 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
2026-02-06 08:51:34 -06:00
Patrick Britton 33ea9b1d56 feat: notify archive instead of delete, fix api domain failsafe 2026-02-04 19:38:02 -06:00
Patrick Britton 0f6a91e319 feat: implement traditional threaded quips (comments) sheet with rich text post body and expand functionality. 2026-02-04 18:44:20 -06:00
Patrick Britton 933161cb65 Fix Android notification click bug and improve FCM logging
- Add FLUTTER_NOTIFICATION_CLICK intent filter to AndroidManifest.xml
- Extend initial notification message delay for terminated-state deep linking
- Add robust logging to notification listeners for easier debugging
2026-02-04 18:01:01 -06:00
Patrick Britton 48dfc76173 Fix compilation error in notification_service.dart 2026-02-04 17:46:53 -06:00
Patrick Britton c635da552d Implement robust notification deep linking
- 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
2026-02-04 17:42:37 -06:00
Patrick Britton 69358b016f Fix compilation errors in followers/following and privacy screens
- Fix FollowersFollowingScreen: correct imports, AppTheme references, SignedMediaImage param
- Fix profile_screen.dart: move _navigateToConnections to _ProfileScreenState, pass callback to _ProfileHeader
- Fix profile_settings_screen.dart: update property names (isPrivate, defaultVisibility)
2026-02-04 17:21:08 -06:00
Patrick Britton adeffe691e Add followers/following screen and comprehensive privacy settings
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
2026-02-04 16:46:20 -06:00
Patrick Britton e1470c8f52 Add smooth fade-in animation to signed images for premium feel 2026-02-04 13:37:53 -06:00
Patrick Britton 92d8920183 Fix 413 Request Entity Too Large and refine image display aesthetics 2026-02-04 13:32:46 -06:00
Patrick Britton 3f3e228e8a feat: Add comprehensive notification system including model, UI, and service integration, alongside new deployment documentation. 2026-02-04 12:17:58 -06:00