You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add Phase 5 revision lifecycle guards for collaborative editing
Prevents load/create/delete revision operations from running while a
collaborative edit session is active or an unsaved draft exists.
Backend:
- Add _revision_is_locked() helper (checks DB draft + in-memory room)
- GET /revisions annotates each revision with has_draft field
- POST /revisions returns 409 if parent revision is locked
- POST /revisions/current returns 409 if current revision has active room
- DELETE /revisions returns 409 if target revision is locked
- Broadcast GET_SCRIPT_REVISIONS after every code path that creates or
destroys a ScriptDraft (STOP_SCRIPT_EDIT, on_close, SAVE/DISCARD draft)
- Add TestRevisionLifecycleGuards (8 tests); fix test_ws_controller for
new GET_SCRIPT_REVISIONS message in checkpoint sequence
Frontend:
- Surface backend 409 error messages in revision action toast errors
- Replace canChangeRevisions with targeted canLoadRevision /
canDeleteRevision computed props and revisionHasDraft() method
- Add v-b-tooltip.hover on span wrappers for disabled buttons; use ''
not null so tooltips clear correctly when condition lifts
- Add .btn-group-item CSS using :not(:last-child)/:not(:first-child)
so solo Load button retains all rounded corners
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments