Staleness reasons and acceptance #58

Closed
opened 2026-10-07 07:34:51 +00:00 by crowmaki · 1 comment
Owner

Parent

#24

What to build

A filmmaker can see which Takes no longer match current inputs and why. See User Stories 123, 150 and 163–167 and #12.

Acceptance criteria

  • Staleness is computed, never stored: diff a Take's recorded inputs against the job its Shot would build now, ignoring seed and Generation profile
  • Each difference is a named Stale reason grouped as References, Board/Keyframes, Performance, Prompt, Framing (including effective ratio) or Workflow (informational only, and only for versions marked as changing output)
  • On a Shot with an override, Takes compare against the override text; a composer change alone affects only the Shot marker
  • A reason can be accepted per Take until that input changes again; "Accept all"; accepting never changes provenance
  • Queued Takes are judged too; "Rebuild with current inputs" on a waiting Take keeps its number and seed
  • Stale badges and a sortable Stale column in Dailies; only "N circled stale" in Shot and Scene listings
  • The details panel shows an A/B wipe against another Take and a table of the Take's inputs against current ones, including the sent slot assignment
  • Promoting a stale Take warns, naming the stale inputs
  • Tests cover each reason kind, acceptance lapse and the override case

Blocked by

## Parent #24 ## What to build A filmmaker can see which Takes no longer match current inputs and why. See User Stories 123, 150 and 163–167 and #12. ## Acceptance criteria - [ ] Staleness is computed, never stored: diff a Take's recorded inputs against the job its Shot would build now, ignoring seed and Generation profile - [ ] Each difference is a named Stale reason grouped as References, Board/Keyframes, Performance, Prompt, Framing (including effective ratio) or Workflow (informational only, and only for versions marked as changing output) - [ ] On a Shot with an override, Takes compare against the override text; a composer change alone affects only the Shot marker - [ ] A reason can be accepted per Take until that input changes again; "Accept all"; accepting never changes provenance - [ ] Queued Takes are judged too; "Rebuild with current inputs" on a waiting Take keeps its number and seed - [ ] Stale badges and a sortable Stale column in Dailies; only "N circled stale" in Shot and Scene listings - [ ] The details panel shows an A/B wipe against another Take and a table of the Take's inputs against current ones, including the sent slot assignment - [ ] Promoting a stale Take warns, naming the stale inputs - [ ] Tests cover each reason kind, acceptance lapse and the override case ## Blocked by - #49 - #55
Author
Owner

Note from #50 (PR #104): the Generation profile is never an input to staleness. The Project default lives in project_profile / project_profile_lora (studio-core/src/generation_profile.rs), and each Take will carry its own copy (#51). When diffing a Take's recorded job inputs against the job the Shot would build now, leave out every profile-driven value: the diffusion_model and text_encoder bindings, the user LoRA chain, the speed-mode bindings (steps, distill_lora_strength), and the width/height that come from the short sides (the effective aspect ratio still counts, under Framing). The seed is also excluded.

Note from #50 (PR #104): the Generation profile is never an input to staleness. The Project default lives in `project_profile` / `project_profile_lora` (`studio-core/src/generation_profile.rs`), and each Take will carry its own copy (#51). When diffing a Take's recorded job inputs against the job the Shot would build now, leave out every profile-driven value: the `diffusion_model` and `text_encoder` bindings, the user LoRA chain, the speed-mode bindings (`steps`, `distill_lora_strength`), and the width/height that come from the short sides (the effective aspect ratio still counts, under Framing). The seed is also excluded.
Sign in to join this conversation.
No description provided.