Commit graph

31 commits

Author SHA1 Message Date
Patrick Britton 1da62185f9 feat: Feed cooling, group key rotation, admin groups/quip repair, bulk block, health endpoints
- video_processor: upload extracted frames to R2, return signed URLs
- feed_algorithm: cooling period (0.2x multiplier) + 60/20/20 diversity injection + record impressions
- groups_handler: group feed, E2EE key-status/distribute/public-keys, invite/remove member, settings
- admin_handler: groups CRUD, quip repair (FFmpeg to R2), feed scores viewer
- user_handler: BulkBlockUsers POST /users/me/blocks/bulk
- main.go: wire health check (/health/detailed /ready /live) + all new routes
- monitoring: fix pre-existing zerolog import + uint64 type errors
- migration: user_feed_impressions, group_member_keys, groups key columns

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 15:04:14 -06:00
Patrick Britton e0056789ac fix: Remove unused weights variable in GetAlgorithmicFeed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 14:15:54 -06:00
Patrick Britton c3329a0893 feat: Implement repost/boost API, profile layout persistence, feed algorithm wiring, and legacy cleanup
Backend:
- Add repost_handler.go with full CRUD (create, boost, delete, report, trending, amplification analytics)
- Add profile_layout_handler.go for profile widget layout persistence (GET/PUT)
- Wire FeedAlgorithmService into main.go as 15-min background score refresh job
- Fix follow_handler.go (broken interface, dead query pattern, naming conflict)
- Add DB migration for reposts, repost_reports, profile_layouts, post_feed_scores tables
- Add engagement count columns to posts table for feed algorithm
- Remove stale Supabase comments from auth middleware
- Delete cmd/supabase-migrate/ directory (legacy migration tool)

