# Feature COMMS-379 - Collaborative editing

Project: Stream Communicator
Status: closed
URL: https://community.openproject.org/work_packages/COMMS-379

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 17.0.0 |
| Sprint |  |
| Backlog bucket |  |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

| ID | Subject | Status | Decision |
| --- | --- | --- | --- |
| COMMS-496 | Do we need localization for BlockNote? | decided | localize blocknote |

## Features and Chunks

| ID | Subject | Type | Status | Assignee | Target versions | Spent time |
| --- | --- | --- | --- | --- | --- | --- |
| COMMS-433 | Auth for Hocuspocus to use OpenProject API | Implementation | closed |  | 16.6.0 |  |
| COMMS-434 | Data model changes (binary field for YDoc) | Implementation | closed | Bruno Pagno | 16.6.0 |  |
| COMMS-435 | API endpoint for writing documents | Implementation | closed | Bruno Pagno | 16.6.0 |  |
| COMMS-436 | Update hocuspocus server to use the API | Implementation | closed | Bruno Pagno | 16.6.0 |  |
| COMMS-463 | Document Hocuspocus docker dev setup for Mac users | Implementation | closed |  | 17.0.0 |  |
| COMMS-482 | Implement token refreshing and reduce token expiration time | Feature | closed |  | 17.2.0 |  |
| COMMS-483 | Adjust the helm charts and enable new environment variable | Implementation | closed |  |  |  |
| COMMS-490 | Save documents in markdown when updating Yjs binary | Implementation | closed |  | 17.0.0 |  |
| COMMS-494 | BlockNote: Show error when uploading non-whitelisted file | Feature | tested |  |  |  |

## Bugs and other work packages

| ID | Type | Subject | Status | Assignee | Target versions | Spent time | Module |
| --- | --- | --- | --- | --- | --- | --- | --- |
| COMMS-456 | Task | Update BlockNote and op-blocknote-extensions to latest BlockNote version 0.40.0 | closed | Judith Roth | 16.6.0 |  |  |
| COMMS-530 | Bug | Read-only user can edit documents locally (changes don't persist) | closed |  | 17.0.0 |  | Modules and project features / Documents |
| COMMS-529 | Bug | Collaborative editing: user name tooltip is cut off in the first line of the document | closed |  | 17.0.0 |  | Modules and project features / Documents |
| COMMS-495 | Code maintenance | CSP broken when running Hocuspocus locally (without TLS) | closed |  | 17.0.0 |  |  |
| COMMS-534 | Bug | Mobile web: slash command doesn't work on mobile when remote cursor is visible | rejected |  | 17.0.0 |  | Modules and project features / Documents |
| COMMS-472 | Documentation | Update installation guides on how to use hocuspocus | new | Pavel Balashou |  |  |  |

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers | Pavel Balashou, Bruno Pagno |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

**As** a user  
**I want to** edit documents at the same time as my colleagues  
**so that** we can work together easier

**Acceptance criteria**

  - Multiple users can edit a document simultaneously

  - Show the current cursor of all participating users

  - Showing a list of connected users is defined in a separate  <mention class="mention" data-id="68420" data-type="work_package" data-text="##68420">\#\#68420</mention>

**Technical notes**

  - We will be using a Hocuspocus server

  - CRDTs need to share a common root, we think this can only be achieved by having a central place that creates the initial CRDT.

**Permissions and visibility considerations**

  - Only on community at the beginning so that we can test it and learn about resource consumption
