jlightner
|
ce4bccf292
|
feat: Built CreatorTransparency page with four collapsible sections, AP…
- "frontend/src/api/creator-transparency.ts"
- "frontend/src/pages/CreatorTransparency.tsx"
- "frontend/src/pages/CreatorTransparency.module.css"
- "frontend/src/App.tsx"
- "frontend/src/pages/CreatorDashboard.tsx"
GSD-Task: S05/T02
|
2026-04-04 13:58:33 +00:00 |
|
jlightner
|
78da2f6585
|
feat: Added GET /creator/transparency endpoint returning technique page…
- "backend/schemas.py"
- "backend/routers/creator_dashboard.py"
GSD-Task: S05/T01
|
2026-04-04 13:55:13 +00:00 |
|
jlightner
|
86e31cfa5c
|
feat: Added GET /admin/usage endpoint with today/week/month token aggre…
- "backend/routers/admin.py"
- "frontend/src/api/admin-usage.ts"
- "frontend/src/pages/AdminUsage.tsx"
- "frontend/src/pages/AdminUsage.module.css"
- "frontend/src/App.tsx"
- "frontend/src/components/AdminDropdown.tsx"
- "frontend/src/api/index.ts"
GSD-Task: S04/T02
|
2026-04-04 13:44:44 +00:00 |
|
jlightner
|
638477cc8e
|
feat: Built Redis sliding-window rate limiter, ChatUsageLog model with…
- "backend/rate_limiter.py"
- "backend/models.py"
- "backend/routers/chat.py"
- "backend/chat_service.py"
- "backend/config.py"
- "alembic/versions/031_add_chat_usage_log.py"
GSD-Task: S04/T01
|
2026-04-04 13:36:29 +00:00 |
|
jlightner
|
a0e228d5b4
|
feat: Built 3-step onboarding wizard (Welcome → Consent → Tour), wired…
- "frontend/src/pages/CreatorOnboarding.tsx"
- "frontend/src/pages/CreatorOnboarding.module.css"
- "frontend/src/api/auth.ts"
- "frontend/src/context/AuthContext.tsx"
- "frontend/src/pages/Login.tsx"
- "frontend/src/App.tsx"
GSD-Task: S03/T02
|
2026-04-04 13:16:58 +00:00 |
|
jlightner
|
102e00f323
|
feat: Added onboarding_completed flag to User model, UserResponse schem…
- "backend/models.py"
- "backend/schemas.py"
- "backend/routers/auth.py"
- "alembic/versions/030_add_onboarding_completed.py"
GSD-Task: S03/T01
|
2026-04-04 13:13:05 +00:00 |
|
jlightner
|
c5fb352552
|
feat: Added ≤768px and ≤400px responsive breakpoints for admin pipeline…
- "frontend/src/App.css"
GSD-Task: S02/T03
|
2026-04-04 13:04:42 +00:00 |
|
jlightner
|
e3456f66b0
|
feat: Added ≤400px responsive breakpoints to ConsentDashboard, CreatorS…
- "frontend/src/pages/ConsentDashboard.module.css"
- "frontend/src/pages/CreatorSettings.module.css"
- "frontend/src/pages/Login.module.css"
- "frontend/src/pages/Register.module.css"
GSD-Task: S02/T02
|
2026-04-04 12:55:34 +00:00 |
|
jlightner
|
6e038f041f
|
feat: Audited all 9 public-facing pages at 375px and 768px viewports —…
- "frontend/src/App.css"
GSD-Task: S02/T01
|
2026-04-04 12:48:08 +00:00 |
|
jlightner
|
f02865b829
|
test: Added GET/PUT notification preferences endpoints, signed-token un…
- "backend/routers/notifications.py"
- "backend/main.py"
- "backend/tests/notifications/test_notifications.py"
- "frontend/src/api/notifications.ts"
- "frontend/src/pages/CreatorSettings.tsx"
GSD-Task: S01/T03
|
2026-04-04 12:27:18 +00:00 |
|
jlightner
|
a3f2c4f332
|
feat: Built send_digest_emails Celery task with per-user content queryi…
- "backend/tasks/__init__.py"
- "backend/tasks/notifications.py"
- "backend/worker.py"
- "docker-compose.yml"
GSD-Task: S01/T02
|
2026-04-04 12:15:43 +00:00 |
|
jlightner
|
067d7ed332
|
chore: Added SMTP config, User notification_preferences JSONB, EmailDig…
- "backend/config.py"
- "backend/models.py"
- "backend/schemas.py"
- "backend/services/email.py"
- "alembic/versions/029_add_email_digest.py"
GSD-Task: S01/T01
|
2026-04-04 12:11:13 +00:00 |
|
jlightner
|
ecfdc76ba6
|
feat: Extract shared citation parser and formatTime utilities, add time…
- "frontend/src/utils/chatCitations.tsx"
- "frontend/src/utils/formatTime.ts"
- "frontend/src/api/chat.ts"
- "frontend/src/pages/ChatPage.tsx"
- "frontend/src/pages/ChatPage.module.css"
- "frontend/src/components/ChatWidget.tsx"
- "frontend/src/components/ChatWidget.module.css"
GSD-Task: S05/T02
|
2026-04-04 11:46:00 +00:00 |
|
jlightner
|
2f9e3272d9
|
feat: Added source_video_id, start_time, end_time, and video_filename t…
- "backend/search_service.py"
- "backend/chat_service.py"
GSD-Task: S05/T01
|
2026-04-04 11:40:59 +00:00 |
|
jlightner
|
28bc15b404
|
chore: Add GET/PUT shorts-template admin endpoints, collapsible templat…
- "backend/routers/creators.py"
- "backend/schemas.py"
- "frontend/src/api/templates.ts"
- "frontend/src/pages/HighlightQueue.tsx"
- "frontend/src/pages/HighlightQueue.module.css"
- "backend/routers/shorts.py"
- "backend/pipeline/stages.py"
- "frontend/src/api/shorts.ts"
GSD-Task: S04/T03
|
2026-04-04 11:25:29 +00:00 |
|
jlightner
|
e40a00eb4f
|
feat: Built ffmpeg-based card renderer with concat demuxer pipeline and…
- "backend/pipeline/card_renderer.py"
- "backend/pipeline/shorts_generator.py"
- "backend/pipeline/stages.py"
- "backend/models.py"
- "alembic/versions/028_add_shorts_template.py"
- "backend/pipeline/test_card_renderer.py"
GSD-Task: S04/T02
|
2026-04-04 11:17:38 +00:00 |
|
jlightner
|
899e57c0e1
|
feat: Created ASS subtitle generator with karaoke word-by-word highligh…
- "backend/pipeline/caption_generator.py"
- "backend/pipeline/shorts_generator.py"
- "backend/pipeline/stages.py"
- "backend/models.py"
- "alembic/versions/027_add_captions_enabled.py"
- "backend/pipeline/test_caption_generator.py"
GSD-Task: S04/T01
|
2026-04-04 11:12:19 +00:00 |
|
jlightner
|
ddb283cc28
|
feat: Wired /embed/:videoId route outside AppShell for chrome-free rend…
- "frontend/src/App.tsx"
- "frontend/src/pages/WatchPage.tsx"
- "frontend/src/App.css"
GSD-Task: S03/T02
|
2026-04-04 10:59:14 +00:00 |
|
jlightner
|
cf7c8b26a0
|
feat: Extracted shared copyToClipboard utility and created EmbedPlayer…
- "frontend/src/utils/clipboard.ts"
- "frontend/src/pages/EmbedPlayer.tsx"
- "frontend/src/pages/EmbedPlayer.module.css"
- "frontend/src/pages/ShortPlayer.tsx"
GSD-Task: S03/T01
|
2026-04-04 10:55:21 +00:00 |
|
jlightner
|
86d554a56f
|
feat: Added collapsible inline video player to TechniquePage with chapt…
- "frontend/src/pages/TechniquePage.tsx"
- "frontend/src/App.css"
GSD-Task: S02/T02
|
2026-04-04 10:48:12 +00:00 |
|
jlightner
|
fa7e4983c7
|
feat: Replaced thin 3px line markers with 12px color-coded circle pins,…
- "frontend/src/components/ChapterMarkers.tsx"
- "frontend/src/components/PlayerControls.tsx"
- "frontend/src/App.css"
GSD-Task: S02/T01
|
2026-04-04 10:44:45 +00:00 |
|
jlightner
|
3f75f33c2b
|
feat: Added public ShortPlayer page at /shorts/:token with video playba…
- "frontend/src/pages/ShortPlayer.tsx"
- "frontend/src/pages/ShortPlayer.module.css"
- "frontend/src/api/shorts.ts"
- "frontend/src/App.tsx"
- "frontend/src/pages/HighlightQueue.tsx"
- "frontend/src/pages/HighlightQueue.module.css"
GSD-Task: S01/T02
|
2026-04-04 10:35:56 +00:00 |
|
jlightner
|
09177b9d36
|
feat: Added share_token column with migration 026, wired token generati…
- "backend/models.py"
- "alembic/versions/026_add_share_token.py"
- "backend/pipeline/stages.py"
- "backend/routers/shorts.py"
- "backend/routers/shorts_public.py"
- "backend/main.py"
GSD-Task: S01/T01
|
2026-04-04 10:33:00 +00:00 |
|
jlightner
|
8e27f994db
|
feat: Added getTierLabel() helper, gradient track fill via --slider-fil…
- "frontend/src/components/ChatWidget.tsx"
- "frontend/src/components/ChatWidget.module.css"
GSD-Task: S04/T02
|
2026-04-04 10:06:46 +00:00 |
|
jlightner
|
d32864de6a
|
feat: Replaced 3-tier step function with 5-tier continuous interpolatio…
- "backend/chat_service.py"
- "backend/tests/test_chat.py"
GSD-Task: S04/T01
|
2026-04-04 10:04:47 +00:00 |
|
jlightner
|
c3d1afa2ce
|
feat: Added shorts router with generate/list/download endpoints, fronte…
- "backend/routers/shorts.py"
- "backend/main.py"
- "frontend/src/api/shorts.ts"
- "frontend/src/pages/HighlightQueue.tsx"
- "frontend/src/pages/HighlightQueue.module.css"
GSD-Task: S03/T03
|
2026-04-04 09:52:01 +00:00 |
|
jlightner
|
e0a6458bdc
|
feat: Added shorts_generator.py with 3 format presets and stage_generat…
- "backend/pipeline/shorts_generator.py"
- "backend/pipeline/stages.py"
GSD-Task: S03/T02
|
2026-04-04 09:47:40 +00:00 |
|
jlightner
|
11d58e09dd
|
chore: Added GeneratedShort model with FormatPreset/ShortStatus enums,…
- "backend/models.py"
- "backend/config.py"
- "docker/Dockerfile.api"
- "docker-compose.yml"
- "alembic/versions/025_add_generated_shorts.py"
GSD-Task: S03/T01
|
2026-04-04 09:43:36 +00:00 |
|
jlightner
|
e9ab6bd9a7
|
feat: Added personality weight slider (0.0–1.0) to ChatWidget header an…
- "frontend/src/api/chat.ts"
- "frontend/src/components/ChatWidget.tsx"
- "frontend/src/components/ChatWidget.module.css"
GSD-Task: S02/T02
|
2026-04-04 09:30:56 +00:00 |
|
jlightner
|
0856827b59
|
feat: Added personality_weight (0.0–1.0) to chat API; modulates system…
- "backend/routers/chat.py"
- "backend/chat_service.py"
- "backend/tests/test_chat.py"
GSD-Task: S02/T01
|
2026-04-04 09:28:35 +00:00 |
|
jlightner
|
04630764a6
|
feat: Added PostsFeed component to creator profile pages with Tiptap HT…
- "frontend/src/components/PostsFeed.tsx"
- "frontend/src/components/PostsFeed.module.css"
- "frontend/src/pages/PostsList.tsx"
- "frontend/src/pages/PostsList.module.css"
- "frontend/src/pages/CreatorDetail.tsx"
- "frontend/src/App.tsx"
- "frontend/src/pages/CreatorDashboard.tsx"
GSD-Task: S01/T04
|
2026-04-04 09:17:30 +00:00 |
|
jlightner
|
c3ab0cec74
|
feat: Built Tiptap rich text post editor with file attachments, multipa…
- "frontend/src/pages/PostEditor.tsx"
- "frontend/src/pages/PostEditor.module.css"
- "frontend/src/api/posts.ts"
- "frontend/src/api/client.ts"
- "frontend/src/App.tsx"
- "frontend/src/pages/CreatorDashboard.tsx"
GSD-Task: S01/T03
|
2026-04-04 09:13:48 +00:00 |
|
jlightner
|
2a63ccdbe5
|
feat: Built post CRUD and file upload/download API routers with auth, o…
- "backend/routers/posts.py"
- "backend/routers/files.py"
- "backend/minio_client.py"
- "backend/auth.py"
- "backend/main.py"
GSD-Task: S01/T02
|
2026-04-04 09:07:35 +00:00 |
|
jlightner
|
c163037a0f
|
feat: Added MinIO Docker service, Post/PostAttachment models with migra…
- "docker-compose.yml"
- "backend/config.py"
- "backend/minio_client.py"
- "backend/models.py"
- "backend/schemas.py"
- "backend/requirements.txt"
- "docker/nginx.conf"
- "alembic/versions/024_add_posts_and_attachments.py"
GSD-Task: S01/T01
|
2026-04-04 09:02:40 +00:00 |
|
jlightner
|
73736295c1
|
feat: Added collapsible PersonalityProfile component to CreatorDetail p…
- "frontend/src/components/PersonalityProfile.tsx"
- "frontend/src/api/creators.ts"
- "frontend/src/pages/CreatorDetail.tsx"
- "frontend/src/App.css"
GSD-Task: S06/T03
|
2026-04-04 08:31:37 +00:00 |
|
jlightner
|
15299232a8
|
feat: Added personality extraction pipeline: prompt template, 3-tier tr…
- "prompts/personality_extraction.txt"
- "backend/pipeline/stages.py"
- "backend/schemas.py"
- "backend/routers/admin.py"
GSD-Task: S06/T02
|
2026-04-04 08:28:18 +00:00 |
|
jlightner
|
442d0ca48b
|
feat: Added personality_profile JSONB column to Creator model with migr…
- "backend/models.py"
- "backend/schemas.py"
- "backend/routers/creators.py"
- "alembic/versions/023_add_personality_profile.py"
GSD-Task: S06/T01
|
2026-04-04 08:24:44 +00:00 |
|
jlightner
|
7cc9497f3c
|
feat: Wired word-timing extraction into stage_highlight_detection — 62…
- "backend/pipeline/stages.py"
- ".gsd/KNOWLEDGE.md"
GSD-Task: S05/T02
|
2026-04-04 08:11:32 +00:00 |
|
jlightner
|
52df9c0dc2
|
test: Added 3 audio proxy scoring functions, extract_word_timings utili…
- "backend/pipeline/highlight_scorer.py"
- "backend/pipeline/highlight_schemas.py"
- "backend/pipeline/test_highlight_scorer.py"
GSD-Task: S05/T01
|
2026-04-04 08:05:22 +00:00 |
|
jlightner
|
6a6305e8d1
|
feat: Updated streamChat() API, ChatWidget, and ChatPage to thread conv…
- "frontend/src/api/chat.ts"
- "frontend/src/components/ChatWidget.tsx"
- "frontend/src/pages/ChatPage.tsx"
- "frontend/src/pages/ChatPage.module.css"
GSD-Task: S04/T02
|
2026-04-04 07:53:50 +00:00 |
|
jlightner
|
29e60bbc99
|
test: Added multi-turn conversation memory with Redis-backed history (1…
- "backend/chat_service.py"
- "backend/routers/chat.py"
- "backend/tests/test_chat.py"
GSD-Task: S04/T01
|
2026-04-04 07:50:30 +00:00 |
|
jlightner
|
0098254fdd
|
feat: Built floating ChatWidget with streaming responses, citation link…
- "frontend/src/components/ChatWidget.tsx"
- "frontend/src/components/ChatWidget.module.css"
- "frontend/src/pages/CreatorDetail.tsx"
GSD-Task: S03/T01
|
2026-04-04 07:41:59 +00:00 |
|
jlightner
|
19a6ff660c
|
feat: Follow system + tier config page (M022/S02)
- CreatorFollow model + pure SQL migration 022
- Follow router: POST/DELETE /follows/{creator_id}, GET /follows/me, GET /follows/{id}/status
- follower_count on creator detail endpoint
- Follow button on CreatorDetail (authenticated users only)
- CreatorTiers page with Free/Pro/Premium cards, Coming Soon modals
- Tiers link in creator sidebar nav
- Route /creator/tiers (protected)
|
2026-04-04 07:34:03 +00:00 |
|
jlightner
|
c9a2d2efbb
|
fix: remove leftover op.add_column/create_index calls from migration 020
|
2026-04-04 07:22:41 +00:00 |
|
jlightner
|
fc85966679
|
fix: make migrations 019/020 fully idempotent with IF NOT EXISTS guards
|
2026-04-04 07:20:48 +00:00 |
|
jlightner
|
50bcd5d2b9
|
fix: use pure SQL for migrations 019/020 — bypasses all SQLAlchemy enum hooks
|
2026-04-04 07:19:01 +00:00 |
|
jlightner
|
ab62045e94
|
fix: use String column + ALTER TYPE cast for enum migrations (avoids SQLAlchemy before_create hook)
|
2026-04-04 07:17:34 +00:00 |
|
jlightner
|
f531a4e5fb
|
fix: use raw SQL for enum creation in migrations 019/020 to avoid SQLAlchemy double-create
|
2026-04-04 07:16:22 +00:00 |
|
jlightner
|
6447c2ec32
|
fix: prevent double enum creation in migrations 019/020 (create_type=False)
|
2026-04-04 07:14:16 +00:00 |
|
jlightner
|
8ae93daf48
|
fix: resolve TS errors in ChapterReview and HighlightQueue (noUncheckedIndexedAccess)
|
2026-04-04 07:09:39 +00:00 |
|