Flutter:
- Fix all repost_service.dart API paths (were doubling /api/ prefix against base URL)
- Rename forceResetBrokenKeys() -> resetIdentityKeys() in E2EE services
- Remove dead _forceResetBrokenKeys method from secure_chat_screen.dart
- Implement _navigateToProfile(), _navigateToHashtag(), _navigateToUrl() in sojorn_rich_text.dart

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 14:04:24 -06:00
Patrick Britton 56a9dd032f feat: Add enhanced video moderation with frame extraction and implement placeholder UI methods
- Add VideoProcessor service to PostHandler for frame-based video moderation
- Implement multi-frame extraction and Azure OpenAI Vision analysis for video content
- Enhance VideoStitchingService with filters, speed control, and text overlays
- Add image upload dialogs for group avatar and banner in GroupCreationModal
- Implement navigation placeholders for mentions, hashtags, and URLs in sojornRichText
2026-02-17 13:32:58 -06:00
Patrick Britton 21a1d1e8ef feat: Add Groups system - database schema, seed data, and backend handlers 2026-02-17 10:59:34 -06:00
Patrick Britton da93bc3579 feat: Follow system - database migration, backend handlers, FollowButton widget, API methods 2026-02-17 10:16:44 -06:00
Patrick Britton 9348765b68 fix: remove duplicate altcha_handler.go (methods already in admin/auth handlers) 2026-02-17 03:46:58 -06:00
Patrick Britton c255386db5 feat: Phase 1.1 - Groups page overhaul with discovery, category filtering, and join flow 2026-02-17 03:29:20 -06:00
Patrick Britton 2bfb8eecea feat: replace Turnstile with ALTCHA across Flutter app, Go backend, and website 2026-02-17 03:18:50 -06:00
Patrick Britton 95be179a38 security: remove development bypass tokens from production code 2026-02-17 00:52:29 -06:00
Patrick Britton da5984d67c refactor: rename Go module from github.com/patbritton to gitlab.com/patrickbritton3
- Rename module path from github.com/patbritton/sojorn-backend to gitlab.com/patrickbritton3/sojorn/go-backend
- Updated 78 references across 41 files
- Matches new GitLab repository structure
2026-02-16 23:58:39 -06:00
Patrick Britton 96c0348d3a fix: use string literal for SHA-256 algorithm instead of undefined constant 2026-02-16 23:43:38 -06:00
Patrick Britton a5f20439bf fix: correct ALTCHA CreateChallenge API call to use ChallengeOptions struct 2026-02-16 23:42:20 -06:00
Patrick Britton db0e3dfb59 feat: implement official ALTCHA library for proper challenge generation
- Install github.com/altcha-org/altcha-lib-go official library
- Replace custom implementation with official ALTCHA methods
- Use CreateChallenge for proper cryptographic challenges
- Use VerifySolution for proper token verification
- This should fix all ALTCHA verification issues
2026-02-16 23:40:43 -06:00
Patrick Britton 2149a1e001 fix: add development bypass for ALTCHA on admin login
- Allow login in development mode without ALTCHA verification
- Use BYPASS_DEV_MODE token in development
- Keep ALTCHA widget visible but not blocking in dev mode
- This allows testing while we fix the challenge implementation
2026-02-16 23:35:47 -06:00
Patrick Britton 11e8b30122 fix: resolve variable naming conflict in ALTCHA challenge handlers 2026-02-16 23:33:31 -06:00
Patrick Britton 7944380ada fix: implement proper ALTCHA challenge with HMAC signatures
- Use proper cryptographic challenge generation
- Add HMAC-SHA256 signatures for challenge verification
- Replace test signatures with real cryptographic signatures
- This should fix the verification failures
2026-02-16 23:32:02 -06:00
Patrick Britton b6909ffc67 feat: add simple ALTCHA challenge endpoints
- Add GetAltchaChallenge method to both auth and admin handlers
- Simple implementation returning test challenge data
- This should fix the route registration issue
2026-02-16 23:11:54 -06:00
Patrick Britton a3fcfe67ab feat: replace Turnstile with ALTCHA for all authentication
- Add ALTCHA service with challenge generation and verification
- Update auth and admin handlers to use ALTCHA tokens
- Replace Turnstile widget with ALTCHA widget in Flutter app
- Update admin frontend to use ALTCHA token
- Add ALTCHA challenge endpoints for both auth and admin
- Maintain development bypass for testing
- Remove Turnstile dependencies from authentication flow
2026-02-16 22:18:29 -06:00
Patrick Britton cc312c7e9f fix: add development bypass for Turnstile verification
- Add development bypass to Flutter sign_in_screen.dart
- Re-enable Turnstile in admin_handler.go with dev bypass
- Add development bypass to admin login page
- Resolves login issues during development/testing
2026-02-16 22:00:49 -06:00
Patrick Britton c1463256d2 fix: disable turnstile for admin login and troubleshooting 2026-02-16 21:18:05 -06:00
Patrick Britton 1de9997476 feat(auth): Add password reset functionality (backend + app + web) & enhance Turnstile integration 2026-02-16 13:06:00 -06:00
Patrick Britton aec14bc97d Harden admin login Turnstile flow 2026-02-16 12:24:20 -06:00
Patrick Britton e0fd5cea8c Fix Turnstile verification encoding and admin login diagnostics 2026-02-16 12:22:02 -06:00
Patrick Britton e5640ac98c Add image upload functionality to AI moderation testing 2026-02-16 10:13:27 -06:00
Patrick Britton 4fcab45b83 Add Azure OpenAI integration - new service, admin UI, and backend support 2026-02-16 09:25:42 -06:00
Patrick Britton e3a3157f5a Add image downloading and base64 conversion for OpenRouter vision models 2026-02-16 09:13:55 -06:00
Patrick Britton afe34159b5 Add disingenuous political content detection - misleading framing, out-of-context quotes, manipulated imagery 2026-02-16 08:43:09 -06:00
Patrick Britton db0ec65d60 Make political/medical misinformation detection mandatory for all images with step-by-step analysis 2026-02-16 08:40:48 -06:00
Patrick Britton a347ac26a3 Enhance image moderation to detect misinformation in text within images 2026-02-16 08:34:34 -06:00
Patrick Britton 434937961c security: sanitized baseline for public release 2026-02-15 00:33:24 -06:00