fix(callouts): de dialoog rekende vanaf een verouderde kopie (#1848) #1865
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!1865
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/1848-dialoog-verouderde-kopie"
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?
Uit de nieuwkomer-test van #1848 — en het is een gat in de reparatie van gisteren (#1858).
Wat er misging
CalloutEditorDialogkrijgt de dia mee bij het openen en wordt daarna niet opnieuw opgebouwd. Elke bewerking rekende dus vanaf díe begintoestand. Wie twee verwijzingen achter elkaar maakte zonder de dialoog te sluiten, hield er één over:De tweede bewerking schreef de regels terug zoals ze bij het openen wáren. Callout
Ableef bestaan maar raakte los van zijn regel — en de lijst koppelt op precies die letter, dus die regel toonde weer "Toevoegen" in plaats van een badge met kruisje. De herstelpoging maakte het erger: nóg een verwijzing maken verving de vólgende letter. Verwijderen liet om dezelfde reden de letter in de zin staan, zodat de zin naar niets verwees.De nieuwkomer eindigde zo met vijf markeringen op de afbeelding waarvan er één aan een regel hing, en de andere vier niet meer weg te krijgen waren.
De reparatie
De dialoog houdt de regels nu zelf bij (
_bullets), net zoals hij dat al met_calloutsdeed; de dia buiten krijgt ze via_emit. Daarmee is de stand van de dialoog de waarheid zolang hij openstaat.Bijvangst: de lijst laat een nieuwe verwijzing meteen als badge zien in plaats van pas na sluiten en heropenen.
Test plan
make checkgroenmake check-secretsgroen ·make sastgroen (0 bevindingen)['Eerste punt', 'Tweede punt (B)']De bestaande toets uit #1858 bouwde de dialoog tussen twee bewerkingen opnieuw op en zag dit daarom niet. Die blijft staan (hij dekt de andere volgorde), met deze ernaast.
Bewaker
Geen bestandsformaat, geen opslag, geen afhankelijkheid, geen uitgaand verkeer, geen publieke belofte. Dit is een toestandsfout in één dialoog.
Raakvlak met ander werk
#1859, #1863 en #1864 gaan over hetzelfde scherm (indeling, cursor in het beschrijvingsveld, "Target verwijderen"). Geen van die drie raakt
_bulletsof_emit, dus dit zou er niet mee moeten botsen — maar wie daaraan begint, doet dat het best ná deze merge.🤖 Generated with Claude Code