# Fiko İş Takip 2.0/3.0 — Uygulama İlerlemesi

> docs/istakip_v4_cad_dosya_gelistirilmis_plan.md'nin faz faz uygulama takibi.
> İşaretlenen fazlar derlenip linklenmiş, çalışır durumda.

## Dalga 1 — Dynamic Workspace (§0-35)

- [x] **F1 — Dynamic Schema Engine**
      YENİ `istakip_sema.hpp/.cpp`: AlanSema/TurSema, turlarOku() (önbellekli,
      g_semaCache + g_semaCacheSurum deseni), ilkKurulumSemalariYaz() (yalnız
      kral, geriye dönük uyumlu 5 tür → "_sema" kaydı).
      DEĞİŞEN `istakip_penceresi.cpp`: koda-sabit turlar()/TurTanim/AlanTanim
      kaldırıldı, tüm çağrılar turlarOku(*veri) üzerinden. CMakeLists.txt'e
      istakip_sema.cpp eklendi.
      Derleme: fikocad.exe temiz derlendi + linklendi (2026-08-23).
- [x] **F2 — Şema Tasarımcı penceresi**
      YENİ `istakip_sema_penceresi.hpp/.cpp`: sol panelde tür listesi + yeni tür
      düğmesi, sağda form (tur_id/ikon/başlık/tekil/renk/bağ_tür/sıra) + dinamik
      alan tablosu (anahtar/etiket/tip/tabloda) + dinamik durum listesi, Kaydet/
      Sil/Vazgeç. `istakip_sema.hpp/.cpp`'ye semaKayitOku()/semaKayitYaz() eklendi.
      Kayıt: FikoIstakipSemaPanel + "Araçlar→⚙ Şema Tasarımcı" menüsü
      (belge_penceresi.cpp) + istakip_penceresi.cpp araç şeridinde "⚙ Şema"
      düğmesi (aktif sekmeyi doğrudan düzenlemeye açar).
      Derleme: fikocad.exe temiz derlendi + linklendi (2026-08-23).
