- Add nginx to Dockerfile as reverse proxy
- Route /api/* to FastAPI, / to Next.js on single port 80
- Update all frontend components to use /api prefix in production
- Simplify docker-compose to single port 80
- Fixes CORS errors when deployed to remote servers
- Add backend/services/meta_video_client.py (direct video generation)
- Update routers/meta.py with working /meta/video endpoint
- Delete services/metaai-api/ (~1500 lines removed)
- Simplify docker-compose.yml to single container
- No external service dependencies for Meta AI
- Update Gallery.tsx to use FastAPI (5 API calls)
- Update PromptHero.tsx to use FastAPI (3 API calls)
- Update PromptLibrary.tsx to use FastAPI (4 API calls)
- Update UploadHistory.tsx to use FastAPI (1 API call)
- Add API_BASE constant to all components
- Add Python FastAPI backend with Pydantic validation
- Port WhiskClient and MetaAIClient to Python
- Create API routers for all endpoints
- Add Swagger/ReDoc documentation at /docs
- Update Dockerfile for multi-service container
- Add lib/api.ts frontend client
- Update README for V3
- Removed all Grok-related code, API routes, and services
- Removed crawl4ai service and meta-crawl client
- Simplified Settings to always show cookie inputs for Meta AI
- Hid advanced wrapper settings behind collapsible section
- Provider selection now only shows Whisk and Meta AI
- Fixed unused imports and type definitions
- Remove all action buttons from thumbnail overlay
- Keep only provider tag and delete button (X)
- Keep prompt text visible on hover
- All actions (download, video, remix, etc.) now in lightbox
- Subject button now enabled for Meta AI (Scene/Style still disabled)
- Video button appears when Subject reference is uploaded
- Uses Subject image for image-to-video generation
- Added handleGenerateVideo() in PromptHero
- Tooltip: 'Upload image to animate into video'
- Remove Video button from PromptHero (generate images first, video from gallery)
- Add Meta AI image-to-video in Gallery component
- Redesign lightbox with split panel layout (image left, controls right)
- Add handleGenerateMetaVideo() for Meta AI video from gallery
- Fix reference buttons (all disabled for Meta AI)
- Lightbox now shows: Download, Generate Video, Remix/Edit, Copy Prompt, Delete
- Add Litterbox temporary image hosting for image URLs
- Update backend to accept image_base64 parameter
- Update TypeScript client and API route
- Subject button now enabled for Meta AI (for image-to-video)
- Button changes from 'Video' to 'Animate' when subject is set
- Pink/purple gradient for image-to-video, blue/cyan for text-to-video
- Add /video/generate endpoint to crawl4ai Python service
- Add VideoGenerateRequest and VideoGenerateResponse models
- Add generateVideo method to MetaCrawlClient TypeScript client
- Add /api/meta/video Next.js API route
- Add 'Video' button in PromptHero UI (visible only for Meta AI provider)
- Blue/cyan gradient styling for Video button to differentiate from Generate
- Enable multi-file selection for Subject, Scene, Style inputs
- Show stacked thumbnails with count badge
- Add reference preview panel with individual delete buttons
- Add '+' button to add more refs per category
- Fixed upload route to properly trim and parse JSON-formatted cookies
- Added same cookie normalization logic to generate route
- Handles pretty-printed JSON with leading newlines from Cookie-Editor export