Part of the design spec (Pillar 3). Solves "the filename isn't the prompt": a generated clip should be fully self-describing, not a cryptic name.
Feature goals
- A metadata record per generated clip: full prompt, model/provider (DP vs local vs Seedance/fal/Replicate), characters/references used (ids + tags), aspect/duration/seed, timeline position it was placed at, transcript range it was made for, timestamp, version number, accepted/replaced/regenerated state.
- Stored in the project (queryable via Pillar 2) and as a sidecar
.json next to the media file (self-describing outside the app). Keep the readable filename dd_{model}_{slug}_{timestamp}; the full prompt lives in metadata.
- Extend
GET /api/generations with the new fields + a link from a timeline clip → its generation record.
Quality goals
- Given any clip, the AI/user recovers exactly what made it, where it sits, and who's in it — zero filename guessing.
- Metadata survives save/reload and project move (sidecar); versions for one slot are linked, not orphaned.
Acceptance
Select any generated clip → see/query full prompt, model, characters, transcript range, timeline position; regenerate into the same slot → versions linked under one shot.
Dependencies / files
Underpins Pillar 2 (#10) and Pillar 5. backend/state/job_queue.py, backend/_routes/generations.py, backend/server_utils/output_naming.py, frontend/types/project.ts (GenerationParams → full record).
Part of the design spec (Pillar 3). Solves "the filename isn't the prompt": a generated clip should be fully self-describing, not a cryptic name.
Feature goals
.jsonnext to the media file (self-describing outside the app). Keep the readable filenamedd_{model}_{slug}_{timestamp}; the full prompt lives in metadata.GET /api/generationswith the new fields + a link from a timeline clip → its generation record.Quality goals
Acceptance
Select any generated clip → see/query full prompt, model, characters, transcript range, timeline position; regenerate into the same slot → versions linked under one shot.
Dependencies / files
Underpins Pillar 2 (#10) and Pillar 5.
backend/state/job_queue.py,backend/_routes/generations.py,backend/server_utils/output_naming.py,frontend/types/project.ts(GenerationParams → full record).