· Platform · Changelog
What's new.
Every change worth talking about. Newest first.
- Feature
Per-scene voiceover narration + end-to-end mp4 render
- New POST /api/projects/{id}/narrate generates Google Cloud Neural2 voiceover per scene and uploads to GCS
- Project-level render endpoint now layers SoundOverlay tracks per scene, sizes shots to fit the audio
- Auto-regenerate in the Shot Canvas: changing the subject / environment / style / action retriggers generation with a 1.5s debounce
- Default image model switched to fal/openai/gpt-image-2 at medium quality
- Feature
Library expansion — 355 new items
- +125 diverse cast across 10 ethnicities, 5 age bands, 25 archetypes
- +50 wardrobe, +50 locations, +50 props, +50 vehicles, +30 cinematic styles
- Items ship without preview images; admin can generate on demand
- Feature
Unique AI-generated project posters
- Every project forked from a template now gets its own 9:16 poster
- Generated in the background ~30-60s after create — no blocking on the create response
- POST /api/projects/{id}/poster regenerates on demand
- Improvement
Glass-card UI refresh on admin pages
- Credits, Content, Projects, Users, Notifications all migrated to the Dashboard's bg-card/45 + backdrop-blur pattern
- Removed the gap-px divider seams that looked harsh against the ambient gradient
- Feature
Project pipeline closed end-to-end
- Breakdown auto-populates at project create from scenes' cast/location/prop slugs
- Generated images upload to GCS (sceneweaver-pro-assets) instead of bloating Firestore as data: URIs
- POST /api/projects/{id}/render stitches every shot into a single mp4 via Remotion
- Feature
Account section: Security + Danger Zone
- Security page shows sign-in provider, account age, last sign-in, sign-out
- Danger Zone: export your workspace data (JSON) or delete your account
- Profile changes now persist via /api/account/profile
- Security
Phase 1 hardening + CI gates
- SSRF protection on every refUrls intake (url-safety filter)
- Voice and image generation endpoints rate-limited per-user
- Cloud Build now runs typecheck + lint before any docker push
- Improvement
Observability + Cloud Run scaling
- Structured JSON logger feeding Cloud Logging — every error becomes a queryable column
- Render state moved from /tmp to Firestore, surviving replica routing and deploys
- /api/healthz: cheap readiness probe (one Firestore call) instead of pinging 9 services
- Fix
Lint sweep + dead-code removal
- 537 → 0 lint warnings across the app code
- ~80,000 lines of dead pre-production components removed; google-fonts triplication consolidated