Repository navigation
Render every video from a VideoSpec (segment() switch-over) - #207
Merged
Merged
Conversation
segment() now imports the note as a VideoSpec and compiles it back to shots, so the spec is what every render and estimate is built from; the old walk is gone from the app. POST /api/video/spec returns that spec for a note, taking the same body as /estimate. The original walk is kept verbatim in tests/segment_reference.py as the oracle: every segmenter case, the generated corpus and real render() runs (ffmpeg faked) must still match it exactly. No behaviour changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PwaujUokXQAxnebBArpZuj
davior
marked this pull request as ready for review
October 15, 2026 00:50
This was referenced Oct 15, 2026
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.
Summary
This is the second Phase 0 step in
docs/gecko-video-creator.md, after #206.segment()now goes through the VideoSpec. It imports the note as a spec (importer.py) and compiles it back to shots (compiler.py). Every render and every estimate is now built from a spec. The old walk and_bumper_shotare deleted from the app.segmenter.pykeeps theShotmodel and the block-reading helpers both sides use.POST /api/video/specreturns the spec for a note. It takes the same body as/estimate, so a selection and the dialog's options shape it exactly as they would a render. Nothing is rendered or stored.backend/tests/segment_reference.py. Every segmenter case, the 3,000 generated notes and realrender()runs (ffmpeg faked) still have to match it exactly. When the planned chapter-mark fixes land, they change both together, or the reference copy is retired.No behaviour changes: the same shots, warnings and ffmpeg commands as before, held by the tests above.
Test plan
pytest -qfrombackend/, as CI runs it: 1,285 passed, 1 skipped (that skip was already there).🤖 Generated with Claude Code
https://claude.ai/code/session_01PwaujUokXQAxnebBArpZuj
Generated by Claude Code