Skip to content

Generation metadata — every clip remembers what it is, where it sits, who's in it #11

Description

@taskmasterpeace

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    designHas a design specmvpPart of the core AI-native timeline loop

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions