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
Patrick Britton
cae9a479da
fix: remove user_id from profiles query - column doesn't exist
2026-02-08 12:13:36 -06:00
Patrick Britton
7b493bcd67
feat: model selector dropdown fetches from OpenRouter API
2026-02-08 12:02:53 -06:00
Patrick Britton
2acf76eab2
fix: move official-profiles route to avoid Gin wildcard conflict
2026-02-08 11:49:00 -06:00
Patrick Britton
3d371e965e
feat: add ListOfficialProfiles endpoint + profiles grid in admin UI
2026-02-08 11:39:27 -06:00
Patrick Britton
2dae622dea
feat: official accounts management - AI post generation, RSS news import (NPR/AP/BMTN), scheduled auto-posting, admin UI
2026-02-08 11:30:44 -06:00
Patrick Britton
de5797ad41
feat: add Content Tools page to Next.js admin - create user + import content (posts/quips/beacons)
2026-02-08 10:04:19 -06:00
Patrick Britton
9a9b2eb887
feat: admin content tools UI - create user form + import posts/quips/beacons via links or CSV
2026-02-08 09:52:19 -06:00
Patrick Britton
6621e323e6
feat: admin create user + import content (posts/quips/beacons) endpoints
2026-02-08 09:43:55 -06:00
Patrick Britton
8d419ba057
fix: close ALL NSFW leaks - GetPostByID, GetPostChain, GetPostFocusContext now filter NSFW server-side
2026-02-08 00:27:23 -06:00
Patrick Britton
25d3e213ea
fix: hide NSFW posts entirely when user hasn't enabled NSFW - backend filtering + Flutter safety net
2026-02-08 00:19:44 -06:00
Patrick Britton
b51c9ba90b
feat: email notifications for deactivate/delete, typed confirmations, chat backup manager, provider invalidation on logout
2026-02-07 23:39:51 -06:00
Patrick Britton
77ef1ecac5
feat: wire image + video thumbnail moderation into post creation flow (OpenRouter vision model, worst-outcome merge)
2026-02-07 18:21:36 -06:00
Patrick Britton
bc35eea69b
feat: add NSFW self-labeling toggle in compose, blur setting in user preferences, improve signup date pickers with modal sheets
...
- Add `isNsfw` checkbox to compose screen for user self-labeling
- Add `nsfwBlurEnabled` setting to UserSettings model (default true)
- Replace signup month/year dropdowns with modal bottom sheet pickers
- Preload Noto Color Emoji font on app startup
- Refactor notifications/discover screens to use FullScreenShell component
2026-02-07 18:15:54 -06:00
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