feat(collab): deck-diff naar ops — de editor→op-brug (increment 3a van #996) #1000
No reviewers
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!1000
Loading…
Reference in a new issue
No description provided.
Delete branch "collab/inc3-editor-op-bridge"
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?
Increment 3a van #996: de editor→op-brug (COLLABORATION.md §5.1) — de onderspecificeerde kern die increment 2 aankondigde.
De editor vervangt bij elke bewerking het hele
Deck, maar de laag synct veld-ops (P5).deckDiffToOps(before, after)rekent een deck-brede bewerking terug naar precies de ops dieafterreproduceren: veld-edits (op slide-id), dan verwijderingen, invoegingen (die de hele nieuwe slide meedragen) en herordeningen die het resultaat in de doelvolgorde sorteren. Correct voor élke before→after, niet alleen een enkele actie; exact voor het syncbareSlideField/DeckMetaField-oppervlak en laat al het overige (tabelrijen, annotaties, het zegel) met opzet ongemoeid, net als het op-model. Levert ook de lees-tegenhangersslideFieldValue/deckMetaValuevan de setters inapplyOp.Getest met de sterkste toets — na het toepassen van de diff is een nieuwe diff leeg, dus
afteris op het hele syncbare oppervlak gereproduceerd — over enkele edits, lijstvelden, invoegen/verwijderen/herordenen, een gecombineerde bewerking en een volledige vervanging.make checkgroen (dekking 87,4%, 742 bestanden). Volgende stap: de provider die dit bij een lokale bewerking aanroept en de sessie voedt (met de mergeapplyOps(local, diff(local, session))die niet-syncbare velden behoudt), en de echo-lus-guard (increment 3b).