mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
## Summary - Remove the z-index injection loops from timeline move, delete, and asset-drop commit paths — only timing/track attributes are now patched on the affected clip, leaving all other clips untouched - Fix `patchInlineStyleInTag` to handle self-closing void elements (`<img />`, `<audio />`) — the old code produced malformed `<img ... / style="z-index: 7">` output - Delete the now-unused `buildTrackZIndexMap` helper and its tests ## Root cause Three timeline operations (`handleTimelineElementMove`, `handleTimelineElementDelete`, `handleTimelineAssetDrop`) looped over every clip in the file on each commit and injected `style="z-index: N"` derived from an inverted `data-track-index` mapping via `buildTrackZIndexMap`. This overrode the author's CSS z-index — contradicting the documented contract that `data-track-index` does not affect visual layering — and persisted the corruption in the source HTML. ## Test plan - [x] Reproduction test covering old bug behavior (inline z-index injection on all clips, inverted layering) - [x] Verification tests confirming move/delete only patches the affected clip's timing attributes - [x] Void element tests confirming `<img ... style="..." />` output (not `<img ... / style="...">`) - [x] End-to-end browser test: opened Studio, dragged badge clip in timeline via CDP, verified only `data-start` changed on the dragged clip with zero inline z-index injections - [x] Full test suite: 585 tests pass (54 files) - [x] Build, lint, format, typecheck all green Closes #958