aYOUne

Changelog

Was sich verändert hat — gruppiert nach Release, filterbar nach Komponente und Repository.

Weitere Änderungen 1
Fix crawl-monitor

stehende Alarme ueber den ZUSTAND aufloesen, nicht nur ueber den Uebergang

Am 2026-08-22 standen fuenf von sechs Alarmen dieses Melders 4,4 bis 4,6 Stunden
und wurden ausschliesslich von Hand geschlossen — jeder 2 bis 67 Sekunden nach
seiner eigenen Quittierung. Der Melder lief durchgehend und meldete fuer de_de
schon um 00:07:54Z wieder `queueStatus: ok` bei 236.603 wartenden Auftraegen.

Ursache der Klasse: `decideSymptom` loest ausschliesslich ueber den UEBERGANG
bad→gut auf. Geht dieser eine Uebergang verloren, steht der Alarm fuer immer,
und zwar lautlos — der Zustandsautomat nimmt danach den stillen Zweig
`gut + prevStatus !== "bad"` → `none`.

Neu: `decideStandingAlertSweep` loest ueber den ZUSTAND auf. Solange fuer eine
Kachel ein Alarm als offen vermerkt ist und die Lage HEUTE gut und beurteilbar
ist, wird aufgeloest — unabhaengig davon, ob der Uebergang je erkannt wurde.
Der Marker faellt dabei, der Weg feuert also genau einmal je Episode.

- eigenes Feld `SymptomState.openAlert`, BEWUSST keine Umdeutung von
`lastAlertAtMs` (das traegt die Melde-Daempfung und wird von
checkCrawlSuccessRate mitbenutzt) — `decideSymptom` bleibt unveraendert
- kein Ruhe-Fenster-Aufloesen: `judgeable` ist Bedingung
- nachgeholte Aufloesungen loggen als `warn`, nicht `info` — sie heissen, dass
der regulaere Weg versagt hat
- Waechter test/crawlStandingAlertSweep.test.ts (G1 Wiedergabe des echten Falls,
G2 Flip-Probe, G3 Positiv-Kontrolle de_ch inkl. keine Doppel-Aufloesung)