Mark each scene good or to-work-on, and filter the edit by it - #386
Merged
Merged
Conversation
A long film's edit is hard to track: nothing on the Scenes tab says which scenes have been looked at and which are still being worked on. Each scene card now carries its own QA mark — Good signs it off, To work on flags it, clicking the current mark clears it — shown as a chip on the collapsed card. The filter above the cards then narrows the tab to All, To work on (everything not signed off, flagged or never looked at) or Good, with a count of how many scenes are done; the film is fully edited when To work on empties. Marks live in scene_review.json beside the film — a note about the edit, not part of what renders — ride out on GET /api/films/scenes, and are dropped when their scene is deleted. Filtering only hides cards: numbering, the move chevrons and Reassemble still act on the whole film. Closes #383 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
An unmarked scene was only ever "not signed off" — a gap in the two-way control rather than a state of its own. It is now a named category, "To be reviewed", where every scene starts, and "Good" is renamed "Approved". The card carries a three-way picker, so any category is one click away, and the chip on the collapsed card names the one it is in. The filter above the cards follows: All plus one segment per category with its count, each showing exactly its own scenes rather than everything-not-approved. Stored marks are "approved" | "todo"; an empty mark IS to-be-reviewed, so the default category costs no state. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #383.
On a film with many scenes there was nothing to say which scenes had been
looked at and which were still being worked on.
What changed
Three review categories. Every scene on Edit film → Scenes sits in one of
them, picked with a three-way control on its own card:
The category also shows as a chip on the collapsed card, beside the
Rendered/No video chip.
A filter for the pass. Above the cards: All (n) plus one segment per
category with its count, each showing exactly its own scenes. The line beside
it counts how many are approved — "Every scene is approved — this film is
fully edited." once they all are.
Filtering only hides cards. Scene numbering, the move chevrons, Reassemble and
Add scene all still act on the whole film.
Storage. Marks live in
scene_review.jsonbeside the film — a note aboutthe edit, not part of what renders, so nothing in the render path reads it. An
empty mark is to-be-reviewed, so the default category costs no state. Marks
ride out on
GET /api/films/scenesasreview, are written by the newPOST /api/films/scenes/{scene_id}/review, and are dropped when their scene isdeleted.
Verification
tests/test_scene_review.py— marks persist and come back on the scene list,empty status clears, unknown status rejected, delete drops the mark, an
unreadable store is ignored, path escape rejected.
ruffclean.npm run buildclean.off): marks round-trip to the sidecar and back through
GET /api/films/scenes,"good"is rejected as an unknown status, set/clear bothwork.
Docs: new Review marks section in
docs/manual/edit-film.md, plus theREADME feature line.
🤖 Generated with Claude Code