- [x] **F3 — "_olay" tipi + otomatik diff-log + sağ panel akış UI**
      `istakip_servis.cpp`: IstakipServis::yaz() kral yolunda yazmadan önceki
      kaydı önbellekten kopyalayıp yeni kayıtla alan-bazında diff'liyor;
      olayUret() her değişen alan için "_olay(olay_tur=sistem)" kaydı
      otomatik üretiyor ("<etiket>: eski → yeni", "kayıt oluşturuldu",
      "kayıt silindi"). "_olay"/"_sema" kendisi olay üretmez (döngü/gürültü
      guard'ı). `istakip_penceresi.cpp` sağ panelde (formCiz) artık olay
      akışı listesi + yorum kutusu var.
      BİLİNEN SINIRLAMA: diff hook'u yalnız bu (kral) sürecin kendi UI
      yazmalarını kapsıyor — uzak istemciden ağ üzerinden gelen yazmalar
      henüz kapsanmıyor (F3.1 olarak not düşüldü, ayrı görev).
      Derleme: fikocad.exe temiz derlendi + linklendi (2026-08-23).
- [x] **F4 — 3 panelli kabuk (sol tür gezgini/orta görünüm/sağ kayıt+akış) + Ctrl+K**
      `istakip_penceresi.cpp` baştan düzenlendi: eski sekme çubuğu kaldırıldı,
      yerine SOL (tür listesi + canlı kayıt sayacı, veri sürümüne göre önbellekli
      + "⚙ Şema Tasarımcı" düğmesi) / ORTA (araç şeridi + tablo/kanban, davranış
      birebir korundu) / SAĞ (form + F3'ün olay akışı) 3 child-window paneli
      geldi. Ctrl+K: pencere odaktayken popup açılıyor, filtreGecer ile tüm
      türler genelinde arama yapıp seçileni doğrudan forma yüklüyor.
      Derleme: fikocad.exe temiz derlendi + linklendi (2026-08-23).
- [x] **F5 — Zaman Çizelgesi + İlişki Grafiği görünümleri**
      YENİ `istakip_gantt.hpp/.cpp`: "termin" alanlı tüm türler tek yatay
      eksende (Howard Hinnant tarih algoritması, bugün çizgisi, gecikmiş=
      kırmızı, tıkla→kayda git). YENİ `istakip_grafik.hpp/.cpp`: ALAN_UST/
      ALAN_KAYNAK zincirini katmanlı node-graph çizer (döngü korumalı derinlik
      hesabı, tıkla→kayda git). `istakip_penceresi.cpp` orta panel araç
      şeridine 4 görünüm düğmesi geldi (☰Tablo/▦Kanban/📅Zaman/🕸İlişki);
      Zaman/İlişki seçili sekmeden bağımsız TÜM türler üzerinde çalışıyor.
      Derleme: fikocad.exe temiz derlendi + linklendi (2026-08-24).
- [x] **F6 — Çoklu dosya eki UI (DosyaSenkron köprüsü)**
      Gömülü "ekler" alanı (JSON string array) + sağ panelde 📎 Ekler bölümü +
      kanban kart rozeti; sonrasında kayıt formu bağımsız pencereye taşınırken
      (`istakip_kayit_penceresi.hpp/.cpp`) Ekler kendi sekmesine geçti
      (Alanlar/Ekler/Olaylar 3 sekmeli Kayıt penceresi). Not: ilerleme takibi
      bu dosyada aksadığı için F6 uzun süre işaretsiz kaldı — kod zaten
      derlenip linklenmiş haldeydi (kontrol: 2026-08-25).

DALGA 1 (F1-F6) TAMAMLANDI.

## Dalga 2 — Diğer motorlar (§7-35, MVP/V2/V3)

MVP kapsamının çoğu Dalga 1 sırasında zaten karşılanmış: Dynamic Schema (F1),
Dynamic Field/Form (F1/F2, kayıt penceresi), Table (F1), Kanban (mevcuttan
taşındı), Event History (F3), Relation (ALAN_UST/ALAN_KAYNAK + İlişki Grafiği
F5), Dosya (F6), Global Search (Ctrl+K, F4). MVP'de eksik kalan yalnız:

- [x] **Query/Filter Engine (plan §11)** — YENİ `istakip_filtre.hpp/.cpp`:
      FiltreKosul (alan/operatör/değer) + FiltreGrup (VE/VEYA, tek seviye —
      plan §11.3'teki iç içe alt-grup ağacı V2'ye bırakıldı). 12 operatör
      (=, ≠, >, <, ≥, ≤, içerir, içermez, ile başlar, ile biter, boş, boş
      değil); sayısal alanlar strtod ile, diğerleri case-insensitive string
      ile karşılaştırılır. JSON serialize/deserialize (istakip_sema.cpp'deki
      elle-yazılmış parser deseniyle aynı). `istakip_penceresi.cpp`'ye
      "🔎 Filtrele" popup'ı eklendi (tür başına ayrı filtre, metin aramayla
      VE ilişkisinde birleşir); liste önbelleği artık filtre sürümünü de
      izliyor. Derleme: fikocad.exe temiz derlendi + linklendi (2026-08-25).
- [x] **Saved Views (plan §12)** — YENİ `istakip_gorunum.hpp/.cpp`: "_gorunum"
      kayıtları (tur_id/ad/gorunum/filtre — JSON). MVP kapsamı: kolon/
      gruplama/sıralama özelleştirmesi V2'ye bırakıldı (tablo sütunları zaten
      TurSema.alanlar'dan geliyor). "💾 Görünüm" popup'ı: kayıtlı görünümleri
      listeler (tıkla → filtre+görünüm tipini yükler) + "şu anki filtre+
      görünümü kaydet" formu. Derleme: fikocad.exe temiz derlendi + linklendi
      (2026-08-25).
- [ ] Kanban genelleştirme (herhangi bir "durum" tipi alanın Kanban sütunu
      olabilmesi — şu an yalnız `durum` adlı alan destekleniyor)
- [ ] Task/Automation/Formula/Dashboard/Permission Engine — V2 kapsamı,
      MVP'nin parçası değil (plan §32).

Sıradaki adım: Kanban genelleştirme (MVP'nin son eksik parçası) ya da
doğrudan V2'ye geçiş (Gantt zaten F5'te var — Calendar/Dashboard/Tasks/
Automation/Formula/Permission kaldı).

## Dalga 3 — File Workspace Engine (§36-63)

- [ ] F16-F26: Dosya referans modeli + sürümleme, CAD adapter mimarisi
      (STEP/WRL/CATPart/3DXML), geometry/render cache, önizleme, arama.
      Not: fikocad zaten OCCT tabanlı STEP içe aktarma altyapısına sahip
      (dosya_islemleri.cpp) — F18 bunun üstüne köprü kurmalı, ayrı motor
      YAZILMAMALI (plan §59 ilkesiyle tutarlı).

---
Sıradaki adım: Kanban genelleştirme (Dalga 2 MVP'nin son eksik parçası) ya da
Dalga 3'e (Dosya/CAD Workspace Engine) geçiş — ikisi de birbirinden bağımsız,
hangisi önce istenirse ondan devam edilebilir.
