Document: Cmd+S laat eerder verwijderde offertetekst terugkeren #2474
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2474
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?
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:
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
Opgepakt. Tak: codex/document-save-resurrection. Verwachte reikwijdte: document-save, bronpatcher en regressietests.