Tam katalog kapsama: 4-faz prefetch stratejisi (derinlik+skip-completed+per-source+env) #146

Merged
root merged 4 commits from dev into main 2026-06-22 11:30:48 +03:00
Owner

Tam katalog kapsama stratejisi — 4 faz:\n1) Tam-derinlik (MAX_DEPTH 2->12) + no-op children job uretimini durdur\n2) Tamamlanan araclari isaretle + Phase-2 rescan'de atla (churn durur)\n3) Per-source paralel rate limit (PL24/EMEX/pcat bagimsiz; PL24 20'de kaldi)\n4) PREFETCH_* env'i compose'a wire et (Coolify-tunable)\n\nHedef: decode edilmis tum araclarin tam kategori+parca agaci DB'de + hizli goruntuleme. Full api suite 318 pass. Generated with Claude Code

Tam katalog kapsama stratejisi — 4 faz:\n1) Tam-derinlik (MAX_DEPTH 2->12) + no-op children job uretimini durdur\n2) Tamamlanan araclari isaretle + Phase-2 rescan'de atla (churn durur)\n3) Per-source paralel rate limit (PL24/EMEX/pcat bagimsiz; PL24 20'de kaldi)\n4) PREFETCH_* env'i compose'a wire et (Coolify-tunable)\n\nHedef: decode edilmis tum araclarin tam kategori+parca agaci DB'de + hizli goruntuleme. Full api suite 318 pass. Generated with Claude Code
root added 4 commits 2026-06-22 11:30:47 +03:00
Hedef = decode edilmiş tüm araçların TAM kategori+parça ağacı DB'de. Cap artık
hedef değil güvenlik tavanı (gerçek ağaçlar ~5-7 derin; doğal yaprak tespiti
durduruyor). queueCategoryJob non-leaf dalı `depth < MAX_DEPTH` ile kapılandı:
processChildren'ın early-return'ünü aynalar → kuyruğun ~%85'ini oluşturan
boş depth-job'ları (rate-limit slotu harcayan no-op) hiç üretilmez.
+spec: depth>=cap'te children enqueue YOK, cap altında VAR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Chain parça ile tamamlanınca prefetch:complete:<id> set edilir (TTL 21g,
env PREFETCH_COMPLETE_TTL_DAYS). tryPick bu işaretliyi atlar → Phase-2 bitmiş
ağaçları her dalga yeniden gezmez (eski "sonsuz churn" durur). Başarısız job
isFinished'e ulaştırmaz → kısmi ağaç asla complete işaretlenmez, gap-fill korunur.
TTL periyodik re-validasyon sağlar. +spec: complete-marker'lı araç Phase-2'de atlanır.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tek global 20/dk limiter tüm kaynakları paylaştırıyordu → yavaş pcat PL24/emex'i
açlığa düşürüyordu. Artık her kaynak Redis fixed-window ile BAĞIMSIZ kısılıyor
(SOURCE_RATE_MAX: pl24=20, emex=20, pcat=8; env PREFETCH_RATE_PL24/_EMEX/_PCAT).
Global WORKER_RATE_MAX güvenlik tavanı (20→60). RateLimitError yeni cause
"source-rate" → process() per-job defer eder (emex/pcat PL24'ü beklemez); cooldown
hâlâ tüm worker'ı duraklatır. PL24 default'u 20'de KALDI (ban riski; yüksek-rate
Faz 4 rotating proxy ile). +spec: under/over ceiling + unknown-source unlimited.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(prefetch/faz4): PREFETCH_* env'i api compose bloğuna wire et (Coolify-tunable)
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
d119b1eb2c
Memory gotcha: Coolify env yalnız compose service `environment:` bloğu ${VAR}
referans ederse container'a ulaşır. Prefetch worker api container'ında in-process
→ 13 anahtar api bloğuna eklendi (CATALOG_BACKFILL_ENABLED + PREFETCH_CONCURRENCY/
RATE_MAX/MAX_DEPTH/RATE_PL24/RATE_EMEX/RATE_PCAT/PCAT_DELAY_MS/PL24_START/PL24_END/
NORESULT_MAX/NORESULT_TTL_DAYS/COMPLETE_TTL_DAYS). Hepsi `:-` boş→kod-default
(davranış değişmez); artık rate/concurrency Coolify UI'dan deploy'suz ramp edilebilir.
PL24 rate yükseltme rotating proxy + izleme ile (Faz 5).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
root merged commit fd884271b7 into main 2026-06-22 11:30:48 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: root/sase.tr#146