fix(studio): harden composition timeline reliability (#2615)

* fix(studio): preserve composition playback continuity

* feat(studio): drag compositions into the timeline

* fix(studio): collapse expanded composition move aliases

* fix(studio): make timeline cuts atomic

* fix(studio): group inspector gesture history

* test(studio): cover masked text selection

* fix(studio): harden composition timeline reliability

* fix(studio): satisfy CI source gates

* fix(studio): harden composition mutation requests
This commit is contained in:
Miguel Ángel
2026-07-17 14:15:30 -04:00
committed by GitHub
parent 2be8a62c00
commit 2b65b4efce
93 changed files with 3925 additions and 758 deletions
@@ -53,6 +53,16 @@ describe("buildTimelineGroupResizeMembers (legacy 36413da7f semantics)", () => {
]);
});
it("seeds legacy composition offsets and advances them at playback rate", () => {
const a = el("a", { kind: "composition", tag: "div", start: 2, playbackRate: 2 });
const b = el("b", { kind: "composition", tag: "div", start: 5, playbackRate: 0.5 });
const members = buildTimelineGroupResizeMembers([a, b], keys("a", "b"), "a", "start")!;
expect(members.map((member) => member.playbackStart)).toEqual([0, 0]);
const changes = resolveTimelineGroupResizeChanges(members, "start", 1);
expect(changes.map((change) => change.playbackStart)).toEqual([2, 0.5]);
});
it("does not seed playbackStart on the END edge", () => {
const grabbed = el("a", { tag: "audio", start: 0, duration: 2 });
const b = el("b", { tag: "audio", start: 3, duration: 2 });