Zwei Fehler, die zusammen wie "der Timer hat nicht gefeuert" aussahen.
1) Trigger hatten KEIN Projekt. Beim Feuern ging die Antwort ohne projectId
durch _process_core_response — also immer in den Hauptchat, auch wenn der
Timer mitten in einem Projekt-Thread gestellt wurde. Im Projekt blieb es
still, und es sah aus wie "nicht gefeuert". Jetzt wird das Projekt des
Requests mit angelegt, der getriggerte Turn laeuft darin, und die Antwort
kommt dort zurueck.
2) trigger_list zeigte nur "aktiv" / "DEAKTIVIERT" und verschwieg fire_count
und last_fired_at. Ein One-Shot-Timer wird NACH dem Feuern automatisch
deaktiviert — "hat sauber gefeuert" und "war nie an" sahen damit identisch
aus. ARIA hat genau das falsch gelesen und berichtet, sie habe vergessen den
Timer zu aktivieren, obwohl er puenktlich gefeuert hatte. Die Ausgabe nennt
jetzt ausdruecklich "SCHON GEFEUERT (Nx, zuletzt <Zeit>)" plus den Kontext,
in dem die Antwort landet.
Nachgewiesen am Fall flugwetter-whv-freitag-0900: gefeuert 07:00:05 UTC
(= 09:00 lokal), Antwort 46s spaeter, fire_count=1 — aber active=false im
Manifest und die Antwort im Hauptchat statt im Projekt-Thread.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>