fix: reject stale company profile and filter updates

This commit is contained in:
2026-09-06 13:58:25 +03:00
parent ae32382ffa
commit 9d3acac59d
8 changed files with 92 additions and 25 deletions
+8
View File
@@ -964,3 +964,11 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö
- Belge deposu her dosyanın indirme işlemini kilitler, düğmede İndiriliyor durumu gösterir; erişilemeyen dosyanın düğmesi devre dışıdır. Depodan çıkılınca bekleyen indirmeler iptal edilir. Aynı e-posta için token yenilenmesi de panel oturumunu yeniden kurar.
- 220 otomatik test ve üretim derlemesi geçti. Yeni testler takılmış başarılı/hatalı yanıt gövdesi, iptal, oturumsuz istek, özgün Türkçe içerik ve dosya adı, tıklama hatasında kaynak temizliğini kapsar. Son küçük hata-mesajı sağlamlaştırmasından sonra belge oturum testleri ayrıca geçti.
- Gerçek tarayıcı Downloads klasöründe dosya kabulü ve yavaş ağda İndiriliyor görünümü henüz doğrulanmadı. Tarayıcıya teslim, dosyanın diske yazıldığının garantisi olarak sunulmaz. Canlıya yayın yapılmadı.
### Firma profili ve kayıtlı filtrelerde eşzamanlı yazma koruması — 6 Eylül 2026
- Kullanıcı verisi GET yanıtı, aynı SELECT sonucundan veri ve içerik sürümlerini birlikte döndürür. Firma profili ve saved_filters yazımında okunan sürüm zorunludur. SQLite BEGIN IMMEDIATE içinde mevcut içerik sürümü karşılaştırılır; farklıysa 409 VERSION_CONFLICT döner ve mevcut kayıt korunur.
- Sürüm mevcut ham JSON içeriğinin SHA-256 değeridir; sayaç değildir. Aynı içerik yeniden kaydedildiğinde sürüm değişmez. Eski kayıtlar şema değişikliği olmadan sürüm alır; bulunmayan kaydın başlangıç sürümü null'dır.
- İstemci hesabın ilk yüklemesinde sürümleri saklar, profil/filtre kaydında gönderir ve yalnız başarılı yanıtta günceller. Çakışmada düzenleme otomatik tekrar gönderilmez; hata kullanıcının girdilerini kopyalayıp güncel kayıtla yeniden düzenlemesini ister. Profil formundaki kaydedilmemiş girdiler korunur.
- Her iki anahtarda sekizer aynı sürümlü eşzamanlı HTTP isteğinden yalnız biri başarılı, yedisi 409 oldu. Eski sürümle sonraki istek mevcut değeri değiştirmedi; başka hesap aynı sürümle hedef kaydı değiştiremedi. Eksik sürüm 428 aldı. Eski depo kaydı, tekrar açma ve aynı içerik davranışı test edildi.
- 222 otomatik test ve üretim derlemesi geçti. Önceki yazma-hatası testinin temizlemediği test trigger'ı finally ile temizlenerek testler arası sızıntı giderildi.
- İki tarayıcı sekmesindeki hata/kurtarma kabulü henüz yapılmadı. Ekip, favoriler ve diğer genel anahtarların eşzamanlı yazma koruması bu değişiklikte tamamlanmadı. Canlıya yayın yapılmadı; eski QA backend örnekleri yeni sürüm sözleşmesini sunmaz.