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
Patrick Britton
f77bd72c57
feat: Implement comprehensive reaction display widget, add numerous new screens, services, models, documentation, and configuration files.
2026-02-04 10:57:00 -06:00
Patrick Britton
002f960142
Update terminology, fix search feed, and deploy updates
2026-02-03 21:44:08 -06:00
Patrick Britton
98637c6d9c
feat: finalize notification system (android manifest, token revocation, backend logs)
2026-02-03 17:33:45 -06:00
Patrick Britton
87523428a7
feat: add initial VS Code configurations and development environment setup for Flutter, Supabase, and Deno.
2026-02-03 17:28:52 -06:00
Patrick Britton
10ae2944d2
feat: Initialize Sojorn Flutter application with core UI, services, E2EE, backup, and build scripts for various platforms.
2026-02-03 17:13:28 -06:00
Patrick Britton
a1d47f8e95
Add reaction system and security improvements
2026-02-01 16:06:12 -06:00
Patrick Britton
a6c7834b3b
Remove old ReactionStrip to avoid duplication
...
- Remove old ReactionStrip component from PostActions
- Remove unused top reactions calculation
- Remove ReactionStrip import
- Keep only SmartReactionButton for clean interface
- Eliminate redundant reaction display
- Simplify action row layout
2026-02-01 14:22:35 -06:00
Patrick Britton
94ffb419ae
Replace appreciate button with smart reaction button
...
- Remove appreciate button functionality (redundant with reactions)
- Create SmartReactionButton that shows:
- Plus icon when no reactions exist
- Top reaction + count when reactions exist
- User's reaction + count when user has reacted
- Update ReactionPicker to show existing reactions first with counts
- Add visual indicators for selected reactions and counts
- Maintain full reaction functionality in single button
- Improve UX by consolidating reaction interactions
2026-02-01 14:16:20 -06:00