Commit graph

92 commits

Author SHA1 Message Date
Patrick Britton 15e83c6a14 feat: Flutter group nav, quip repair API, share, capsule key rotation, admin groups/quips pages
Flutter:
- clusters_screen: _navigateToGroup now pushes real GroupScreen (was print)
- public_cluster_screen: calls GET /groups/:id/feed instead of fetchNearbyBeacons
- feed_sojorn_screen: _sharePost uses share_plus
- api_service: getSignedMediaUrl calls Go /media/sign endpoint
- quip_repair_screen: fully rewired to Go admin API (GET /admin/quips/broken, POST repair)
- private_capsule_screen: auto key rotation on open (_checkAndRotateKeysIfNeeded),
  _performKeyRotation helper; _CapsuleAdminPanel now ConsumerStatefulWidget with
  working Rotate/Invite/Remove/Settings modals

Admin panel:
- Sidebar: Groups & Capsules + Quip Repair links added
- /groups: full group management page with member panel + deactivate/remove
- /quips: quip repair page with per-row and repair-all
- /algorithm: live feed scores table (lazy-loaded)
- api.ts: listGroups, getGroup, deleteGroup, listGroupMembers, removeGroupMember,
  getBrokenQuips, repairQuip, setPostThumbnail, getFeedScores

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 15:45:42 -06:00
Patrick Britton 9aaf0d84a2 feat: Add go vet to allowed bash commands in Claude settings 2026-02-17 15:33:31 -06:00
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 04c632eae2 fix: Resolve all compilation errors - GroupCategory conflicts, ref access, privacy types, and icon/color properties 2026-02-17 11:24:48 -06:00
Patrick Britton d01be18b12 fix: Final compilation errors - update API calls to use new Groups system 2026-02-17 11:19:25 -06:00
Patrick Britton 6217cb2ffd fix: Resolve remaining compilation errors in Groups feature 2026-02-17 11:16:39 -06:00
Patrick Britton f1ee925057 fix: Resolve compilation errors in Groups feature 2026-02-17 11:13:41 -06:00
Patrick Britton 6cba4e5c59 feat: Complete Groups discovery UI and creation modal 2026-02-17 11:10:03 -06:00
Patrick Britton 31d7816e92 feat: Add GroupCard widget and start integrating Groups UI into ClustersScreen 2026-02-17 11:06:07 -06:00
Patrick Britton c1c7ebd678 feat: Add Groups system - Flutter models and API methods 2026-02-17 11:04:51 -06:00
Patrick Britton abfbeb2119 feat: Register Groups system routes in backend main.go 2026-02-17 11:00:44 -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 b3abcf9c6e fix: Navigate to beacon tab instead of pushing new BeaconScreen to avoid duplicate GlobalKey error 2026-02-17 10:48:13 -06:00
Patrick Britton 6d43ae2b09 fix: Make NetworkService web-safe by skipping connectivity monitoring on web platform 2026-02-17 10:46:50 -06:00
Patrick Britton 2b3704a3f9 fix: Update viewable_profile_screen to handle void return from followUser 2026-02-17 10:43:55 -06:00
Patrick Britton 00b4705a00 fix: Remove duplicate follow methods and fix FollowButton to use provider 2026-02-17 10:42:08 -06:00
Patrick Britton 70d4bc5140 feat: Initialize NetworkService in main.dart and add OfflineIndicator to HomeShell 2026-02-17 10:35:37 -06:00
Patrick Britton 7f618bcdf2 feat: Add feed filtering UI with FeedFilterButton and integrate into personal feed 2026-02-17 10:33:32 -06:00
Patrick Britton 62233d5892 feat: Add FeedFilter model and begin feed filtering integration 2026-02-17 10:27:31 -06:00
Patrick Britton 961aa02eac feat: Register follow system routes in backend main.go 2026-02-17 10:26:25 -06:00
Patrick Britton cdfe988eff feat: Add connectivity_plus dependency for network monitoring 2026-02-17 10:22:50 -06:00
Patrick Britton 5f7dfa7a93 feat: Add error handling utilities, NetworkService, RetryHelper, and OfflineIndicator 2026-02-17 10:22:07 -06:00
Patrick Britton d403749092 feat: Add SuggestedUsersSection widget with horizontal scrolling cards 2026-02-17 10:19:56 -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 bc3fdb4211 fix: replace deprecated activeColor with activeTrackColor on Switch.adaptive 2026-02-17 03:58:28 -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 57cb964737 feat: Phase 5 - Privacy Dashboard with score, toggles, segmented controls, and encryption status 2026-02-17 03:44:19 -06:00
Patrick Britton 2c6c8a7c20 feat: Phase 6 - Skeleton loaders for Groups/feed, seed groups SQL migration 2026-02-17 03:41:39 -06:00
Patrick Britton f5612be301 feat: Phase 5 - Harmony State explainer modal with progression chart, tappable from profile 2026-02-17 03:38:10 -06:00
Patrick Britton 60a42c4704 feat: Phase 2.1 - Enhanced thread detail with highlighted OP, thread connectors, chain metadata, and improved reply composer 2026-02-17 03:34:14 -06:00
Patrick Britton bf4ac02d4b feat: Phase 1.3 - Nav helper badges (Videos/Alerts) and long-press tooltips 2026-02-17 03:32:51 -06:00
Patrick Britton 0c183c3491 feat: Phase 1.2 - 3-screen onboarding modal (Welcome, Features, Harmony) 2026-02-17 03:31:32 -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 9d9cfd7328 chore: refresh repo hooks 2026-02-17 03:20:16 -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 602a139349 fix: update auth screens to use ALTCHA instead of Turnstile 2026-02-17 01:53:09 -06:00
Patrick Britton 95be179a38 security: remove development bypass tokens from production code 2026-02-17 00:52:29 -06:00
Patrick Britton 83317e8e0f legal: update Terms of Service and Privacy Policy for AGPL-3.0
- Add Section 13 (Open Source Licensing) to Terms of Service
- Add Section 13 (Open Source Transparency) to Privacy Policy
- Link to GitLab repo and AGPL-3.0 license text
- Sync all website versions: .md, .astro, .html, html_landing
- Update last updated dates to February 17, 2026
- Fix entity name from 'Sojorn Inc.' to 'MPLS LLC' in HTML terms
- Expand HTML pages to match full canonical .md content
2026-02-17 00:17:16 -06:00
Patrick Britton 2f21c3d9a6 license: switch from BSL 1.1 to AGPL-3.0
- Replace LICENSE file with GNU Affero General Public License v3.0
- Update PRIVACY.md to reference new license
- Add *.ps1 to .gitignore
2026-02-17 00:12:56 -06:00
Patrick Britton 09c436e877 chore: add PowerShell scripts to gitignore
- Add *.ps1 pattern to exclude PowerShell scripts from tracking
2026-02-17 00:10:09 -06:00
Patrick Britton 82290df800 chore: remove gitignored files from tracking
- Remove logo.ai, .vscode/launch.json, google-services.json, AndroidManifest.xml from index
- Files remain on disk but are no longer tracked
2026-02-17 00:00:20 -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 913fbdb8f7 fix: rewrite ALTCHA component for reliable event binding
- Use refs for callbacks to avoid stale closures
- Create widget via innerHTML and bind events immediately
- Remove dev bypass - use real ALTCHA token
- Add console logging for debugging
2026-02-16 23:51:46 -06:00
Patrick Britton 9f1dd857c4 fix: upgrade ALTCHA widget to v2.3.0 and rewrite component
- Upgrade from v0.5.0 to v2.3.0 (latest)
- Use dangerouslySetInnerHTML for proper web component rendering
- Add MutationObserver for reliable event binding
- Enable debug mode on widget to diagnose issues
- Simplify component API with onVerified/onError callbacks
2026-02-16 23:47:02 -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