Samenwerken: een tabelbewerking bereikt de ander niet, en nergens staat dat #1809

Closed
opened 2026-08-27 13:23:58 +00:00 by brenno · 0 comments
Owner

Wat er misgaat

Bewerkt iemand een cel in een tabeldia terwijl er wordt samengewerkt, dan komt
die bewerking niet bij de ander aan. tableRows staat niet in SlideField, en
deckDiffToOps loopt uitsluitend over die enum.

Anders dan de meeste gevallen uit #1803 is dit een bewuste grens — de
doc-comment bovenaan collab_deck_diff.dart zegt dat de diff "leaves everything
outside that surface (table rows, annotations, the seal) alone" — maar die keuze
staat alleen in de broncode.

Waar het wringt

  1. Nergens staat het voor de gebruiker. docs/KNOWN_LIMITATIONS.md noemt het
    niet, docs/USER_GUIDE.md niet, en de interface waarschuwt niet. Wie met z'n
    tweeën aan een tabel zit — een bevindingenlijst, een scope-matrix, een
    checklist — ziet het scherm van de ander gewoon niet meebewegen en heeft geen
    manier om te weten dat dat de bedoeling is. Bij opslaan wint er willekeurig
    één.

  2. Het raakt veel meer dan "een tabel". tableRows draagt de inhoud van élk
    tabelgedragen slidetype: table, checklist, scopeMatrix, scorecard,
    controlStatus, matrix, gantt. Dat is een groot deel van de
    rapportage- en procesverbeteringsmodules, en juist het soort dia waar mensen
    samen aan werken.

  3. Een stille grens is geen grens maar een verrassing. De rest van de dia
    synchroniseert wél, dus het gedrag is inconsistent binnen één scherm: de titel
    die je typt komt over, de cel ernaast niet.

Voorstel, in volgorde van wat het snelst helpt

  1. Nu documenteren. Een regel in KNOWN_LIMITATIONS.md en in het
    samenwerkgedeelte van USER_GUIDE.md, plus — dat is de eigenlijke reparatie
    voor vandaag — een zichtbare melding in de interface zodra een tabeldia wordt
    bewerkt in een sessie met meer dan één deelnemer. Fail-loud in plaats van
    fail-silent.
  2. Daarna wegen of de grens moet blijven. Celbewerkingen synchroniseren
    vraagt om een fijnere operatie dan "vervang de hele lijst regels" — twee
    mensen in verschillende cellen van dezelfde tabel horen elkaar niet te
    overschrijven. Dat is echt ontwerpwerk (COLLABORATION.md §5.4 noemt een
    dia-slot als het einddoel) en geen regel erbij.

Punt 1 is klein en kan los. Punt 2 is een ontwerpronde waard.

Herkomst

Gevonden bij #1803, toen de nieuwe pariteitspoort de hele synchroniseerbare
oppervlakte in kaart bracht. tableRows staat daar als bewuste uitsluiting
vastgelegd, mét de reden — maar de vraag of die uitsluiting nog steeds de goede
is, en of de gebruiker het hoort te weten, staat los.

**Wat er misgaat** Bewerkt iemand een cel in een tabeldia terwijl er wordt samengewerkt, dan komt die bewerking niet bij de ander aan. `tableRows` staat niet in `SlideField`, en `deckDiffToOps` loopt uitsluitend over die enum. Anders dan de meeste gevallen uit #1803 is dit **een bewuste grens** — de doc-comment bovenaan `collab_deck_diff.dart` zegt dat de diff "leaves everything outside that surface (table rows, annotations, the seal) alone" — maar die keuze staat alleen in de broncode. **Waar het wringt** 1. **Nergens staat het voor de gebruiker.** `docs/KNOWN_LIMITATIONS.md` noemt het niet, `docs/USER_GUIDE.md` niet, en de interface waarschuwt niet. Wie met z'n tweeën aan een tabel zit — een bevindingenlijst, een scope-matrix, een checklist — ziet het scherm van de ander gewoon niet meebewegen en heeft geen manier om te weten dat dat de bedoeling is. Bij opslaan wint er willekeurig één. 2. **Het raakt veel meer dan "een tabel".** `tableRows` draagt de inhoud van élk tabelgedragen slidetype: `table`, `checklist`, `scopeMatrix`, `scorecard`, `controlStatus`, `matrix`, `gantt`. Dat is een groot deel van de rapportage- en procesverbeteringsmodules, en juist het soort dia waar mensen samen aan werken. 3. **Een stille grens is geen grens maar een verrassing.** De rest van de dia synchroniseert wél, dus het gedrag is inconsistent binnen één scherm: de titel die je typt komt over, de cel ernaast niet. **Voorstel, in volgorde van wat het snelst helpt** 1. **Nu documenteren.** Een regel in `KNOWN_LIMITATIONS.md` en in het samenwerkgedeelte van `USER_GUIDE.md`, plus — dat is de eigenlijke reparatie voor vandaag — een zichtbare melding in de interface zodra een tabeldia wordt bewerkt in een sessie met meer dan één deelnemer. Fail-loud in plaats van fail-silent. 2. **Daarna wegen of de grens moet blijven.** Celbewerkingen synchroniseren vraagt om een fijnere operatie dan "vervang de hele lijst regels" — twee mensen in verschillende cellen van dezelfde tabel horen elkaar niet te overschrijven. Dat is echt ontwerpwerk (`COLLABORATION.md` §5.4 noemt een dia-slot als het einddoel) en geen regel erbij. Punt 1 is klein en kan los. Punt 2 is een ontwerpronde waard. **Herkomst** Gevonden bij #1803, toen de nieuwe pariteitspoort de hele synchroniseerbare oppervlakte in kaart bracht. `tableRows` staat daar als bewuste uitsluiting vastgelegd, mét de reden — maar de vraag of die uitsluiting nog steeds de goede is, en of de gebruiker het hoort te weten, staat los.
brenno 2026-08-27 20:29:22 +00:00
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#1809
No description provided.