Persist offer assistant jobs and recover results across closed views

This commit is contained in:
2026-09-06 12:35:30 +03:00
parent 2e16a68565
commit f830625b60
12 changed files with 297 additions and 3 deletions
+10
View File
@@ -713,3 +713,13 @@ Taslak denetimi için altı anahtar sözcüğün ilk 300 karakterlik örneklerin
UI kaynak karakter/parça/alıntı sayısını gösterir. Karşılanma yüzdesi hâlâ yalnız denetlenen liste içindir. Bütün parçaların taranması AI'ın tüm şartları eksiksiz seçtiğini veya alıntıyı anlam bakımından doğru değerlendirdiğini kanıtlamaz; parça sınırları, bağlam ve çelişen hükümler ayrıca incelenmelidir. Bu sınır kullanıcı açıklamasında korunur.
Test: 15 bin karakterlik metnin tüm karakterleri modele giden parçalarda, son şart ve tam konumu korunuyor; uydurma alıntı/geçersiz liste/ara sağlayıcı hatası reddediliyor; iptal sonraki grupları durduruyor. Sağlayıcı yanıtları yerel test taklididir. Tüm 155 test ve üretim derlemesi geçti; UI sayacı sonrasında derleme tekrar doğrulandı. Gerçek sağlayıcıyla uzun belge kalitesi, kalıcı iş/iki dakikadan uzun tamamlama ve beş resmi dosya kabulü açık. Canlı yayın yok.
### D06 — Kalıcı teklif asistanı işleri
Teklif asistanının soru, taslak denetimi ve taslak üretimi kalıcı işe bağlandı. İş girdisi ve sonucu kullanıcı veri dizinindeki ai-jobs.sqlite dosyasında tutulur; API erişimi hesapla sınırlıdır. Tekrar kullanılan istek kimliği aynı girdide aynı işi döndürür, farklı girdide reddedilir. Kullanıcı başına beş etkin iş ve işlemci başına iki eşzamanlı çalışma sınırı vardır.
İşlemci queued/running/completed/failed/interrupted/cancelled durumlarını kullanır. Çalışma kimliği ve heartbeat, eski işlemcinin geç yanıtla iptal/yeniden başlatılmış işi değiştirmesini engeller. Heartbeat kaybolursa iş interrupted olur; belirsiz sağlayıcı çağrısı otomatik tekrarlanmaz. Yeniden başlatma kullanıcı tarafından yapılır ve işi baştan çalıştırır; parça bazında checkpoint devamı değildir. İş başına 30 dakika sınırı vardır.
İstemci tek uzun HTTP isteği yerine işi oluşturur ve kısa durum istekleriyle sonucu bekler. Ekran kapanınca yalnız takip isteği kesilir; sunucu işi devam eder. Kayıtlı AI işleri bölümünde son 50 iş yenilenebilir, iptal/yeniden başlatılabilir; tamamlanmış işin kaynağı ve sonucu asistan ekranına geri açılabilir. Eski işi açmanın mevcut metni değiştirdiği belirtilir. Doğrudan eski API uçları uyumluluk için korunur.
Doğrulama: hesap ayrımı, idempotency, kesilen işin otomatik tekrarlanmaması, çalışma kimliği, iptal sonrası geç sonuç reddi, HTTP bağlantısından bağımsız sonuç kaydı; istemci oluşturma/poll/tamamlama ve ekran kapanınca silme çağrısı olmaması; HTTP yetki ve boş liste. Tüm 161 test ve üretim derlemesi geçti. Sağlayıcı testleri taklittir; gerçek uzun işlem/tarayıcı geri açma kabulü yapılmadı. Genel AI analiz ekranı henüz bu iş modeline bağlı değil. ai-jobs.sqlite kullanıcı yedek aracına otomatik dahil değildir; veri volume yedeğiyle ayrıca alınmalı. Canlı yayın yok.
+2
View File
@@ -49,3 +49,5 @@ node server/backup-data-volume.mjs restore /backups/shared-release-001 /recovery
Bu araç seçilen dizin dışındaki worker depolarını, ortam değişkenlerini veya dağıtım yapılandırmasını kendiliğinden bulmaz. Kullanıcı belgelerinde veritabanı-dosya referans kontrolü için kullanıcı yedek aracını da kullanın. Tüm veri dizinleri ve kullanıcı yedeği aynı durdurulmuş sürümün seti olarak alınmalı; manifest zamanları tek başına servislerin durduğunu kanıtlamaz. Şifreleme/imzalama yapılmaz; backup erişimi ve dış saklama platformda yönetilir. Fiziksel boş dizinler ayrı manifest girdileri değildir.
`tests/data-volume-backup.test.mjs`, iki SQLite deposu, committed WAL verisi, alt dizin dosyası, restore, hedef üzerine yazmama, değişmiş/ek dosya ve sembolik bağlantı reddini doğrular. Gerçek üretim volume'larına bu komutlar henüz uygulanmadı; platform geri dönüş provası açık.
Kalıcı teklif asistanı işleri `IHALEIST_USER_DATA_DIR/ai-jobs.sqlite` içinde özel kaynak ve sonuç metni içerir. `backup-user-data.mjs` yalnız users.sqlite ve referanslı belgeleri aldığı için bu dosya ayrıca volume aracıyla yedeklenmelidir. Bütün yazıcılar durdurulmadan job/user yedek seti tutarlı kabul edilmez.