- Shipped
- 7. August 2026 um 00:57 UTC
- Author
- Kamo
- Commit
- daa0d52
Zwei Verhaltensfehler im Phase-8-Benachrichtigungspfad. 1. Der Erinnerungs-Sweep lief über OPEN_STATES, der AWAITING_OTHERS enthält "Dieses Mitglied fertig; andere Unterzeichner haben es nicht". Das Mitglied schuldet nichts, aber Finish räumt nie dueAt, so dass die Zeile hält passend zum Sweep Prädikat für immer. Ein Mitglied, das ON TIME unterzeichnet hat, erhielt den Abschlussquittung ("ist komplett. Danke".) und dann "Vervollständige dein Paket - 7 Tage überfällig", dann 14, dann 21, alle sieben Tage bis zur Gegenpartei unterzeichnet, weil past-due-max-periods:0 bedeutet UNLIMITED. Nichts, was sie tun könnten, würde es aufhalten: der Zauberer hat nichts mehr, um sie zu zeigen. Der Sweep liest jetzt REMINDABLE_STATES - PENDING und IN_PROGRESS. OPEN_STATES bleibt korrekt überall sonst wird es verwendet (Badge-Zählung, Lieferung, nichtig, redelivery): die fragen "ist diese Reihe noch lebende Arbeit", fragt eine Erinnerung "macht DIESES MEMBER schuldet noch eine Klage". Gefiltert im Prädikat, so ein Unerbittliche Reihe wird nie gelesen. 2. PaketTitle wurde bedingungslos HTML-entscapeed, und EmailTemplateService macht das Thema und den Körper aus der gleichen Karte, so "Mitarbeiter-Handbuch" versandt als "Mitarbeiter's Handbook" in einem Subject-Header. Der Rekorder jetzt liefert auch PaketTitlePlain für die vier kanonischen Themen: unentdeckt, und CR/LF-stripped, da ein Thema der eine ist der eine Punkt, an dem ein Titel einen Header erreicht und eine neue Linie gibt es Header-Injektion. Auch Dokumente, dass LegalMemberLink absichtlich auf einen aktiven Rückfall zurückfällt ungeprüfte Domain statt Überspringen - der javadoc argumentierte das Gegenteil von was der Code tut. DocsService 379/0 (war 374): +5 Regressionstests.