CluPilotCloud/app
nexxo 0475aad7b0 Fix-Runde 1: das Zeitfenster gilt nur, wo auch gedrosselt wird
Eine zeitliche Grenze hebelt --tries nicht bloss fuer Rueckstellungen aus,
sondern ganz: Worker::markJobAsFailedIfWillExceedMaxAttempts prueft die
Versuchszahl ausdruecklich nur if (! $job->retryUntil()). Damit galten die drei
Versuche seit dem Takt NIRGENDS mehr — auch nicht auf der Direktspur und auch
nicht bei ausgeschaltetem Notschalter.

Eine Mail, die aus echtem Grund wirft (SMTP tot, PDF-Rendern kippt), wurde
dadurch sechs Stunden lang wiederholt statt nach drei Versuchen abgelegt, und
ohne Pause, weil der Arbeiter ohne --backoff laeuft. Ihr Fehler stand sechs
Stunden lang nicht in failed_jobs, und auf der Direktspur haette eine einzige
giftige Mail sechs Stunden lang die Kennwort-Zuruecksetzungen blockiert, sobald
Aufgabe 4 den Arbeiter in Prioritaetsreihenfolge lesen laesst.

retryUntil() haengt jetzt an derselben Bedingung wie die Drossel, beide lesen
gedrosselteSpur(). Vorher wird die Elternklasse gefragt: SendQueuedMailable
reicht an die Mailklasse weiter, und die Ueberschreibung nahm das still weg.

Dazu zwei kleinere Punkte aus derselben Durchsicht: der Kopfkommentar behauptete
weiter, eine middleware() auf der Mailklasse lese niemand — widerlegt am
Vendor-Code, jetzt steht der echte Grund dort. Und (int) Settings::get() ergab
auch ohne eingetipptes 0 eine Null (gespeicherte null, nichtnumerischer Wert);
eine Untergrenze steht jetzt an der Lesestelle, an der der Verlust passiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 16:55:50 +02:00
..
Actions ApplyPlanChange lehnt Wechsel auf interne Pakete ab statt sie ewig zu parken 2026-08-01 19:08:55 +02:00
Console Interne Pakete gehören nicht nach Stripe 2026-08-01 18:31:37 +02:00
Exceptions Refuse the sale instead of reaching Stripe without a key 2026-07-30 11:58:01 +02:00
Http Nicht mehr damit werben, in welcher Sprache wir antworten 2026-08-02 00:17:36 +02:00
Jobs Fix-Runde 1: das Zeitfenster gilt nur, wo auch gedrosselt wird 2026-08-03 16:55:50 +02:00
Listeners Keep a register of what was sent, and answer the customer from here 2026-07-29 21:02:36 +02:00
Livewire Sperren sehen und aufheben: Portalseite fuer den Inhaber, Abschnitte in der Konsole 2026-08-03 15:53:24 +02:00
Mail Sperren sehen und aufheben: Portalseite fuer den Inhaber, Abschnitte in der Konsole 2026-08-03 15:53:24 +02:00
Models Gesperrte Adressen: Datensatz, Verdopplung und die Liste, die nie gesperrt wird 2026-08-03 13:16:11 +02:00
Notifications Wegwahl je Mailart: welche Mail aus welchem Postfach geht 2026-08-03 12:43:31 +02:00
Observers Say the same thing to the customer, the register and the bank 2026-07-30 01:30:24 +02:00
Policies Move the console's identity out of the customer table 2026-07-28 10:31:43 +02:00
Providers Fix-Runde 1: das Zeitfenster gilt nur, wo auch gedrosselt wird 2026-08-03 16:55:50 +02:00
Provisioning Fix-Runde 2: ein werfender Gast reisst den Lauf nicht mehr mit 2026-08-03 14:15:36 +02:00
Services Drei Spuren, und welche Mail in welche gehoert 2026-08-03 15:31:31 +02:00
Support Sperren sehen und aufheben: Portalseite fuer den Inhaber, Abschnitte in der Konsole 2026-08-03 15:53:24 +02:00