Skip to content

fix(timeline): enforce track lock invariants - #26

Open
lightninglu10 wants to merge 5 commits into
mainfrom
v1-lock-invariants
Open

fix(timeline): enforce track lock invariants#26
lightninglu10 wants to merge 5 commits into
mainfrom
v1-lock-invariants

Conversation

@lightninglu10

@lightninglu10lightninglu10 commented Aug 27, 2026

Copy link
Copy Markdown

Summary

This makes the track-lock control an actual editing invariant. Locked items cannot change timing, lane, source placement, reverse state, or existence; linked cohorts reject atomically when any companion is locked; lock overrides sync-lock; and track-header content reorder refuses affected locked lanes or cohorts.

Unlocked standalone tracks can still participate in cross-track ripple/push while locked lanes stay fixed. Rejected operations create no history entry, accepted compound edits remain one undo command, and track Solo is additive instead of replacing the previous soloed track.

Verification

Current head af56cb4bb45523a8134ce16f6846718fb7ee8f8d adds shared atomic mutation preflight across split/join/rate/freeze/source edits, every trim mode, range removal, captions, transitions, inherited group locks, and linked cohorts. Lottie reverse and segment timing fields are protected, and async actions revalidate immediately before committing.

The 190 affected tests and full 4,820-test suite pass under Node 22. npm run check, npm run build, boundaries, dependency contracts, changed-health, and all seven push gates also pass. Fresh independent code review and browser QA are pending for this head, so the PR remains draft.

@lightninglu10
lightninglu10 marked this pull request as ready for review August 27, 2026 05:25
@lightninglu10lightninglu10 self-assigned this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lightninglu10