Skip to content

v0.6.40 — Structural montage editing — reorder + remove (Spine 2c)

Choose a tag to compare

@github-actions github-actions released this 20 Jun 16:18
· 40 commits to main since this release
f581884

Added

Structural montage editing — reorder + remove (Spine 2c)

  • photoMontage/videoMontage rewritten so each shot is a SELF-CONTAINED named beat
    shot-${i}
    that owns only its own layer's motion (fade-in ∥ Ken Burns ∥ fade-out). Every
    layer now starts at opacity: 0, and adjacent shots overlap by the crossfade via a negative
    gap in the seq — no shot references its neighbour anymore. This makes a shot an
    independent unit you can reorder, drop, or swap by overlay and survive AI regeneration:
    • Reorder — the existing beat order patch (timeline.shot-2.order) re-sorts shots.
    • Remove — a new generic compose verb removeTimeline: ["shot-2"] splices a beat/step
      out of its parent by label; the seq re-accumulates so later shots ripple up and
      label-anchored dependents (clip start, anchored titles) follow. A dropped shot's layer just
      stays invisible (it never fades in).
    • Swap an image — already a plain nodes.<id>.src patch.
  • removeTimeline is the structural complement of the timeline retiming patch (parallel to
    removeNodes); an unknown label is reported as an orphan, never a silent drop. See
    docs/guides/regen-contract.md and examples/overlays/montage-restructure.json.
  • The montage now opens on a fade-up and closes on a fade-out (symmetric → edit-safe). Note:
    montage timing shifts slightly (shots overlap by the crossfade); the montage has no golden
    snapshot, so this is a behaviour change in the generator output only, not a determinism break.
  • Every generated montage tween now carries a stable label (shot-${i}-in/-kb for the
    fade-in / Ken Burns, cross-${i} for a crossfade, shot-${last}-out for the closing fade)
    alongside the shot-${i} beat name, so the motion is fully addressable by an overlay and
    reframe lint reports no unaddressable motion on a montage.