#87 — Bug: Multi-line-Paste-Bestätigungsdialog erscheint nicht #87
Labels
No labels
priority/could
priority/must
priority/should
priority/wont
status/blocked
status/claimed
status/done-migrated
type/bug
type/feature
type/infra
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/todo#87
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?
Bug: Multi-line-Paste-Bestätigungsdialog erscheint nicht
As a list member,
I want to beim Einfügen von mehrzeiligem Text in ein leeres Eingabefeld gefragt werden, ob daraus mehrere Todos
angelegt werden sollen,
so that ich nicht jede Zeile einzeln einfügen muss und keine Zeilenumbrüche unbeabsichtigt durch Leerzeichen
ersetzt werden.
Status: Dieses Verhalten wurde bereits als Story
#52"Multi-line paste → split confirmation" umgesetzt undlaut
docs/roadmap.mdam 2026-07-19 ausgeliefert (ReactUi/src/components/TodoInput.tsx:44-51,MultilinePasteConfirmDialog.tsx). Der Nutzer bestätigt jedoch, dass der Dialog in der aktuell von ihm genutztenVersion nicht erscheint — mehrzeiliger Text wird stattdessen wie vor
#52als ein einzelnes Todo mit durchLeerzeichen ersetzten Zeilenumbrüchen angelegt. Damit gilt dies als Bug, nicht als neue Feature-Anfrage.
Repro (vom Nutzer bestätigt):
Acceptance criteria:
Deployment/Branch, der
TodoInput.tsx's Paste-Abfang tatsächlich enthält?Bestätigungsdialog, wie ursprünglich in
#52spezifiziert.#52(TodoInput.test.tsx) bleiben grün; Regressionstest für das genau hier gemeldeteSzenario ergänzt.
Root Cause (gefunden 2026-08-07): Es gab bereits einen früheren, außerhalb des normalen Story-Prozesses
gelandeten Fix-Versuch (Commit
b31a5fb, 2026-07-25, "fix: use textarea for todo input so multi-line paste workson mobile") —
<input type="text">wurde durch<textarea rows={1}>ersetzt, weil<input>Zeilenumbrücheschon vor dem
paste-Event entfernt. Dieser Fix war nötig, aber nicht ausreichend: Der kompletteSplit-Mechanismus hing weiterhin ausschließlich am
onPaste-Handler und dessene.clipboardData.getData('text')— auf manchen mobilen Browsern (Clipboard-Vorschlagsleiste über der Tastatur, bestimmte IME-/OS-Einfügewege)
landet eingefügter Text jedoch direkt im Feldwert, ohne dass überhaupt ein klassisches
paste-DOM-Event mitnutzbaren
clipboardDataausgelöst wird. In diesem Fall liefhandlePastenie, der native Einfüge-Wert blieb imTextfeld stehen, und beim Absenden normalisiert das Backend (
TodoTitle-Value-Object) die Zeilenumbrüche imTitel zu Leerzeichen — exakt das gemeldete Symptom.
Fix: Zusätzlicher
onChange-Fallback inTodoInput.tsx: Springt der Feldwert von leer auf ≥2 nicht-leereZeilen in einem einzigen Change (nur durch eine Masseneinfügung möglich, nicht durch normales Tippen), wird
derselbe Bestätigungsdialog geöffnet wie beim direkt abgefangenen
paste-Event — unabhängig davon, ob und wieder Text ins Feld gelangt ist. Deckt sowohl "clipboardData leer/nicht verfügbar" als auch "gar kein paste-Event
gefeuert" gleichermaßen ab, ohne dass die genaue mobile Ursache auf dem konkreten Gerät reproduziert werden
musste.
Out of scope for this story:
#52— falls dasgewünscht ist, ist das eine separate, neue Story, kein Bugfix).
Umgebung (bestätigt, 2026-08-07): Getestet auf der aktuellen Live-Version der App, auf dem Handy (nicht
lokal/Desktop). Das schränkt die Hypothesen ein: eine veraltete Deployment-Version scheidet als Ursache aus (es
ist die Live-Version); übrig bleiben vor allem der Mobile/Touch-Pfad von
clipboardDatabzw. eine Regression,die speziell auf dem echten Mobilbrowser auftritt und in der Desktop-Emulation nicht sichtbar war — deckt sich
mit der in
#52/#96bereits mehrfach dokumentierten Lücke "auf echtem Mobilgerät nie verifiziert".