Patrick Britton
|
fa0cca9b34
|
feat: accept usernames or UUIDs in follow management
|
2026-02-09 10:05:46 -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
|
2aa4eb77cf
|
feat: bulk post controls - post N or all pending articles from admin UI
|
2026-02-09 08:51:53 -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
|
d8988dc870
|
feat: add RSS account type - posts link directly without AI, update admin UI
|
2026-02-08 19:32:57 -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
|
8b4198e6f0
|
feat: safe domains management - admin UI, CRUD endpoints, URL safety checker, seeded domains
|
2026-02-08 13:47:08 -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
|
68dd8d3544
|
feat: AI Audit Log admin page with filters, feedback training, and export
|
2026-02-07 16:43:38 -06:00 |
|
Patrick Britton
|
256592379a
|
NSFW content system: blur overlay, user toggle, AI tri-state (clean/nsfw/flag), feed filtering
|
2026-02-06 20:42:23 -06:00 |
|
Patrick Britton
|
d40baf9bee
|
AI moderation: detailed explanations per category in test results
|
2026-02-06 20:06:23 -06:00 |
|
Patrick Britton
|
7c52a1a1ed
|
AI moderation config: OpenRouter integration, admin console page, 10s quip limit
|
2026-02-06 19:48:36 -06:00 |
|
Patrick Britton
|
2fb413c8d2
|
Admin console: reserved usernames management + claim request review system
|
2026-02-06 17:13:15 -06:00 |
|
Patrick Britton
|
46566f394b
|
Clean up: fix run scripts, remove 190+ debug print statements from 22 files, keep only FCM debugPrints for active notification work
|
2026-02-06 14:13:03 -06:00 |
|
Patrick Britton
|
1d8ef9135e
|
Admin: preset reason options for ban/suspend/activate modals + custom option
|
2026-02-06 12:41:43 -06:00 |
|
Patrick Britton
|
6edaf9206f
|
Admin: fix silent error swallowing - show alerts on action failures
|
2026-02-06 12:23:52 -06:00 |
|
Patrick Britton
|
ec5a0aad8b
|
Fix posts query (like/comment counts), add multi-select with bulk actions to all list pages
|
2026-02-06 11:06:54 -06:00 |
|
Patrick Britton
|
766392e5b0
|
Visible Turnstile widget with refresh button, always verify on backend
|
2026-02-06 10:31:05 -06:00 |
|
Patrick Britton
|
29772fa1e4
|
Add R2 storage browser to admin panel
|
2026-02-06 10:13:35 -06:00 |
|
Patrick Britton
|
14d8ca9ac0
|
Add invisible Turnstile verification to admin login
|
2026-02-06 09:40:43 -06:00 |
|
Patrick Britton
|
e3d626c040
|
Add admin login endpoint (no Turnstile), use port 3002
|
2026-02-06 09:33:52 -06:00 |
|
Patrick Britton
|
96616bd81f
|
Add admin panel: backend middleware, handler, routes + Next.js frontend
|
2026-02-06 09:15:57 -06:00 |
|