Document: Cmd+S laat eerder verwijderde offertetekst terugkeren #2474

Closed
opened 2026-10-19 14:17:43 +00:00 by brenno · 1 comment
Owner

Gemeld gedrag

Bij het opslaan van een offerte met Cmd+S verschijnt opnieuw tekst in het document die eerder uit diezelfde offerte was verwijderd. Het lijkt op plakken, maar de gebruiker bevestigt dat het niet de inhoud van het klembord is. Dit raakt de betrouwbaarheid van documentinhoud: een verwijderde passage mag niet opnieuw in een te verzenden offerte belanden.

Reproductie die moet worden vastgelegd

Open een opgeslagen document in Visueel, verwijder een herkenbare bestaande passage en druk Cmd+S. Leg vast:

  1. bron en zichtbare tekst direct vóór Cmd+S;
  2. bron en zichtbare tekst direct erna;
  3. inhoud van het bestand op schijf en na heropenen;
  4. of de passage eerder in hetzelfde document voorkwam, en of zij nabij tabellen/koppen/lijsten stond.
    Herhaal in Bron en met menu Opslaan om het sneltoetspad van de opslagpatch te onderscheiden. Gebruik een kopie van de offerte of een geredigeerde fixture; wijzig de gebruikersofferte niet tijdens diagnose.

Onderzoeksspoor op origin/main (23a9e9866)

De Cmd+S-binding in lib/widgets/parts/document_editor_layouts.dart (_withDocumentShortcuts) roept onSave aan; Cmd+V heeft een afzonderlijke binding. In Visueel gebruikt saveDocumentWithDestination de speciale _patchVisualSave-route (lib/widgets/shell/document_save_actions.dart:46-60, 179-203): verschil tussen de Quill-roundtrip-baseline en huidige documentbron wordt op de oorspronkelijk opgeslagen Markdown toegepast via patchVisualEdits (lib/utils/source_patcher.dart). Na schrijven kan notifier.replaceSource de opgeslagen tekst direct weer in de editor laden (document_save_actions.dart:93-110). Dat past bij het tijdstip van het symptoom, maar de concrete oorzaak en de rol van de patcher zijn nog niet bewezen. Een eenvoudige losse-regel-verwijdering met de patcher reproduceerde het niet. Controleer ook een nog lopende asynchrone invoegactie en de bron/visuele synchronisatie; schrijf geen fix op basis van één hypothese.

Eerdere #1613 en #2142 repareerden andere opslagcorruptie (roundtrip-drift en frontmatterduplicatie). Dit nieuwe symptoom betreft terugkerende verwijderde inhoud en vraagt een eigen regressietest.

Oplossing en acceptatie

  • Maak eerst een minimale rood wordende test met de daadwerkelijke documentstructuur: bewerken in Visueel, passage verwijderen, Cmd+S, bron vergelijken, heropenen. Neem herhaalde zinnen/regels en een tabel in de fixture op als dat voor reproductie nodig blijkt.
  • Opslaan mag geen editorbewerking toevoegen: dezelfde inhoud staat vóór en na Cmd+S in het werkvlak, in de notifier en op schijf, afgezien van expliciet bedoelde assetpad-omzetting.
  • Een verwijderde passage blijft weg na één en na twee opeenvolgende saves, na standwissel en na heropenen; andere tekst blijft bytegetrouw.
  • Als de samenvoeging de bewerking niet veilig kan plaatsen, meld een conflict of blokkeer de opslag; zet nooit stil oude inhoud terug.
  • Test dat Cmd+S geen plakactie triggert en dat de klembordinhoud geen invloed heeft op de uitkomst.
## Gemeld gedrag Bij het opslaan van een offerte met **Cmd+S** verschijnt opnieuw tekst in het document die eerder uit diezelfde offerte was verwijderd. Het lijkt op plakken, maar de gebruiker bevestigt dat het niet de inhoud van het klembord is. Dit raakt de betrouwbaarheid van documentinhoud: een verwijderde passage mag niet opnieuw in een te verzenden offerte belanden. ## Reproductie die moet worden vastgelegd Open een opgeslagen document in Visueel, verwijder een herkenbare bestaande passage en druk Cmd+S. Leg vast: 1. bron en zichtbare tekst direct vóór Cmd+S; 2. bron en zichtbare tekst direct erna; 3. inhoud van het bestand op schijf en na heropenen; 4. of de passage eerder in hetzelfde document voorkwam, en of zij nabij tabellen/koppen/lijsten stond. Herhaal in Bron en met menu Opslaan om het sneltoetspad van de opslagpatch te onderscheiden. Gebruik een kopie van de offerte of een geredigeerde fixture; wijzig de gebruikersofferte niet tijdens diagnose. ## Onderzoeksspoor op origin/main (23a9e9866) De Cmd+S-binding in lib/widgets/parts/document_editor_layouts.dart (_withDocumentShortcuts) roept onSave aan; Cmd+V heeft een afzonderlijke binding. In Visueel gebruikt saveDocumentWithDestination de speciale _patchVisualSave-route (lib/widgets/shell/document_save_actions.dart:46-60, 179-203): verschil tussen de Quill-roundtrip-baseline en huidige documentbron wordt op de oorspronkelijk opgeslagen Markdown toegepast via patchVisualEdits (lib/utils/source_patcher.dart). Na schrijven kan notifier.replaceSource de opgeslagen tekst direct weer in de editor laden (document_save_actions.dart:93-110). Dat past bij het tijdstip van het symptoom, maar de concrete oorzaak en de rol van de patcher zijn **nog niet bewezen**. Een eenvoudige losse-regel-verwijdering met de patcher reproduceerde het niet. Controleer ook een nog lopende asynchrone invoegactie en de bron/visuele synchronisatie; schrijf geen fix op basis van één hypothese. Eerdere #1613 en #2142 repareerden andere opslagcorruptie (roundtrip-drift en frontmatterduplicatie). Dit nieuwe symptoom betreft terugkerende verwijderde inhoud en vraagt een eigen regressietest. ## Oplossing en acceptatie - Maak eerst een minimale rood wordende test met de daadwerkelijke documentstructuur: bewerken in Visueel, passage verwijderen, Cmd+S, bron vergelijken, heropenen. Neem herhaalde zinnen/regels en een tabel in de fixture op als dat voor reproductie nodig blijkt. - Opslaan mag geen editorbewerking toevoegen: dezelfde inhoud staat vóór en na Cmd+S in het werkvlak, in de notifier en op schijf, afgezien van expliciet bedoelde assetpad-omzetting. - Een verwijderde passage blijft weg na één en na twee opeenvolgende saves, na standwissel en na heropenen; andere tekst blijft bytegetrouw. - Als de samenvoeging de bewerking niet veilig kan plaatsen, meld een conflict of blokkeer de opslag; zet nooit stil oude inhoud terug. - Test dat Cmd+S geen plakactie triggert en dat de klembordinhoud geen invloed heeft op de uitkomst.
Author
Owner

Opgepakt. Tak: codex/document-save-resurrection. Verwachte reikwijdte: document-save, bronpatcher en regressietests.

Opgepakt. Tak: codex/document-save-resurrection. Verwachte reikwijdte: document-save, bronpatcher en regressietests.
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#2474
No description provided.