Fix H3 rejoin assembling stale clips after an image rerun - #410
Merged
IAnMove merged 1 commit intoSep 12, 2026
Conversation
Rejoin gated video_stale only on the non-H3 path. MiniMax H3 productions still assembled playable segments or a Studio selection after the start image changed, so the joined movie no longer matched the current frame. Raise the same stale-clip error before the H3 branch. Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
PR Review — Loreframe StudioRisk: low Automated review from Findings
Changed files
CONTRIBUTING checklist
Posted by the repo PR review workflow. Re-runs on each push to the PR. |
IAnMove
changed the base branch from
development
to
cursor/critical-bug-management-48e0
September 12, 2026 18:54
Code healthQuality score: 63.8/100Higher is better. The score is a trend dashboard; the independent ratchet below remains the CI gate.
Change vs PR base: +0.0 points.
Markdown, JSON catalogs and tests are out of this table. Only Most complex functions
Trend vs baseline
Warnings
Ratchet passed. |
IAnMove
merged commit Sep 12, 2026
1e9886f
into
cursor/critical-bug-management-48e0
12 checks passed
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.
Resumen ejecutivo
Qué cambia
Rejoin de producciones MiniMax H3 ahora rechaza un clip marcado
video_staleen vez de montar los segmentos o la toma seleccionada.Para qué sirve
Después de regenerar la imagen de inicio, el vídeo ya no corresponde al nuevo fotograma. En H3, Rejoin igual ensamblaba ese material y publicaba una película final desactualizada.
Impacto para el usuario
Rejoin pide regenerar el vídeo stale antes de unir. El comportamiento no-H3 no cambia.
Riesgo
Estado
Summary
rejoin_clipsonly checkedvideo_staleon the non-H3 path. Sequential H3 productions (minimax_h3/minimax_h3_legacy) took a different branch that assembled playableh3_segmentsor an explicitselected_video_filenamewithout looking at the clip-level stale flag.rerun_clip_imagemarksvideo_stale=Trueand leaves those files in place for playback. A later Rejoin therefore concatenated the pre-rerun video into a newminimax_h3_*_rejoin_*.mp4and wrote it asfinal_output_filename.Hoist the existing stale-clip
ValueErrorso both branches share it. Segment-level H3 stale checks and whole-slot selections stay as they were once the clip is current.Overview
video_stale.Regenerate stale video clip(s) 1 before rejoining.Concatenate is not called.Detailed changes
Backend
app/services/director_pipeline.py_rejoin_clips_impl: evaluatevideo_stalebefore the H3/non-H3 split. Remove the duplicate check from the non-H3 branch.UI and Wizard
No UI change. The dashboard already surfaces stale clips; Rejoin now matches that gate for H3.
Data, provenance and compatibility
No checkpoint migration. Existing H3 files stay playable; only assembly is blocked until video is regenerated.
Files and ownership
app/services/director_pipeline.py— Rejoin stale gate.tests/test_director_h3_workflow_edits.py— H3 stale clip with current segments must not concatenate.director_review.pypersist,_backfill_clip_video_attempts(covered by open fix(review): preserve recovered takes and stale-video guards #406 / merged-into-fix(review): preserve recovered takes and stale-video guards #406 Fix review/rejoin treating a selected stale take as current #409), and_select_takeclearing stale on an explicit take switch (documented by the review-desk projector).Validation
Date (UTC): 2026-09-12
Base SHA: 60e867a
Head SHA: 4048ebd
Validation scope: focused
python scripts/verify_clean_repo.pypython -m compileall -q app/services/director_pipeline.pyFocused Python tests:
PYTHONPATH=/workspace python -m pytest tests/test_director_h3_workflow_edits.py tests/test_director_cancellation.py::TestDirectorCancellation::test_rejoin_rejects_stale_video_instead_of_omitting_clip -q→ 8 passedcd ui && npm run i18n:check(no UI change)UI tests: N/A (no UI change)
cd ui && npm run lint -- --max-warnings=0(no UI change)cd ui && npm run build(no UI change)git diff --checkE2E/smoke checks: N/A — Rejoin H3 assembly is covered by the focused pytest; no live ffmpeg/provider run
Code quality
main: pending CICI and review
Cursor/Bugbot — pick exactly one.
Coste de la tarea
Notes and limitations
video_stalegate.save_reviewstill clearsvideo_stalewhen the filename changes. That matches the review-desk projector test and was not changed here.Follow-up work
development.Checklist