|  | 8cbc9a034a | feat(media): add /api/media/image and proxied object fetch; feat(editor): image upload button and TipTap Image insertion | 2025-10-24 03:23:21 +02:00 |  | 
			
				
					|  | eff5dfd0bb | feat(editor): integrate TipTap rich editor; add Drafts list; fix TipTap setContent typing | 2025-10-24 03:17:23 +02:00 |  | 
			
				
					|  | 45f7b3e8d5 | feat(admin): add minimal Drafts list to load existing drafts from /api/drafts | 2025-10-24 03:14:17 +02:00 |  | 
			
				
					|  | dde15813be | fix(recorder): choose supported MediaRecorder mime (webm/mp4) and use it for blob/upload to improve playback compatibility | 2025-10-24 03:10:52 +02:00 |  | 
			
				
					|  | 1545310945 | chore(admin): add minimal network states to Recorder (upload/transcribe) | 2025-10-24 02:52:28 +02:00 |  | 
			
				
					|  | 7f127bf721 | feat(editor): load/save draft via /api/drafts with local fallback; mount drafts router; update PLAN | 2025-10-23 23:02:09 +02:00 |  | 
			
				
					|  | 258464156b | feat(editor): wire transcript into draft editor with local save; update PLAN; ensure API dev script present | 2025-10-23 22:43:20 +02:00 |  | 
			
				
					|  | 498b49c474 | feat(stt): add /api/stt endpoint using OpenAI; mount route; add Transcribe button in Recorder UI; update plan | 2025-10-23 22:15:09 +02:00 |  | 
			
				
					|  | 4ad9c311a2 | feat(media): wire Recorder upload to /api/media/audio; fix multer TS types; add S3 download helper | 2025-10-23 21:24:52 +02:00 |  | 
			
				
					|  | 7e0bb3dc53 | feat(admin): add audio recorder UI skeleton (MediaRecorder) and embed into EditorShell | 2025-10-22 00:54:02 +02:00 |  | 
			
				
					|  | 43e6d4b53c | feat(admin): add MUI AdminLayout and persist auth; wrap EditorShell with layout and logout | 2025-10-22 00:52:25 +02:00 |  | 
			
				
					|  | a0fd0e0b3c | chore: initialize monorepo (pnpm workspace), add PLAN.md and .gitignore | 2025-10-22 00:50:29 +02:00 |  |