nextcloud / nextcloud/text

Open text documents with lazy session initialization

Open
#5,597 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement feature: sync performance 🚀
Dominant language
JavaScript
Stars
659
Forks
133
Avg merge
1d 20h
Merged PRs (30d)
110

Description

Given the new approach to load a document state from the file content, we should consider adding a way to initialize an editing session lazy. This could be useful for various cases:

  • In a read only document we likely don't need to update as often -> can be a large impact on instances that share a lot of read only files that get accessed frequently
  • In rich workspaces we could only lock the file once someone actually starts editing
  • Collectives could rather use this instead of requiring to switch between different editor components

We'd probably need:

  • Have an API to fetch the document content or yjs state without creating a new session, maybe even fetch steps for read only sessions
  • Some less frequent polling/notify push could then be used to check if a user editing joins or some steps were pushed
  • Think about how a handover can work from the UX perspective
  • Think about how the session can be initialized in the frontend code base

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping the existing document-state and editing-session APIs in the frontend codebase. Define how read-only content or Yjs state is fetched without a session, how polling or notifications detect editing, and how the UX hands over into an initialized session.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
distributed-systems, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.