Samenwerken laat de inhoud van een tabel achter bij de andere deelnemer #2749

Open
opened 2026-11-02 23:43:44 +00:00 by brenno · 0 comments
Owner

Wat je wilt bereiken

Een correctie in een tabelcel, ook het weghalen van een persoonsgegeven, komt bij de andere deelnemer aan, zonder dat twee mensen in verschillende cellen elkaars werk stil overschrijven.

Wat er nu mist

SlideField in lib/collab/deck_op.dart synchroniseert de opmaak van de tabel (tableEditable, kolomuitlijning) maar niet de rijen. CollabSessionController houdt tabelrijen bewust buiten het sync-oppervlak, samen met annotaties en het zegel. Een nieuwe dia reist compleet mee. Een wijziging in een cel van een bestaande dia niet. De editor waarschuwt; de wijziging komt niet aan. De andere deelnemer kan de oude cel exporteren. docs/KNOWN_LIMITATIONS.md noemt dit als v1-grens.

Bestandsformaat

Geen wijziging aan de .md. De tabel blijft een gewone Markdown-tabel. De operatie leeft alleen in de sessie.

Oplossingsrichting

Aanbeveling: bouwen, als slot en niet als cel-CRDT.

Eén schrijver tegelijk op de tabel. Bij het loslaten gaat de hele tabel als één operatie over het bestaande versleutelde kanaal. Een misvormde operatie wordt geweigerd, zoals de andere operaties. Valt de schrijver weg vóór het loslaten, dan blijft de lokale tabel staan en is er een conflict: geen stille samenvoeging van cellen. De waarschuwing blijft tot het slot er is.

Niet: de hele tabel bij elke toetsaanslag vervangen. Niet: een nieuw kanaal of een server.

Afweging

  • Privacy: een redactie die de ander niet bereikt, lekt als die ander exporteert.
  • Stabiliteit: een slot voorkomt de overschrijving waar de v1-grens voor bestond.
  • Informatiebeveiliging: dezelfde fail-closed operaties, geen extra crypto.
  • Soevereiniteit: het bestaande kanaal, niets nieuws naar buiten.
  • Gebruik: de waarschuwing wordt een slot in plaats van een dode mededeling.
  • Toegankelijkheid: het slot heeft een naam en een status, niet alleen een kleur.
## Wat je wilt bereiken Een correctie in een tabelcel, ook het weghalen van een persoonsgegeven, komt bij de andere deelnemer aan, zonder dat twee mensen in verschillende cellen elkaars werk stil overschrijven. ## Wat er nu mist `SlideField` in `lib/collab/deck_op.dart` synchroniseert de opmaak van de tabel (`tableEditable`, kolomuitlijning) maar niet de rijen. `CollabSessionController` houdt tabelrijen bewust buiten het sync-oppervlak, samen met annotaties en het zegel. Een nieuwe dia reist compleet mee. Een wijziging in een cel van een bestaande dia niet. De editor waarschuwt; de wijziging komt niet aan. De andere deelnemer kan de oude cel exporteren. `docs/KNOWN_LIMITATIONS.md` noemt dit als v1-grens. ## Bestandsformaat Geen wijziging aan de `.md`. De tabel blijft een gewone Markdown-tabel. De operatie leeft alleen in de sessie. ## Oplossingsrichting Aanbeveling: bouwen, als slot en niet als cel-CRDT. Eén schrijver tegelijk op de tabel. Bij het loslaten gaat de hele tabel als één operatie over het bestaande versleutelde kanaal. Een misvormde operatie wordt geweigerd, zoals de andere operaties. Valt de schrijver weg vóór het loslaten, dan blijft de lokale tabel staan en is er een conflict: geen stille samenvoeging van cellen. De waarschuwing blijft tot het slot er is. Niet: de hele tabel bij elke toetsaanslag vervangen. Niet: een nieuw kanaal of een server. ## Afweging - Privacy: een redactie die de ander niet bereikt, lekt als die ander exporteert. - Stabiliteit: een slot voorkomt de overschrijving waar de v1-grens voor bestond. - Informatiebeveiliging: dezelfde fail-closed operaties, geen extra crypto. - Soevereiniteit: het bestaande kanaal, niets nieuws naar buiten. - Gebruik: de waarschuwing wordt een slot in plaats van een dode mededeling. - Toegankelijkheid: het slot heeft een naam en een status, niet alleen een kleur.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2749
No description provided.