mengw15 opened a new issue, #8315:
URL: https://github.com/apache/texera/issues/8315

   ### What happened?
   
   In collaborative editing, operators/links/positions sync between clients 
through the Yjs shared model — but two pieces of workflow content do not: 
`workflowSettings`, and (since #8275) `formBinding`. Each client hydrates a 
private copy on load (`WorkflowActionService`), and `getWorkflowContent()` 
re-emits that private copy into every autosave, which persists the **whole** 
content JSON.
   
   So: client A edits a setting (or the Form View definition) → A's autosave 
persists it → client B, whose private copy is still the old value, makes any 
graph edit → B's autosave persists the whole content with B's **stale** copy → 
A's edit is silently reverted in the DB. A's screen still shows the new value 
until reload; the overwritten value is recoverable from version history, but 
nothing tells the users it happened.
   
   `workflowSettings` has had this since collaborative editing landed (low 
exposure — settings changes are rare one-shot toggles). `content.formBinding` 
(#8275) widens the exposure: form authoring is a long-lived editing session, so 
the window where a collaborator's graph edit can clobber it is much larger. 
First surfaced for formBinding by a Copilot comment on #8304.
   
   Possible directions (not prescribing): move these into the shared model (a 
`Y.Map` alongside `operatorIDMap` etc.); or merge against the latest persisted 
content before a whole-content save; or field-level persistence.
   
   ### How to reproduce?
   
   1. Open the same workflow in two browsers (A and B), both with write access.
   2. In A: change a workflow setting (e.g. the data transfer batch size in the 
settings panel). A autosaves.
   3. In B (without reloading): drag any operator. B autosaves.
   4. Reload either browser: the setting is back to its old value — B's save 
carried B's stale private copy over A's edit.
   
   The same mechanism applies to `content.formBinding` once its authoring UI 
lands.
   
   ### Version/Branch
   
   main
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to