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
Patrick Britton
2aa4eb77cf
feat: bulk post controls - post N or all pending articles from admin UI
2026-02-09 08:51:53 -06:00
Patrick Britton
1064f3e284
fix: use article link as post body for RSS posts, card shows title
2026-02-09 08:46:48 -06:00
Patrick Britton
ecf3fd0271
fix: unescape HTML entities in SearXNG article titles and descriptions
2026-02-09 08:43:04 -06:00
Patrick Britton
24a69f8cbb
fix: use article title as post body instead of bare URL for RSS posts
2026-02-09 08:39:02 -06:00
Patrick Britton
41407feb58
fix: use browser UA for link preview fetch, add error logging to bg goroutines
2026-02-09 08:22:27 -06:00
Patrick Britton
9879064824
fix: remove dead ResolveGoogleNewsURL reference from link_preview_service
2026-02-09 08:06:47 -06:00
Patrick Britton
6860916792
feat: replace Google News RSS with SearXNG news API for article discovery
2026-02-09 08:05:47 -06:00
Patrick Britton
541a409806
feat: article pipeline UI with status tabs + stats bar, backend status filter endpoint
2026-02-08 22:38:03 -06:00
Patrick Britton
ebbe8d92d1
feat: article pipeline - two-phase discover/post flow with DB-backed article cache and status tracking
2026-02-08 20:01:35 -06:00
Patrick Britton
52f07782ab
fix: route RSS account type through direct link posting in trigger/preview handlers (no AI)
2026-02-08 19:44:41 -06:00
Patrick Britton
d8988dc870
feat: add RSS account type - posts link directly without AI, update admin UI
2026-02-08 19:32:57 -06:00
Patrick Britton
da5a366cc1
fix: use GUID for Google News article dedup, fall back to RSS source URL when link resolution fails
2026-02-08 19:08:48 -06:00
Patrick Britton
70261d839b
fix: replace slow HTTP-based Google News URL resolution with instant base64 protobuf decode
2026-02-08 18:58:54 -06:00
Patrick Britton
4704708c2c
fix: resolve Google News URLs to actual source articles before fetching link previews
2026-02-08 18:48:49 -06:00
Patrick Britton
6de8a475d1
feat: reorganize admin sidebar into collapsible grouped hierarchy (Users & Content, Moderation & Safety, Platform)
2026-02-08 18:19:56 -06:00
Patrick Britton
9a66d7df64
feat: move link preview card (news widget) above post body text
2026-02-08 15:22:18 -06:00
Patrick Britton
ea692da571
fix: RadialMenuOverlay gesture-eating bug IgnorePointer when not visible + status listener to trigger rebuild on dismiss
2026-02-08 15:04:08 -06:00
Patrick Britton
d6204db5c4
fix: prevent setState after pop with _popped guard, remove snackbar from compose to prevent scaffold corruption on Android
2026-02-08 14:58:53 -06:00
Patrick Britton
1d05300f17
feat: show link URL below post body for news stories
2026-02-08 14:53:46 -06:00
Patrick Britton
e03442f789
fix: reset focus after compose pop to prevent web freeze, show snackbar before pop, skip animation replay on thread reload
2026-02-08 14:48:44 -06:00
Patrick Britton
628bdf3c40
fix: add 3s timeout to sync link preview fetch, async fallback
2026-02-08 14:33:48 -06:00
Patrick Britton
46bf51a6c4
feat: compose URL preview, truncated URLs in post body, sync link preview fetch
2026-02-08 14:20:38 -06:00
Patrick Britton
aa0e75d35f
fix: safe domains scan - use time.Time for timestamp columns instead of string
2026-02-08 14:02:00 -06:00
Patrick Britton
43199e52bc
refactor: remove hardcoded safe domain lists, fetch from backend API instead
2026-02-08 13:57:38 -06:00
Patrick Britton
8b4198e6f0
feat: safe domains management - admin UI, CRUD endpoints, URL safety checker, seeded domains
2026-02-08 13:47:08 -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
d623320256
feat: switch news RSS to Google News site: format with redirect resolution
2026-02-08 13:02:57 -06:00
Patrick Britton
3c74457af1
fix: use Promise.allSettled so one failing fetch doesn't wipe the other
2026-02-08 12:14:40 -06:00