Skip to content

Collaborative editing: handle external file updates #3103

Closed

Description

@kulmann

Initial Checklist

  • I understand this is a user story and questions should be posted in the Community Discussions
  • I searched issues and couldn’t find anything (or linked relevant results below)

User Story

As a user, I want to be informed when the file I am editing has been changed outside of my session so that my unsaved changes are not silently replaced by the external content.

User Value

Data integrity, UX

Acceptance Criteria

  • When a peer X joins a room whose document holds unsaved changes and the server etag differs from the room's nativeEtag, the external content is not hydrated into the document. The room gets flagged as "stale" (metadata change which gets broadcasted to all peers)
  • All peers with unsaved changes (everbody except X) in the room are shown a message that the document has changed externally and that they should copy their editor content into the clipboard before reloading the document (check if saving anyway causes a 412 conflict, if not we must prevent saving)
  • Covered by an e2e test: edit without saving → change the file externally → second peer joins → conflict message
  • E2E commented steps in tests/e2e/features/yjs/conflicts.feature can be un-commented

Activity

  1. changed the title [-]Properly handle external file updates in an active session when another peer joins while I have unsaved changes (currently, they get overwritten with the updated file from external without warning) -> show `412` conflict message[/-] [+]Collaborative editing: handle external file updates[/+] on Aug 13, 2026
  2. moved this from Qualification to Backlog in OpenCloud Team Boardon Aug 13, 2026
  3. self-assigned this
    on Aug 26, 2026
  4. moved this from Backlog to In Progress in OpenCloud Team Boardon Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions