# Changelog User-facing. The files named here are in the repository, not in the installed pack — the published package excludes them. Engineering detail lives in `docs/DEVLOG.md`. `CLAUDE.md` is the current map of the pack; `docs/HANDOVER_*.md` and `BETA_NOTES.md` are historical and should not be read as the state of this release. ## 2.0.0 — 2026-09-06 A full release, not a beta. The hop cache, the pin, the media slots and the tone tools that accumulated on side branches since 1.1 are in this tree, plus four new behaviours. ### New - **`master_audio_file`** (MEDIA). One continuous take every hop lip-syncs to. Empty (the default) is off and does not change existing renders. When set: each hop is locked to a window of that file on the same clock as the picture; delivered audio is a passthrough of the take, no VAE round trip. The beat still needs the words in `[English] ...`. - **`last_frame_guide`** (RUN, join & pin). `off` (default), `before_restart`, or `still`. It AddGuide-pins `start_image` at a hop's last pixel frame, so the hop *ends* on the photograph and a following restart — which opens on that same photograph — reads as a match cut rather than a jump. **`before_restart` is the setting to use:** it guides only a hop whose next shot is `anchor: "restart"`. `still` guides every hop, which also overrides an authored `framing` directive at every hop ending — a shot set `framing: close` plays close and then snaps to the still's wider framing in about 0.6 s, and the next hop pushes back in. Use `still` only when no shot authors a framing. Needs a start image. Neither becomes the next hop's frame 0. - **`anchor: "restart"`** on a shot. That hop is a chain start: the start image is frame 0, nothing is relayed from the previous hop. It is a cut. Pair it with `join: hard_cut`. Restart hops now write their **full length** — they used to drop the 0.9 s overlap as if they were a continuation. - **`refs` on a shot.** Which register stills ride that hop. Omit the field for the register default (unscheduled stills on chain starts, off continuations). `[]` is none. A filled list is those tags only, in that order. Unknown tags fail on the queue. - **SWAP**, a fifth tab. A one-hop identity swap from a reference clip: the clip supplies the motion and the scene, a still from the REFERENCES rail supplies the person. **Write** drafts it, **Accept** writes exactly one shot plus the clip's description and never touches `ref_plan` -- your register is not rewritten. Contributed by @frankyi, then rebuilt from its own prose rather than merged. Four named modes, because at cfg 1.0 there is no negative branch and a mode that merely *omits* the swap line does not keep the clip's person -- the identity photograph is in front of the encoder either way and governs the subject anyway. Each mode says positively what stays: `replace_person` (face, build, hairstyle and wardrobe), `head_swap` (face, hair and skin tone; the body, posture, hands and every garment stay with the clip), `face_only` (features only), and `keep_person` (swaps nobody -- the clip is a scene and motion plate, and the identity picker greys out). The taxonomy follows PromptMasterLD's edit laws; the prose is written fresh for H3 beats. Alongside them: **background** from the clip, from a `@tag` picture, or free; and an optional **wardrobe plate**, a `@tag` whose garment is *worn* -- draping on the body in frame and creasing where it bends -- rather than pasted. **Two things to get right, both of which cost renders to find out.** Do not run MEDIA's describe on the clip before a swap: that caption reaches the encoder as what `