Staleness reasons and acceptance (#58) #113
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
needs-info
needs-triage
question
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crowmaki/ai-studio!113
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-58-staleness"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #58
A Take is now judged stale when a re-roll with its Shot's current inputs would send a different job. The seed and the Generation profile are left out of the comparison. Staleness is computed, never stored: the Take's recorded inputs are compared with the job the Shot would build now. Each difference is a named Stale reason.
Core (
studio-core)stalenessmodule.take_staleness(take)returns the Take's reasons and a table of its inputs against the current ones.accepted_reasontable (migration V30) stores the input's value at the time of acceptance, so the acceptance lapses when that input changes again.accept_stale_reasonandaccept_all_stale_reasonsare undoable, and accepting never touches provenance.rebuild_take("Rebuild with current inputs") rebuilds a waiting Take's job in place. It keeps the Take's number, seed, kind, profile, Rendition and queue position. The job build is split out ofqueue_taketo make this possible.stale_reasons. Shot views, including the ones in the script read, carrycircled_stale.UI
STALEtag on each stale Take; its tooltip lists the reasons. Shot heads show "N circled stale".P) asks first and names the stale inputs.Screenshots
1A-2's aspect-ratio reason has been accepted, so only its Prompt reason still counts. Under Wipe against, the A/B wipe lists the Shot's rendered Takes. No ComfyUI was available, so these Takes are queued, not rendered.
Not covered by screenshots
The A/B wipe and the "N circled stale" marker need rendered Takes. Tests cover both:
shot_and_scene_listings_count_only_circled_stale_takesrenders against the fake ComfyUI.Tests
cargo test --workspace --all-features: 684 passed. Twoffmpegproxy tests fail, both onmainas well, because this machine's ffmpeg has nolibopenh264.bun test src: 200 passed.bun run check: clean.tests/staleness.rs, which covers each reason kind, acceptance lapse, Accept all, the override case, Rebuild and the listings. Also new:stale.test.tsand new table filter and sort tests.