Fighting Game · Guides & deep dives

Sequencer Multi-User Editing

sequence snapshots plus the current collaboration state.

4sections2 minread

On this page

Task: TODOS.phase-72.72.15.2.13

Sequencer multi-user editing is a V2Editor TimelineVisualizer surface for coordinating collaborative cinematic edits. It tracks editor presence, grants exclusive per-track locks, merges remote sequence edits, and exposes blocking track conflicts for review.

Runtime API#

  • Panel spec: FV2SequencerMultiUserPanelSpec
  • User presence: FV2SequencerMultiUserPresence
  • Track lock: FV2SequencerMultiUserTrackLock
  • Track merge row: FV2SequencerMultiUserTrackMerge
  • Conflict row: FV2SequencerMultiUserConflict
  • State: FV2SequencerMultiUserState
  • Request/result: FV2SequencerMultiUserRequest, FV2SequencerMultiUserResult
  • Enums: EV2SequencerMultiUserActionType, EV2SequencerMultiUserMergeStatus, EV2SequencerMultiUserIssueType

ApplySequencerMultiUserEditingRequest accepts base, local, and incoming sequence snapshots plus the current collaboration state. Lock actions update per-track ownership and mirror the lock into the merged sequence track. A three-way merge actions compare track signatures across base, local, and incoming snapshots: incoming-only edits apply, local-only edits are kept, identical edits are accepted, and true local-versus-incoming edits become blocking conflicts unless the request explicitly prefers incoming.

Behavior#

  • The panel targets TimelineVisualizer and requires remote presence, per-track locks, merge support, conflict inspection, and revision checks.
  • Track locks record owner user id, display name, revision, lease time, exclusivity, and dirty state.
  • Lock acquisition rejects missing tracks and tracks already locked by another user.
  • Lock release requires ownership unless force release is requested.
  • Merge requests require matching base/local/incoming sequence ids and a base revision that matches the active collaboration state.
  • Merge results include per-track status rows, merged sequence data, conflict rows, and validation issues.

QA Inventory#

  • Panel: verify multi-user widget metadata, lock support, merge support, remote presence, conflict inspection, and revision enforcement.
  • Presence: verify local and remote users are both represented in state.
  • Locks: verify granting a local track lock, rejecting a remote lock on the same track, rejecting release by a non-owner, and releasing the owner lock.
  • Merge: verify incoming-only changes apply and local-only changes remain.
  • Conflicts: verify simultaneous local and incoming edits create blocking conflicts, and explicit incoming preference resolves that conflict.
  • Off-path: reject stale revision merge requests and missing lock targets.

js_repl Playwright interaction was unavailable in this session and the affected surface is Unreal editor data rather than browser-rendered UI, so verification is through UE editor automation and contract gates.

Verification#

  • python3 V2/ue/Tools/check-v2-sequencer-multi-user-editing.py
  • V2.Editor.Sequencer.MultiUserEditing
  • python3 V2/ue/Tools/check-v2-editor-module.py
  • python3 V2/ue/Tools/check-v2-ci-workflow.py