Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
Prod'da PL24 prefetch tamamen durmuştu: günlük bütçe 600/600 dolu görünürken gün boyunca SIFIR katalog isteği ve SIFIR yeni kategori üretiliyordu (ölçüm 2026-09-20). İki hata birlikte kapalı bir döngü kuruyordu: 1. Günlük bütçe `process()` içinde düşülüyor, iş-saati (ve cooldown) kapısı ise her handler'ın başında duruyordu. Pencere dışında uyanan bir iş önce bütçeden bir birim yiyor, sonra `time-window` fırlatıp hiçbir iş yapmadan erteleniyordu. 2. Bütçesi biten kaynak "bir sonraki UTC gece yarısı"na erteleniyordu. PREFETCH_PL24_START=9 ile bu an 03:00 Europe/Istanbul'a denk gelir — pencere açılmadan altı saat önce. Uyanan iş yine pencereye takılıyor, yine erteleniyor; taze günlük bütçe daha pencere açılmadan bu boş uyanmalarla tükeniyordu. Düzeltme: - cooldown + iş-saati kapıları `process()` içinde, bütçe düşülmeden ÖNCE çalışıyor; handler'lardaki kopyaları kaldırıldı. - `alignToWindow()` eklendi: bütçe ertelemesi pencerenin içine hizalanıyor. Pencere tanımlı değilse (varsayılan 0–24) no-op. - `currentIstanbulHour` artık `istanbulHourAt`'e deleg ediyor ve h24 döngüsünün gece yarısı için ürettiği "24" değeri `% 24` ile normalleniyor (aksi halde saat hiçbir pencereye düşmez). 8 yeni regresyon testi; api paketi 602 test geçiyor. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>