Patrick Britton
8d00dc4fda
fix: add is_nsfw/nsfw_reason to all post queries (profile, detail, saved, liked, chain, focus context)
2026-02-07 18:12:35 -06:00
Patrick Britton
8ea63edf8c
fix: exclude NSFW posts from search, discover, trending, hashtag pages - only allow in following feed + own profile
2026-02-07 17:39:31 -06:00
Patrick Britton
27b48128fe
feat: full NSFW system - Cinemax rules, auto-reclassify with warning, not-allowed removal with appeal email, blur toggle setting, user self-labeling
2026-02-07 16:58:57 -06:00
Patrick Britton
68dd8d3544
feat: AI Audit Log admin page with filters, feedback training, and export
2026-02-07 16:43:38 -06:00
Patrick Britton
1f0461b4f4
feat: AI moderation audit log with admin feedback for training - DB migration, service methods, admin endpoints
2026-02-07 16:35:50 -06:00
Patrick Britton
c83317c29c
fix: COALESCE all bare p.duration_ms to prevent NULL scan crash on focus-context and other queries
2026-02-07 16:29:35 -06:00
Patrick Britton
10c48f1fd7
fix: badge count uses live query instead of stale cached column, excludes archived
2026-02-07 15:15:02 -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
95056aee82
Fix AI moderation: wrap content with moderation prefix, add temperature=0 and max_tokens to prevent conversational replies
2026-02-06 21:03:46 -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
e81e9e52b7
Fix AI moderation parser: robust JSON extraction + score-based flagging override
2026-02-06 20:19:36 -06:00
Patrick Britton
d40baf9bee
AI moderation: detailed explanations per category in test results
2026-02-06 20:06: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
d73b73ac89
Remove hardcoded reserved names - all reserved usernames now DB-only via admin console
2026-02-06 17:26:02 -06:00
Patrick Britton
2fb413c8d2
Admin console: reserved usernames management + claim request review system
2026-02-06 17:13:15 -06:00
Patrick Britton
6a1f20759b
Add reserved username + inappropriate content validation for registration and profile updates
2026-02-06 16:32:14 -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
a94c91da24
Fix notification badge: exclude archived from count, recalculate on archive, update trigger
2026-02-06 15:44:58 -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
2ad148f607
Refactor SendPulse into shared service, wire app registration to Sojorn Members list (book 568122)
2026-02-06 15:33:58 -06:00
Patrick Britton
90ff6e223b
Wire SendPulse newsletter signup into waitlist endpoint, add subscriber to address book 568090
2026-02-06 14:45:51 -06:00
Patrick Britton
b91e42d005
Add coming soon landing page with waitlist signup, add waitlist API endpoint
2026-02-06 14:40:37 -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
9fafda2e13
Fix moderation queue: add dismissed/actioned to CHECK constraint, full ban workflow from queue
2026-02-06 12:56:52 -06:00
Patrick Britton
1d8ef9135e
Admin: preset reason options for ban/suspend/activate modals + custom option
2026-02-06 12:41:43 -06:00
Patrick Britton
e5fd9bcaa5
Add account restored email on reactivation from ban/suspend
2026-02-06 12:39:18 -06:00
Patrick Britton
d1b01aa5b2
Content jailing: hide all posts/comments on ban/suspend, restore on activate
2026-02-06 12:37:03 -06:00
Patrick Britton
d32da021fb
Fix admin ban: add banned/suspended to user_status enum, remove bad audit_log query
2026-02-06 12:30:00 -06:00
Patrick Britton
6edaf9206f
Admin: fix silent error swallowing - show alerts on action failures
2026-02-06 12:23:52 -06:00
Patrick Britton
7e721aea21
Admin moderation: ban emails, post removal emails with strikes, appeal flow
2026-02-06 12:14:13 -06:00
Patrick Britton
f4701b0d24
Ban enforcement: immediate session kill, IP logging, login/register/middleware checks
2026-02-06 12:09:02 -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