Skip to content

Isolate Yjs rooms by web version - #3243

Merged
kulmann merged 4 commits into
mainfrom
feat/3101-versioned-yjs-rooms
Aug 28, 2026
Merged

kulmann merged 4 commits into
mainfrom
feat/3101-versioned-yjs-rooms

Conversation

@AlexAndBear

Copy link
Copy Markdown
Member

Description

  • Include the web version in the Yjs room name (fileId:webVersion), with a 0.0.0 fallback for environments without a version.
  • Remove app-version gating via _oc_meta.appVersion and remove the server-side appVersion handshake/query handling.
  • Keep stale-state and etag coordination in _oc_meta, and adapt parsing on the Yjs service to strip the optional :webVersion suffix before Graph ACL checks.
  • Update app-wrapper/text-editor Yjs option wiring and adjust unit tests for room-name generation and version-based room separation.

Related Issue

How Has This Been Tested?

  • test environment: local dev workspace on macOS
  • test case 1: pnpm test:unit --run packages/web-pkg/tests/unit/composables/yjs/useYjsSession.spec.ts packages/web-pkg/tests/unit/components/AppTemplates/AppWrapper.spec.ts packages/web-app-text-editor/tests/unit/app.spec.ts packages/web-app-text-editor/tests/unit/yjs.spec.ts
  • test case 2: pnpm exec tsc --noEmit -p services/yjs/tsconfig.json
  • test case 3: verify room name composition unit tests cover equal and differing versions, including 0.0.0 fallback

Types of changes

  • Bugfix
  • Enhancement (a change that doesn't break existing code or deployments)
  • Breaking change (a modification that affects current functionality)
  • Technical debt (addressing code that needs refactoring or improvements)
  • Tests (adding or improving tests)
  • Documentation (updates or additions to documentation)
  • Maintenance (like dependency updates or tooling adjustments)

Comment thread packages/web-pkg/src/composables/yjs/useYjsSession.ts
@AlexAndBear
AlexAndBear requested a review from JammingBen August 27, 2026 15:02

@kulmann kulmann left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the yjs.md needs to be changed in order to reflect this PRs changes. it still describes the "old" behaviour with appVersion and conflict detection.

@AlexAndBear
AlexAndBear requested a review from kulmann August 28, 2026 07:30
@kulmann
kulmann merged commit a074790 into main Aug 28, 2026
31 checks passed
@kulmann
kulmann deleted the feat/3101-versioned-yjs-rooms branch August 28, 2026 08:30
@openclouders openclouders mentioned this pull request Aug 28, 2026
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

collaborative editing: bake web version into room name

3 participants