Commit graph

226 commits

Author SHA1 Message Date
Patrick Britton 6cb0a921c9 Phase 4: FFmpeg conditional import (web-safe), remove unused dio + pointycastle (~230KB saved) 2026-02-10 18:57:47 -06:00
Patrick Britton 96468521cf Speed Phase 1+2: Deferred loading for 8 heavy screens (code-split for web), branded pre-Flutter splash screen with spinner, preconnect hints, remove dead imports 2026-02-10 18:38:40 -06:00
Patrick Britton 6c0de3b439 Fix stats label text color: add white color to Posts/Followers/Following labels in profile header 2026-02-10 17:10:32 -06:00
Patrick Britton dc0a3a786e Increase profile header expandedHeight by 8px (255->263, 295->303) to fix 7px overflow 2026-02-10 17:06:52 -06:00
Patrick Britton bb1c7c7843 Fix profile header: revert compact threshold to 240, reduce avatar 46->44 and bottom padding 12->6 to fix 9px overflow without hiding follows 2026-02-10 16:30:27 -06:00
Patrick Britton 4903117bbf Use SojornColors.transparent in notification_service, fix WidgetStateProperty deprecation 2026-02-10 16:22:40 -06:00
Patrick Britton 8365d0c079 Replace deprecated MaterialStateProperty with WidgetStateProperty in admin_scaffold 2026-02-10 16:20:08 -06:00
Patrick Britton 6867c95ca6 Replace all .withOpacity() with .withValues(alpha:) across 32 files (189 occurrences) - zero deprecation warnings remaining 2026-02-10 16:18:50 -06:00
Patrick Britton 2f9f0aaaf2 Fix profile header 9px overflow: raise compact threshold to 280, add clip safety net 2026-02-10 16:06:28 -06:00
Patrick Britton d3feaf98d8 Fix build errors: add basicBlack token, fix const contexts, fix missing import and non-existent token references 2026-02-10 15:47:08 -06:00
Patrick Britton 568a764d37 Replace last Colors.transparent in notifications_screen.dart - zero Colors.* remaining 2026-02-10 15:39:18 -06:00
Patrick Britton aa2b5d3447 Replace Colors.* in remaining files: intel_cards, quip_metadata, auth screens, admin screens, discover, search, profile, settings, utils, services, app_theme 2026-02-10 15:38:23 -06:00
Patrick Britton 248a32eb87 Replace Colors.* in admin_scaffold, admin_content_tools, secure_chat_screen, new_conversation_sheet, notifications_screen, viewable_profile 2026-02-10 15:30:22 -06:00
Patrick Britton 3aa0f5e93a Replace Colors.* in profile_settings dialogs, beacon.dart model, resources_sheet, beacon_screen remaining 2026-02-10 15:27:03 -06:00
Patrick Britton cefa69d7e7 Replace inline Colors.* with SojornColors tokens in secure_chat screens + chat_data_management + local_key_backup 2026-02-10 14:47:02 -06:00
Patrick Britton cca4ffa08b Replace inline Colors.* with SojornColors tokens in video_player_with_comments, image_editor, traditional_quips_sheet 2026-02-10 14:43:43 -06:00
Patrick Britton 2551829604 Replace inline Colors.* with SojornColors tokens in quip_editor, quip_metadata, video_editor screens 2026-02-10 14:40:48 -06:00
Patrick Britton 7a53f41b97 Replace inline Colors.* with SojornColors tokens in quip screens (video_item, preview, recorder, feed) 2026-02-10 14:35:21 -06:00
Patrick Britton 52dfa0c653 Replace inline Colors.* with SojornColors tokens in profile_settings_screen.dart (56 replacements) 2026-02-10 14:23:23 -06:00
Patrick Britton 38f0952bc8 Replace inline Colors.* with SojornColors tokens in beacon_detail, create_beacon_sheet, beacon_bottom_sheet 2026-02-10 14:19:57 -06:00
Patrick Britton 54fac1eafa Replace inline Colors.* with SojornColors tokens in beacon_screen.dart (46 replacements) 2026-02-10 14:16:46 -06:00
Patrick Britton 9093c17e55 Replace inline Colors.* with SojornColors tokens in feed_sojorn, home_shell, threaded_conversation, compose screens 2026-02-10 14:15:16 -06:00
Patrick Britton b1f1cc5a44 Replace inline Colors.* with SojornColors tokens in secure_chat bubble + composer widgets 2026-02-10 14:12:54 -06:00
Patrick Britton 9b11b95a57 Replace inline Colors.* with SojornColors tokens in 8 more widgets: composer, reactions, modals, safety, button, radial_menu 2026-02-10 13:59:15 -06:00
Patrick Britton 9ec4ad408d Replace inline Colors.* with SojornColors tokens in chain_quote, interactive_reply_block, sojorn_swipeable_post 2026-02-10 13:57:13 -06:00
Patrick Britton 4512ff11d1 Grand Unification: centralize design tokens, add sponsored PostViewMode, delete 9 dead files
Phase 1 - Design Tokens:
- tokens.dart: Add NSFW, sponsored, overlay, surface state color tokens
- tokens.dart: Add granular spacing (s6, s8) and card gap constants
- tokens.dart: Add SojornRadii.xl
- app_theme.dart: Bridge new tokens (nsfwWarning*, sponsored*, overlay*, media*)

Phase 2 - Super Post Unification:
- post_view_mode.dart: Add PostViewMode.sponsored enum value
- sojorn_post_card.dart: Handle sponsored mode with badge, use token refs for NSFW colors
- feed_sojorn_screen.dart: Replace SponsoredPostCard with sojornPostCard(mode: sponsored)
- post_body/media/link_preview: Add sponsored case to all PostViewMode switches
- post_media.dart: Replace inline Colors.* with SojornColors/AppTheme tokens
- post_header.dart: Replace Colors.white with SojornColors.basicWhite
- post_menu.dart: Replace Colors.red with SojornColors.destructive
- post_actions.dart: Replace Colors.transparent with SojornColors.transparent

Phase 3 - Tree Shake (9 files deleted):
- widgets/post/sponsored_post_card.dart (absorbed into sojornPostCard)
- widgets/post/chain_quote_widget.dart (duplicate, unused)
- widgets/post_with_video_widget.dart (dead)
- widgets/video_player_widget.dart (dead)
- widgets/video_thumbnail_widget.dart (dead)
- widgets/composer_field.dart (dead)
- widgets/compose_fab.dart (dead)
- widgets/category_tile.dart (dead)
- theme/sojorn_feed_palette.dart (deprecated, unused)
2026-02-10 13:55:00 -06:00
Patrick Britton b8e070d121 Merge goSojorn into main: OG image R2 proxy, link preview fixes, spacing cleanup 2026-02-10 13:03:19 -06:00
Patrick Britton 701150bc8c fix: reduce spacing around link preview card - remove top padding, tighten gap above 2026-02-10 12:57:31 -06:00
Patrick Britton 858d556d25 fix: sign link preview image URLs through assetService for R2 paths 2026-02-09 20:28:40 -06:00
Patrick Britton bacffc759c feat: proxy OG images to R2 to fix CORS on Flutter Web
- Added S3 client, mediaBucket, imgDomain fields to LinkPreviewService
- Added ProxyImageToR2 method: downloads external OG image, uploads to R2
  with deterministic key (og/<sha256>.ext), replaces ImageURL with R2 path
- Called ProxyImageToR2 in post_handler.go (both sync and async paths)
- Refactored OfficialAccountsService to use shared LinkPreviewService
  instead of creating inline instances
