feat: documents/analyses/drafts Postgres yazmalarını geçiş bayrağının arkasına al

Yerel-öncelikli veri mimarisi (Faz 3) — registerLocalDocument, case.
controller.ts'in 6 fonksiyonu (5 analiz + Dijital Stajyer) ve drafting.
controller.ts'in generateDraft/generateAngarya'sı artık PERSIST_TO_
POSTGRES ortam değişkenine göre davranıyor.

Bayrak varsayılan olarak true (mevcut davranış birebir korunuyor) —
kod deploy'u gerçek davranışı DEĞİŞTİRMİYOR. Kullanıcı gerçek veriyle
Faz 1/2'yi (yerel SQLite'a çift yazma + istekten metin kabul etme) test
edip güvendiğinde, PERSIST_TO_POSTGRES=false ayarıyla (kod değişikliği
gerekmeden) yazmalar durur; geri dönüş de aynı şekilde anlık.

case_events ve chat_messages kapsam dışı, dokunulmadı. Angarya taslakları
için bilinen bir sınırlama var: Faz 1'de yerel dual-write eklenmediğinden,
bayrak kapatıldığında bu taslaklar hiçbir yerde kalıcı olmayacak.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Mustafa Yildiz
2026-08-20 00:31:59 +03:00
co-authored by Claude Sonnet 5
parent fd5cd8503a
commit ab20d88422
4 changed files with 146 additions and 85 deletions
+16
View File
@@ -0,0 +1,16 @@
// Yerel-öncelikli veri mimarisi (Faz 3) geçiş bayrağı — bkz.
// laawos/docs/mimari-karar-yerel-oncelikli-veri-modeli.md
//
// documents/analyses/drafts artık Postgres'e kalıcı olarak YAZILMAMASI
// gerekiyor (belge/analiz içeriği artık kullanıcının kendi bilgisayarında +
// Drive'ında tutuluyor). Ama bu geçiş kod deploy'uyla AYNI ANDA gerçek
// davranışı değiştirmesin diye — kullanıcı önce gerçek veriyle Faz 1/2'yi
// (yerel SQLite'a çift yazma + istekten metin kabul etme) test edip güvenene
// kadar — varsayılan davranış DEĞİŞMİYOR: Postgres'e yazmaya devam ediyoruz.
//
// PERSIST_TO_POSTGRES=false ayarlanınca (kod deploy'u GEREKMEDEN, sadece ortam
// değişkeni) yazmalar durur. Geri dönüş de aynı şekilde anlık — değişkeni
// kaldırmak veya "true" yapmak yeterli.
export function shouldPersistLegacyTables(): boolean {
return process.env.PERSIST_TO_POSTGRES !== 'false';
}