# Daily Log — 2026-09-13

## AppConfig-Eingriff zum Seeder-Stopp vorbereitet (23:35 CEST, Kais-Auftrag TG 12204)

Geliefert: `projekte/rwg-prod-uebernahme/seeder-stop/` mit `ANLEITUNG.md` (106 Zeilen) und
`appconfig-prod-neu.json`.

### Ist-Zustand gelesen (nicht angenommen)
Anwendung `540vb0a` (backend) · Profil `aqc7vab` (backend-production) · Umgebung `k2c5ver`
(production) · aktive Version 1 seit Deployment 11 vom 06.09. · Strategie damals
`AppConfig.AllAtOnce`, Bake 10 Minuten.
Aktive Konfiguration: fetch_reviews `0 0 8,16 * * *` · **reservation_seeder `0 0 4 * * *`** ·
google_feeds_upload `0 0 5 * * *` · reservation_reminder `0 */10 * * * *`.
Damit ist auch die Reihenfolge Seeder 04:00 vor Feed 05:00 aus der Quelle belegt, nicht
mehr nur aus den Zeitstempeln gefolgert.

### Neuer Wert und warum genau dieser
`reservation_seeder_cron_schedule` -> `0 0 0 29 2 *` (29. Februar, naechster Lauf 2028-02-29).
**Gegen die echte Bibliothek getestet** (`cron` 4.4.0 aus dem Repo, alle vier Ausdruecke):
der uebliche 30.-Februar-Trick `0 0 0 30 2 *` WIRFT hier ("No execution date was found in the
next 8 years") und haette bei jedem Start einen Error-Log erzeugt. Der 29. Februar ist gueltig
und feuert praktisch nie.

### Kein Neustart noetig
`apps/backend/src/app/base/cron/service.ts` plant Jobs bei `@OnEvent('app-config.updated')`
live um. Die Fehlerbehandlung in `scheduleJob` faengt ungueltige Ausdruecke ab (try/catch,
nur Log) — es gibt also kein Crash-Risiko fuer den Dienst, unabhaengig vom gewaehlten Wert.

### Sicherung gegen den teuren Fehler
Diff der neuen gegen die aktive Konfiguration geprueft: **genau eine Zeile** unterscheidet sich.
Die anderen drei bleiben unangetastet, besonders `google_feeds_upload_cron_schedule` — daran
haengt der Availability-Feed, der uns die Freischaltung gebracht hat.

### Beweisschritt festgelegt
Nicht am Deployment-Status festmachen. Am Morgen des 14.09. per API pruefen, ob Eintraege mit
`comment: "Seeded at 2026-09-14T04:..."` entstanden sind. Bleiben sie aus, hat der Eingriff
gewirkt. Aria misst und meldet die Zahl.

Rueckweg (Version 1 erneut ausrollen) und die Dauerloesung (Commit `a9aee863` zurueckdrehen,
`StageId.PRODUCTION` -> `StageId.STAGING`) stehen in der Anleitung.
Ausfuehrung durch Kais — Aria hat auf AppConfig nur Leserechte.
