feat(pl24): bayat P4 mimarisindeki araçları görüntülendikçe P5'e taşı #265
Open
root
wants to merge 1 commits from
dev into main
pull from: dev
merge into: root:main
root:main
root:fix/lifecycle-founder-uuid
root:revert/build-cache-web
root:fix/build-cache-web
root:feat/fiat-birlesik-canonical
root:feat/fiat-eper-simplify
root:feat/fiat-eper-default
root:fix/activate-userbrands-conflict
root:feature/vin-ocr
root:fix/vinpin-query-log-accounting
root:feature/widget-canonical
root:feature/public-canonical-categories
root:feature/pcat-jwt-resilience
root:feature/public-api
root:feature/discount-codes
root:fix/backfill-inprocess-scan
root:fix/backfill-lifo-fast-lane
root:promote-expert-program
root:blog-cms-assets
root:blog-directus-main
root:legacy
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ddc223f745 |
feat(pl24): bayat P4 mimarisindeki araçları görüntülendikçe P5'e taşı
Some checks are pending
QA Gate (P0/P1) / Test affected app (pull_request) Waiting to run
Faz 2 / veri göçü (analiz: /home/s/ss/plv2.md, bulgu psa-07 / consumers_jobs-05). SORUN: PSA ve Volvo upstream'de P5'e taşındı, ama daha önce decode edilmiş araçlar hâlâ eski yollara işaret ediyor: 324 PSA aracı (302'si bir kullanıcıya bağlı, 33.535 kategori) donmuş 2024-02-13 anlık görüntüsünden, 36 Volvo aracı (34'ü kullanıcılı, 10.195 kategori) ölü P4 ucundan besleniyor. `decodeVin`'in db_hit kısa devresi yüzünden kod düzeltmesi bu satırlara ASLA ulaşmıyor; ayrıca `categories` tablosundaki (vehicle_id, name, source) tekil indeksi yüzünden yeni ağaç eskisinin üzerine yazılamıyor. YAKLAŞIM: toplu yeniden decode fırtınası yerine **görüntülendikçe kendi kendini onarma**. Tek hayatta kalan hesaba 360 aracı arka arkaya sormak yerine, her araç ilk açılışında bir kez taşınır. - `isStalePl24Architecture()` (pl24-tree.ts): saklı catalogPath `/psa`|`/volvo` ama servis bugün P5 ise bayat. Hâlâ P4 olan markalar (Ford/Opel/Hyundai/Kia/ Nissan) ve zaten P5 olan kayıtlar dokunulmaz. - `CategoriesService.healStalePl24Architecture()`: cache'i atlayarak yeniden decode eder, eski ağacı SİLİP yenisini tek transaction'da yazar, raw_data'yı yeni catalogInfo ile günceller, `fully_fetched`'i düşürür ve `cat:tree` / `prefetch:complete` / `prefetch:noresult` anahtarlarını temizler. Bilinçli olarak temkinli: - Yeniden decode başarısız olur veya kategori dönmezse ESKİ ağaç korunur (bayat veri, veri yokluğundan iyidir). - Deneme `pl24:heal:<vehicleId>` ile günde bir kez (setNx) — çözülemeyen bir VIN her sayfa görüntülemesinde PL24'e gidemez. - Eski satırlar ancak yeni ağaç elde edildikten SONRA siliniyor (tekil indeks). - PL24 bütçesi/hız sınırı zaten üstte: her onarma ~2 upstream isteği. Test: `isStalePl24Architecture` 4 test (bayat tespiti, zaten-P5, hâlâ-P4 markalar, eksik bilgi) + onarma akışı 4 test (ağaç değişir, P5 kayda dokunulmaz, boş decode eski ağacı korur, günlük kilit). 221 test geçti; tsc + biome temiz. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |