fix(document): voorkom terugkeer van verwijderde tekst bij Opslaan (#2474) #2479

Merged
brenno merged 2 commits from codex/document-save-resurrection into main 2026-10-19 18:26:16 +00:00
Owner

Probleem en oorzaak

Bij Cmd+S kon eerder verwijderde gewone tekst terugkeren. De visuele editor voegt een zacht afgebroken Markdown-alinea samen tot één regel. De bronpatcher vond daardoor geen overeenkomst voor de gewijzigde alinea en voegde de nieuwe tekst toe terwijl de oude bronregels bleven staan. Dit is geen klembordactie.

Oplossing

  • Vervang bij een gewijzigde, niet direct te koppelen alinea het oorspronkelijke brongebied tussen de dichtstbijzijnde gekoppelde regels.
  • Controleer vóór het wegschrijven of de gepatchte bron na dezelfde editorconversie gelijk is aan de zichtbare tekst. Is de koppeling dubbelzinnig, dan wordt de zichtbare editorinhoud opgeslagen zodat verwijderde tekst niet terugkeert.
  • Behoud de oorspronkelijke Markdown-opmaak waar de koppeling eenduidig is. In het dubbelzinnige geval krijgt inhoudsbehoud voorrang op byte-identieke opmaak; de editorconversie kan daar witruimte normaliseren. Als een toekomstige patcher deze gevallen eenduidig kan mappen, kan die terugval verdwijnen.

Bewijs

  • De regressietest voor verwijderde lopende tekst was rood vóór de wijziging: oude én nieuwe alinea stonden na het patchen in de bron.
  • Gerichte tests van bronpatching en echt opslaan zijn groen, inclusief schijfbestand en editorstatus.
  • make check-full groen op PR-head c80ea57c5bc60283c39639c47acc70cc102472ff: 14.048 app-tests, 1.238 pakkettests, pakketdekking, beeldvergelijkingen, beveiligingsscan, webbouw en overige uitgebreide controles geslaagd.
  • Op deze PR-head zijn geen automatische PR-workflows aangemaakt; de macOS-controle na merge wordt gevolgd tot een eindstatus.

Closes #2474

## Probleem en oorzaak Bij Cmd+S kon eerder verwijderde gewone tekst terugkeren. De visuele editor voegt een zacht afgebroken Markdown-alinea samen tot één regel. De bronpatcher vond daardoor geen overeenkomst voor de gewijzigde alinea en voegde de nieuwe tekst toe terwijl de oude bronregels bleven staan. Dit is geen klembordactie. ## Oplossing - Vervang bij een gewijzigde, niet direct te koppelen alinea het oorspronkelijke brongebied tussen de dichtstbijzijnde gekoppelde regels. - Controleer vóór het wegschrijven of de gepatchte bron na dezelfde editorconversie gelijk is aan de zichtbare tekst. Is de koppeling dubbelzinnig, dan wordt de zichtbare editorinhoud opgeslagen zodat verwijderde tekst niet terugkeert. - Behoud de oorspronkelijke Markdown-opmaak waar de koppeling eenduidig is. In het dubbelzinnige geval krijgt inhoudsbehoud voorrang op byte-identieke opmaak; de editorconversie kan daar witruimte normaliseren. Als een toekomstige patcher deze gevallen eenduidig kan mappen, kan die terugval verdwijnen. ## Bewijs - De regressietest voor verwijderde lopende tekst was rood vóór de wijziging: oude én nieuwe alinea stonden na het patchen in de bron. - Gerichte tests van bronpatching en echt opslaan zijn groen, inclusief schijfbestand en editorstatus. - `make check-full` groen op PR-head `c80ea57c5bc60283c39639c47acc70cc102472ff`: 14.048 app-tests, 1.238 pakkettests, pakketdekking, beeldvergelijkingen, beveiligingsscan, webbouw en overige uitgebreide controles geslaagd. - Op deze PR-head zijn geen automatische PR-workflows aangemaakt; de macOS-controle na merge wordt gevolgd tot een eindstatus. Closes #2474
brenno force-pushed codex/document-save-resurrection from 44fb38fdf8 to 2f7e099c3d 2026-10-19 16:05:28 +00:00 Compare
brenno force-pushed codex/document-save-resurrection from 2f7e099c3d to c80ea57c5b 2026-10-19 18:26:02 +00:00 Compare
brenno merged commit 92952c852f into main 2026-10-19 18:26:16 +00:00
Sign in to join this conversation.
No description provided.