jlightner
26a5d0e0ef
fix: crypto.randomUUID fallback for HTTP contexts
...
Chat page and ChatWidget used crypto.randomUUID() for conversation IDs,
which is only available in secure contexts (HTTPS). On HTTP, this throws
'crypto.randomUUID is not a function'. Added generateUUID() utility with
Math.random-based fallback.
2026-04-05 06:05:17 +00:00
jlightner
612cae3491
feat: Added ReadingHeader sticky bar that slides in when scrolling past…
...
- "frontend/src/components/ReadingHeader.tsx"
- "frontend/src/pages/TechniquePage.tsx"
- "frontend/src/App.css"
GSD-Task: S10/T01
2026-04-04 15:14:05 +00:00
jlightner
c42d21a29f
feat: Added Export My Data download button to CreatorDashboard with loa…
...
- "frontend/src/pages/CreatorDashboard.tsx"
- "frontend/src/pages/CreatorDashboard.module.css"
- "frontend/src/api/creator-dashboard.ts"
GSD-Task: S07/T02
2026-04-04 14:19:30 +00:00
jlightner
6f3a0cc3d2
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
be1919e223
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
d243344ce8
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
4221bae3eb
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
60b281b9d8
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
b893abead1
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
cb3a6c919c
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
0eecee4271
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
a60f4074dc
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
18e9a4dce1
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
8444fbdb12
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
9208b134b6
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
3c99084eb2
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
160b1a8445
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
4db33399e9
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
84d8dc4455
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
3bb0266a19
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
9431aa2095
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
9139d5a93a
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
eab362d897
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
34acf468c6
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
3226709382
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
243a7a3eb6
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
ddeaf9ac41
fix: resolve TS errors in ChapterReview and HighlightQueue (noUncheckedIndexedAccess)
2026-04-04 07:09:39 +00:00
jlightner
ce08d729cd
feat: Built HighlightQueue page with filter tabs, candidate cards with…
...
- "frontend/src/api/highlights.ts"
- "frontend/src/pages/HighlightQueue.tsx"
- "frontend/src/pages/HighlightQueue.module.css"
- "frontend/src/App.tsx"
- "frontend/src/pages/CreatorDashboard.tsx"
GSD-Task: S01/T02
2026-04-04 07:01:57 +00:00
jlightner
4bda29705d
feat: Added AdminAuditLog page with paginated impersonation log table,…
...
- "frontend/src/pages/AdminAuditLog.tsx"
- "frontend/src/pages/AdminAuditLog.module.css"
- "frontend/src/App.tsx"
- "frontend/src/components/AdminDropdown.tsx"
GSD-Task: S07/T03
2026-04-04 06:29:47 +00:00
jlightner
4969935c76
feat: Added ConfirmModal component, Edit As button with write-mode conf…
...
- "frontend/src/components/ConfirmModal.tsx"
- "frontend/src/components/ConfirmModal.module.css"
- "frontend/src/api/auth.ts"
- "frontend/src/context/AuthContext.tsx"
- "frontend/src/pages/AdminUsers.tsx"
- "frontend/src/pages/AdminUsers.module.css"
- "frontend/src/components/ImpersonationBanner.tsx"
- "frontend/src/components/ImpersonationBanner.module.css"
GSD-Task: S07/T02
2026-04-04 06:27:38 +00:00
jlightner
f822415f6f
feat: Wired ChapterReview into App routes (/creator/chapters, /creator/…
...
- "frontend/src/App.tsx"
- "frontend/src/pages/CreatorDashboard.tsx"
- "frontend/src/pages/ChapterReview.tsx"
- "frontend/src/pages/ChapterReview.module.css"
GSD-Task: S06/T03
2026-04-04 06:12:10 +00:00
jlightner
7b111a7ded
feat: Built ChapterReview page with WaveSurfer waveform (draggable/resi…
...
- "frontend/src/pages/ChapterReview.tsx"
- "frontend/src/pages/ChapterReview.module.css"
- "frontend/src/api/videos.ts"
- "frontend/src/App.tsx"
GSD-Task: S06/T02
2026-04-04 06:07:23 +00:00
jlightner
76880d0477
feat: Created ChapterMarkers overlay component, added RegionsPlugin cha…
...
- "frontend/src/components/ChapterMarkers.tsx"
- "frontend/src/components/PlayerControls.tsx"
- "frontend/src/components/AudioWaveform.tsx"
- "frontend/src/pages/WatchPage.tsx"
- "frontend/src/App.css"
GSD-Task: S05/T03
2026-04-04 05:53:19 +00:00
jlightner
96608a3d8f
feat: Installed wavesurfer.js, created AudioWaveform component with sha…
...
- "frontend/src/components/AudioWaveform.tsx"
- "frontend/src/hooks/useMediaSync.ts"
- "frontend/src/pages/WatchPage.tsx"
- "frontend/src/App.css"
- "frontend/package.json"
GSD-Task: S05/T02
2026-04-04 05:49:40 +00:00
jlightner
e44ec1d1d5
feat: Added media streaming endpoint and chapters endpoint to videos ro…
...
- "backend/routers/videos.py"
- "backend/schemas.py"
- "frontend/src/api/videos.ts"
GSD-Task: S05/T01
2026-04-04 05:47:16 +00:00
jlightner
9bdb5b0e4a
feat: Built ChatPage with SSE streaming client, real-time token display…
...
- "frontend/src/api/chat.ts"
- "frontend/src/pages/ChatPage.tsx"
- "frontend/src/pages/ChatPage.module.css"
- "frontend/src/App.tsx"
GSD-Task: S03/T02
2026-04-04 05:22:43 +00:00
jlightner
17b43d9778
feat: Added LightRAG /query/data as primary search engine with file_sou…
...
- "backend/config.py"
- "backend/search_service.py"
GSD-Task: S01/T01
2026-04-04 04:44:24 +00:00
jlightner
4115c8add0
feat: Built ConsentDashboard page with per-video consent toggles, expan…
...
- "frontend/src/pages/ConsentDashboard.tsx"
- "frontend/src/pages/ConsentDashboard.module.css"
- "frontend/src/pages/CreatorDashboard.tsx"
- "frontend/src/App.tsx"
GSD-Task: S03/T02
2026-04-04 00:24:17 +00:00
jlightner
31638b5a3a
feat: Created TypeScript consent API client with 5 fetch functions and…
...
- "frontend/src/api/consent.ts"
- "frontend/src/components/ToggleSwitch.tsx"
- "frontend/src/components/ToggleSwitch.module.css"
- "frontend/src/api/index.ts"
GSD-Task: S03/T01
2026-04-04 00:21:13 +00:00
jlightner
da29a2a723
feat: Replaced 3 placeholder cards with real creator dashboard: 4 stat…
...
- "frontend/src/api/creator-dashboard.ts"
- "frontend/src/pages/CreatorDashboard.tsx"
- "frontend/src/pages/CreatorDashboard.module.css"
- "frontend/src/api/index.ts"
GSD-Task: S02/T02
2026-04-04 00:13:48 +00:00
jlightner
8417f0e9e0
feat: Built WatchPage with video player, synced transcript sidebar, laz…
...
- "frontend/src/api/videos.ts"
- "frontend/src/components/TranscriptSidebar.tsx"
- "frontend/src/pages/WatchPage.tsx"
- "frontend/src/App.tsx"
- "frontend/src/pages/TechniquePage.tsx"
- "frontend/src/App.css"
GSD-Task: S01/T03
2026-04-03 23:50:15 +00:00
jlightner
8069e9e2a3
perf: Built useMediaSync hook, VideoPlayer with HLS lazy-loading and na…
...
- "frontend/src/hooks/useMediaSync.ts"
- "frontend/src/components/VideoPlayer.tsx"
- "frontend/src/components/PlayerControls.tsx"
- "frontend/src/App.css"
- "frontend/package.json"
GSD-Task: S01/T02
2026-04-03 23:46:03 +00:00
jlightner
dbc4afcf42
feat: Normalized /topics and /videos endpoints from bare lists to pagin…
...
- "backend/schemas.py"
- "backend/routers/topics.py"
- "backend/routers/videos.py"
- "frontend/src/api/topics.ts"
- "frontend/src/pages/TopicsBrowse.tsx"
- "frontend/src/pages/Home.tsx"
GSD-Task: S05/T03
2026-04-03 23:09:33 +00:00
jlightner
1bbcb8f5bf
feat: Replaced 6 static page imports with React.lazy + Suspense in App.…
...
- "frontend/src/App.tsx"
GSD-Task: S05/T02
2026-04-03 23:06:39 +00:00
jlightner
39e169b4ce
feat: Split 945-line public-client.ts into 10 domain API modules with s…
...
- "frontend/src/api/client.ts"
- "frontend/src/api/index.ts"
- "frontend/src/api/search.ts"
- "frontend/src/api/techniques.ts"
- "frontend/src/api/creators.ts"
- "frontend/src/api/topics.ts"
- "frontend/src/api/stats.ts"
- "frontend/src/api/reports.ts"
GSD-Task: S05/T01
2026-04-03 23:04:56 +00:00
jlightner
c60fc8c3b3
feat: Added ProtectedRoute component, CreatorDashboard with sidebar nav…
...
- "frontend/src/components/ProtectedRoute.tsx"
- "frontend/src/pages/CreatorDashboard.tsx"
- "frontend/src/pages/CreatorDashboard.module.css"
- "frontend/src/pages/CreatorSettings.tsx"
- "frontend/src/pages/CreatorSettings.module.css"
- "frontend/src/App.tsx"
- "frontend/src/App.css"
- "frontend/src/pages/Login.tsx"
GSD-Task: S02/T04
2026-04-03 22:02:04 +00:00
jlightner
b344307a89
feat: Added AuthContext provider with JWT persistence, auth API client…
...
- "frontend/src/context/AuthContext.tsx"
- "frontend/src/api/public-client.ts"
- "frontend/src/pages/Login.tsx"
- "frontend/src/pages/Login.module.css"
- "frontend/src/pages/Register.tsx"
- "frontend/src/pages/Register.module.css"
- "frontend/src/App.tsx"
GSD-Task: S02/T03
2026-04-03 21:58:08 +00:00
jlightner
69335d8d6d
chore: remove 2,367 lines of dead code — orphaned CSS, unused imports, stale files
...
Deleted files:
- generate_stage5_variants.py (874 lines) — superseded by pipeline.quality toolkit
- PROJECT_CONTEXT.md (461 lines) — stale, .gsd/PROJECT.md is the living doc
- CHRYSOPEDIA-ASSESSMENT.md (654 lines) — M011 triage artifact, all findings actioned
CSS cleanup (364 lines):
- 20 orphaned block groups from deleted review queue/old components
- Duplicate .btn base rule, .btn--warning, @keyframes stagePulse
Python imports:
- routers/pipeline.py: uuid, literal_column, over, text
- tests/test_pipeline.py: 9 unused imports (PropertyMock, create_engine, etc.)
Build verified: tsc --noEmit clean, npm run build clean (59 modules, 0 warnings).
2026-04-03 09:43:37 +00:00
jlightner
ca3d33ba34
feat: Added 480px media query with 15 rule overrides for stats bar, fea…
...
- "frontend/src/App.css"
GSD-Task: S04/T02
2026-04-03 09:20:13 +00:00
jlightner
18eb4e0ee8
feat: Added updateCreatorProfile() API client and inline bio/social-lin…
...
- "frontend/src/api/public-client.ts"
- "frontend/src/pages/CreatorDetail.tsx"
- "frontend/src/App.css"
GSD-Task: S04/T01
2026-04-03 09:18:39 +00:00