- Reordered main.go init: S3 client setup before LinkPreviewService
2026-02-09 19:34:45 -06:00
Patrick Britton d3d1e371c1 fix: missing closing brace in sojorn_post_card, remove invalid onExpired param in turnstile_widget 2026-02-09 19:23:57 -06:00
Patrick Britton 0a420278ec fix: add link_preview_* columns to all post queries
All post-fetching SQL queries were missing the link_preview_url,
link_preview_title, link_preview_description, link_preview_image_url,
and link_preview_site_name columns. The Go model had the fields but
they were never populated from the DB.

Fixed in: GetFeed, GetPostsByAuthor, GetPostByID, GetSavedPosts,
GetLikedPosts, SearchPosts, GetPostFocusContext (children + siblings),
GetPopularPublicPosts
2026-02-09 19:05:30 -06:00
Patrick Britton 257acb0e51 refactor: unify post widgets, profile screens, and tree-shake dead code
Phase 1 - Post Widget Unification:
- Added PostViewMode.thread for compact thread styling
- Updated SojornPostCard, PostBody, PostLinkPreview, PostMedia for thread mode
- Migrated feed_personal_screen, profile_screen, viewable_profile_screen to sojornPostCard
- Deleted deprecated: post_card.dart, post_item.dart, reading_post_card.dart

Phase 2 - Profile Screen Unification:
- Renamed ViewableProfileScreen to UnifiedProfileScreen
- Made handle optional (null = own profile mode)
- Added auth listener, auto-create profile, avatar actions for own profile
- Added connections navigation to stats for own profile
- Updated all routes and references across codebase
- Deleted old profile_screen.dart

Phase 3 - Tree Shaking:
- Deleted 9 orphan files: compose_and_chat_fab, sojorn_top_bar, sojorn_app_bar,
  sojorn_dialog, sojorn_card, glassmorphic_quips_sheet, kinetic_thread_widget,
  reaction_strip, smart_reaction_button
2026-02-09 17:55:39 -06:00
Patrick Britton 3d4b661370 fix: improve Turnstile configuration - handle web/mobile differences, add error callbacks 2026-02-09 16:46:02 -06:00
Patrick Britton 5674c8e4f8 feat: apply thread screen news card layout to all post cards - show after body, hide URLs 2026-02-09 16:44:44 -06:00
Patrick Britton feed826e39 feat: show news card in thread screen, hide URL text when link preview is present 2026-02-09 16:39:17 -06:00
Patrick Britton c8b08968ba fix: make Turnstile baseUrl nullable to avoid const error 2026-02-09 16:25:45 -06:00
Patrick Britton ba71610fb6 fix: use actual API baseUrl for Turnstile instead of localhost 2026-02-09 16:24:10 -06:00
Patrick Britton 2dd1fe3ac2 fix: downgrade share_plus to v10.1.4 due to Android build errors with v12 2026-02-09 16:10:41 -06:00
Patrick Britton 2377899d72 fix: web thumbnail loading - bypass signing on web, add fallback, improve error handling 2026-02-09 14:45:43 -06:00
Patrick Britton d43cf2de06 chore: update share_plus ^12.0.1, replace discontinued flutter_markdown with flutter_markdown_plus 2026-02-09 12:23:07 -06:00
Patrick Britton 3d49d75e9e feat: trust-tier gating for beacons - established/trusted users get instant verification, new users start unverified 2026-02-09 10:45:06 -06:00
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 fa0cca9b34 feat: accept usernames or UUIDs in follow management 2026-02-09 10:05:46 -06:00
Patrick Britton a4909723d9 fix: remove small URL text from RSS news posts, rely on link preview card only 2026-02-09 10:00:36 -06:00
Patrick Britton ceeb80df03 feat: admin profile editing and follower/following management for official accounts 2026-02-09 09:37:44 -06:00
Patrick Britton 82e9246fdd feat: reconcile posted articles against live posts table, revert orphaned articles to discovered 2026-02-09 09:01:53 -06:00
Patrick Britton 52e18daef0 chore: remove temp fix_entities.sql 2026-02-09 08:59:34 -06:00
Patrick Britton 0f7874b429 fix: unescape HTML entities in OG tag parsing for link previews 2026-02-09 08:58:56 -06:00