AGB

eides erledigt. (1) Rücknahme-Aktionen „Ausgabe zurücknehmen" sitzt an der Übergabezeile in „Geht raus" — an genau der Zeile, auf der man eben zu früh geklickt hat. „Rückgabe zurücknehmen" sitzt am Verlauf im Buchungsdetail, direkt neben dem Eintrag, den es korrigiert. Die Bestätigungsabfrage ist eine aufklappbare Zeile statt eines confirm() — dasselbe Muster wie Ablehnen und Stornieren, ohne JavaScript, und die Folge steht ausgeschrieben („Die Ausgabe gilt dann als nicht erfolgt, der Zeitstempel wird gelöscht") statt hinter einem nackten „Sind Sie sicher?". Beide laufen über setzeStatus → payload.update und damit durch den bestehenden Wächter — hier steht kein zweiter Code, die Aktionen tragen nur Beschriftung und Ziel bei. Ein neuer Unit-Test hält Oberfläche und Wächter deckungsgleich: jede Aktion, die aktionenFuer anbietet, muss wechselErlaubt auch zulassen. Zwei Layout-Korrekturen nach dem Blick in den Browser: der Rückfrage-Knopf spannte sich auf die Breite des Erklärtexts, und „Ja, zurücknehmen" wirkte im Verlauf wie eine Hauptaktion. (2) PR B ist offen PR #23 gegen main, mergebar, 28 Dateien. Da #22 um 16:56 gemergt wurde, konnte ich sauber auf das neue main rebasen — der PR enthält nur noch seine eigenen zwei Commits, kein Durchscheinen von PR A. Abnahme: typecheck 0 · lint 13 Warnungen (unverändert) · build grün · Vitest 600 · Playwright 129 + 1 vorbestehendes fixme · Projektion ohne Drift · keine neuen Migrationen. Ein Testfehler unterwegs war meiner, nicht des Codes: Ein Nachbartest prüfte „aus Zurück kein Stornieren", nachdem der vorherige Test die Buchung bereits zurückgesetzt hatte. Die Prüfung steht jetzt selbsttragend im selben Test, statt sich auf die Reihenfolge zu verlassen. Die Dev-Notiz im Second Brain ist auf beide PRs nachgezogen.