Samenwerken stap 2: Fase 0 — de transportloze samenwerklaag #975
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#975
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
De kern van COLLABORATION.md (§5, §10 Fase 0): co-auteurschap als getypte operaties op het Deck-model, zonder netwerk en zonder dependency — volledig unit-testbaar tegen een LoopbackTransport.
Vijf PR-formaat stappen, langs de bestandsindeling uit §11:
Invarianten die elke stap moet bewaken: P2 (bestand = waarheid), P3 (één authority), P5 (model, niet Markdown), §5.5 (slide-ids zijn sessiegebonden; nooit mid-sessie herparsen). Besluit op open vraag 2: field-level ops volstaan voor v1 — de soft-locks maken dat afdoende.
Kan parallel aan stap 1 (geen bestandsoverlap met lib/meetings/).
Dit wordt de nieuwe stap 0 van het samenwerktraject (was stap 2). De vergaderadapters (#973/#974/#979) zijn afgewezen per #985; de transportloze samenwerklaag — co-auteuren van een deck als getypte operaties op het Deck-model, LoopbackTransport, geen netwerk — is de kern van 'samenwerken' en is niet afgewezen. Eerste PR: lib/collab/deck_op.dart (de sealed DeckOp-hiërarchie + applyOp, met tests).
Gemergd naar main via PR #988 (
20000a6e36). De transportloze samenwerklaag staat: het getypte operatiemodel (DeckOp + applyOp, fail-closed), het CollabTransport-contract met een LoopbackHub, en de autoriteit-statemachine met lock-tabel — puur Dart, geen netwerk, volledig getest over de loopback, bereikbaar via de TabInfo-seam (§5.7).Bewust als vervolg (in de code en de PR gemarkeerd, niet stil weggelaten): de optimistische lokale bewerking onder een lock (§5.4), owner-drop-handover (§5.3), snapshot-herbasering voor laatkomers (§5.2), de nullable/clear-flag-velden, en de Riverpod-provider + app_shell-override (die horen bij de fase waarin er een echte sessie ís). Het netwerk zelf loopt via #976 (ketenkeuring matrix-SDK) → #977 (Fase 1 Matrix) → #978 (Fase 2).