# Fiko Orchestrator — Merkezi Yönetim ve Orkestrasyon Katmanı (TASARIM, KOD YOK)

> Amaç: mevcut **Süreç Yöneticisi**'ni (`surec_yonetici_panel` + `SurecKopru`) tek makine
> görev-yöneticisinden, **tüm FikoCAD ekosistemini yöneten merkezi kontrol paneline** evirmek:
> yerel süreçler + LAN keşfi + internet üzerinden uzak makineler + servis/görev/agent/MCP/plugin
> yönetimi + dağıtık çalışma. İleride Cluster/Cloud'a genişler.
>
> **Mükerrer yapı YOK:** `SurecKopru`, `OlayGunlugu`, `GorevSistemi`, `LisansSistemi`,
> `motor/mcp`, `EklentiYonetici` GENİŞLETİLİR; sıfırdan paralel sistem kurulmaz.
> **Anayasa:** her yeni sistem makro+plugin+olay erişilebilir doğar; `OlayTuru` enum'una ekleme
> SONA; her eşik/özellik AyarSistemi kaydı; sıcak yola dosya I/O–tahsis–O(N) tarama girmez.

---

## 1. Kavramsal Model (beş çekirdek varlık)

```
  Node ─┬─ Runtime (fikocad süreci)  ─┬─ Servis (Geometry/Query/Render/CAM/AI/Sim)
        │                            ├─ Agent (AI ajan oturumu)
        │                            └─ MCP Tool (motor/mcp araç kaydı)
        ├─ Kaynaklar (CPU/GPU/RAM/VRAM/Disk/Net)
        └─ Oturum (kullanıcı + lisans seat)
  Task  → herhangi bir Node/Runtime'a atanabilir iş birimi (kuyruk + geçmiş)
  Event → tüm Node'lardan federasyonla merkeze akan olay nehri
```

| Varlık | Tanım | Bugünkü karşılığı |
|--------|-------|-------------------|
| **Node** | Bir bilgisayar (fiziksel/VM). Kimlik: kalıcı `nodeId` (makine hash — lisans node-lock hash'i YENİDEN KULLANILIR) | yok (yalnız yerel) |
| **Runtime** | Node üzerindeki bir fikocad süreci (belge penceresi veya araç kipi) | `SurecBilgi` (pid+belge+durum+heartbeat) |
| **Servis** | Runtime içindeki yetenek modülü; ayrı süreç DEĞİL, kayıtlı alt sistem (Geometry=OCCT, Query=zeka, Render, CAM, AI, Sim) | motor/* modülleri (kayıt defteri yok → eklenecek) |
| **Task** | Sıraya alınabilir, iptal edilebilir, BAŞKA node'a aktarılabilir iş | `GorevSistemi` (yerel worker havuzu) |
| **Agent** | AI ajan oturumu (MCP istemcisi ya da yerleşik ajan) | `motor/mcp` + zeka motoru |
| **Event** | `OlayGunlugu` kaydı + node/runtime etiketi | `OlayKaydi` + süreç-forward (mevcut tasarım) |

**Tek zihinsel model:** Orchestrator penceresini kim açarsa o an "kule" (kontrol kulesi) odur;
her fikocad zaten aktördür (mevcut `SurecKopru` felsefesi ağa genişler). Ayrıcalık protokolde
değil UI'dedir — çakışan iki kule aynı veriyi görür, yazma işlemleri korelasyonlu ve idempotent.

---

## 2. Katmanlı Mimari (C++23, modüler)

```
 uygulama/fikocad/orchestrator_penceresi.*     ← UI (webskin, FikoCamPencere standardı)
        │
 motor/orkestra/                               ← YENİ motor modülü (UI'siz, test edilebilir)
   ├─ NodeKayitDefteri     (node/runtime/servis/agent envanteri + durum makinesi)
   ├─ TaskYonetici         (dağıtık kuyruk; GorevSistemi'nin ağ üstü kabuğu)
   ├─ OlayFederasyon       (SurecKopru olay-forward'ının ağ genellemesi)
   ├─ DosyaSenkron         (chunk transfer + proje senkron)
   └─ SaglikIzleyici       (heartbeat/ping/versiyon/uptime + kaynak metrikleri)
        │
 motor/orkestra/tasima/                        ← taşıma soyutlaması (tek arayüz, üç sürücü)
   ├─ TasimaYerel   = mevcut SurecKopru named pipe (AYNEN; sürücüye sarılır)
   ├─ TasimaLan     = UDP keşif (multicast beacon) + TCP çerçeve kanalı
   └─ TasimaWan     = TLS TCP doğrudan  |  opsiyonel Go relay (fikoyt-sunucu) üstünden WSS
        │
 fiko_ajan.exe (opsiyonel hafif servis)        ← makinede fikocad açık olmasa da Node'u temsil
                                                  eder: keşfe cevap, metrik, runtime başlatma
```

**İlkeler:**
1. **Tek çerçeve protokolü.** `SurecCerceve{sihir,sürüm,tip,kaynak,hedef,korelasyon,gövde}`
   (merkezi_surec_yoneticisi.md §3) pipe'a özgü DEĞİL — aynı çerçeve TCP/TLS'e bayt-bayt aynı
   gider. `hedefPid` → `hedefAdres{nodeId,pid}` olur (yerel kısayol: nodeId=0=ben). Yeni mesaj
   tipleri enum SONUNA: `NodeIlan, NodeMetrik, TaskAta, TaskDurum, TaskIptal, TaskDevret,
   DosyaParca, ServisKomut, AgentKomut, EslesmeIste, EslesmeOnay`.
2. **Taşıma sürücüsü değiştirilebilir, üst katman habersiz.** NodeKayitDefteri/TaskYonetici
   yalnız `TasimaArayuz{gonder(adres,cerceve), abone(cb)}` görür. Cluster/Cloud = ileride
   dördüncü sürücü (`TasimaBulut`), üst katmanlara dokunmadan.
3. **Motor UI'siz.** `motor/orkestra` birim testlenir (sahte taşıma sürücüsüyle); pencere yalnız
   tüketici. Test tabanı büyür, küçülmez.
4. **Davranış korunur.** Yerel süreç yöneticisi bugün ne yapıyorsa aynen çalışır; ağ katmanı
   `orkestra.lan_kesif` / `orkestra.wan` AyarSistemi bayrakları arkasında, varsayılan KAPALI.

### 2.1 Keşif ve bağlantı akışı
- **LAN:** her Node (fikocad ya da fiko_ajan) 3 sn'de bir UDP multicast beacon yayınlar:
  `{nodeId, ad, sürüm, tcpPort, runtimeSayısı, durum}`. Dinleyen kule listeye ekler; detay/komut
  için TCP kanalı açar. Beacon kaybı 10 sn → `Offline` işaretle (silme; geçmiş kalır).
- **WAN:** keşif yok — elle ekleme (`adres:port` veya davet kodu). İki yol:
  (a) doğrudan TLS TCP (port yönlendirme yapan atölye senaryosu),
  (b) relay: mevcut Go backend'e (fikoyt-sunucu, Socket.IO altyapısı hazır) hafif bir
  "orkestra odası" endpoint'i — iki taraf da dışarı bağlanır, NAT delme derdi yok. Relay yalnız
  çerçeve taşır, içerik uçtan uca şifreli (bkz. §8).
- **Eşleştirme (pairing):** yeni Node ilk kez bağlanırken 6 haneli kod iki ekranda da gösterilir;
  onayla → karşılıklı anahtar kalıcı (`gecici/` DEĞİL, ayar deposu). Sonraki bağlantılar sessiz.

### 2.2 fiko_ajan (Node temsilcisi)
- Tepsi ikonu + hafif süreç; fikocad'ın süreç-kayıt/heartbeat/pipe kodunu paylaşır (ortak
  kaynak, kopya değil). Görevleri: beacon, metrik toplama (CPU/GPU/RAM/VRAM/disk/ağ — PDH +
  DXGI/NVML), uzaktan `fikocad.exe` başlatma (`--arac=` kipi dahil), dosya alma/verme,
  güncelleme koordinasyonu.
- fikocad açıkken ajan şart değil: ilk fikocad süreci ajan rolünü üstlenebilir
  (`orkestra.ajan_gomulu=true` varsayılan). Ayrı exe yalnız "makine boşken de görünsün"
  isteyenlere kurulum seçeneği.

---

## 3. Node Yönetimi (durumlar + yaşam döngüsü)

**Durum makinesi:** `Online · Idle · Busy · Error · Yanıtsız · Offline`
- `Online/Idle/Busy` heartbeat + aktif Task sayısından türetilir (Idle = online + 0 aktif task).
- `Error` = son N dakikada kritik olay (çökme kurtarma işareti, device-lost, servis hatası).
- `Yanıtsız` = süreç canlı, heartbeat bayat (mevcut zombi-UI tespiti ağa genellenir).
- `Offline` = beacon/bağlantı yok; satır gri kalır, geçmişi ve son metrikleri gösterilir.

**Node kartında tutulan:** ad (kullanıcı verir, varsayılan hostname) · nodeId · IP/adres ·
OS + fikocad sürümü · uptime · runtime listesi · servis matrisi · agent listesi · canlı
metrikler (30 sn sparkline) · lisans seat durumu · son 5 olay · etiketler (örn. "render-farm",
"cam-istasyonu" — Task yerleştirme filtresi olarak kullanılır).

**Sürüm uyumu:** çerçeve `sürüm` alanı zaten var; majör uyumsuz Node "salt-izleme" kipinde
bağlanır (komut gönderilemez, rozet: "sürüm eşleşmiyor — güncelle"). Güncelleme servisiyle
(merkezi_platform_servisleri.md §C) birleşir: kuleden "Node'u güncelle" komutu.

---

## 4. Task (Görev) Yönetimi — dağıtık kuyruk

**İlke:** `GorevSistemi` worker havuzu AYNEN kalır (yerel yürütücü). `TaskYonetici` üstüne ağ
kabuğu geçirir: Task = serileştirilebilir iş tarifi + hedef politikası.

```
 Task {taskId, tür, param(key=val), öncelik, kaynakNode, hedefPolitikası,
       durum: Kuyrukta→Atandı→Çalışıyor→(Bitti|Hata|İptal|Devredildi),
       ilerleme %, girdiDosyaları[], çıktıHedefi}
```

- **Hedef politikası:** `Belirli Node` · `Otomatik (en boş uygun)` · `Etiket` (örn. "gpu").
  Otomatik seçim puanı = servis uygunluğu × (1-CPU) × (1-kuyruk derinliği); eşik/ağırlıklar
  AyarSistemi'nde (`orkestra.task_puan_*`).
- **Yürütme:** hedef Runtime `TaskAta` çerçevesini alır → mevcut `GorevSistemi`'ne kuyruklar →
  `GorevBaglam::ilerlet` zaten var → ilerleme `TaskDurum` çerçevesiyle geri akar (throttle 500 ms).
- **Devretme:** yalnız `Kuyrukta/Atandı` durumundakiler taşınır (çalışan iş taşınmaz — basit ve
  güvenli; canlı migrasyon Cluster fazına ertelenir). Devir = iptal + yeni atama, taskId korunur.
- **Girdi dosyaları:** Task ataması DosyaSenkron'a bağlanır — hedefte dosya yoksa önce parça
  transferi, hash doğrulama, sonra çalıştır (bkz. §7).
- **Tipik Task türleri (ilk sürüm):** STEP import + mesh önbelleği üretimi · toplu STEP→fikocad
  dönüşüm · CAM takım yolu hesabı · analiz (keskin kenar/kalınlık/undercut) · render/ekran
  görüntüsü · Lua makro çalıştır · zeka GPE sorgusu · disaAktar.
- **Kalıcılık:** kuyruk + geçmiş kule tarafında `gecici/orkestra/kuyruk.fk` (çökme sonrası
  kurtarma, oto-kayıt deseniyle aynı). Tamamlanan geçmiş halka tampon (varsayılan 500 kayıt).

---

## 5. Servis + Agent + MCP Yönetimi

### 5.1 Servis kayıt defteri
Her Runtime açılışta yeteneklerini bildirir (`NodeIlan` gövdesi): hangi servisler derli/aktif,
sürümleri, sağlık durumu. Yeni hafif `ServisKaydi` arayüzü — motor modülleri kendini kaydeder
(`Geometry(OCCT x.y)`, `Query(zeka, 6 dedektör)`, `Render(Vulkan, RTX 4090)`, `CAM(OpenCAMLib)`,
`AI`, `Sim(SPH/dökümhane)`). Panelde servis matrisi: Node × Servis ızgarası, hücre = durum rengi.
Servis komutları: durdur/başlat (bayrak arkasında), teşhis dök, sağlık probu çalıştır.

### 5.2 Agent yönetimi
- Agent = bir Runtime'a bağlı AI oturumu (MCP istemcisi: Claude/başka). Görünen: agent adı,
  bağlı olduğu Runtime, çalıştırdığı MCP araçları (son N çağrı), durum (bekliyor/araç
  çalıştırıyor), token/çağrı sayacı (telemetri olayından).
- **Uzak agent çalıştırma:** "Run Agent" komutu hedef Node'da fikocad'ı `--arac=` veya headless
  MCP kipinde başlatır + görev tanımını Task olarak iletir. AI ağır işi güçlü Node'a atma
  senaryosu böyle çözülür (Task altyapısının özel türü — ayrı sistem DEĞİL).

### 5.3 MCP araç yönlendirme
- `motor/mcp` sunucusu araç kataloğunu `NodeIlan`'a ekler. Kule tüm ekosistemin **birleşik araç
  kataloğunu** görür: araç → hangi Node'larda mevcut.
- **Yönlendirme kuralı tablosu** (AyarSistemi + panel UI): `araç deseni → hedef politikası`
  (örn. `zeka.*` → etiket:gpu, `render.*` → Belirli Node). MCP istemcisi kuleye bağlanırsa kule
  proxy'dir: çağrıyı kurala göre Node'a iletir, cevabı döndürür (korelasyon alanı hazır).
  Varsayılan: yönlendirme kapalı, her şey yerel — mevcut MCP davranışı birebir korunur.

---

## 6. Event Bus Federasyonu

Mevcut tasarım (merkezi_surec_yoneticisi.md §7: delta+batch+throttle forward, `SurecOlayAlindi`
re-publish, döngü guard'ı) ağa genellenir:
- Olay kaydına `nodeId` etiketi eklenir (çerçeve başlığından; `OlayKaydi` POD'una dokunulmaz —
  kule tarafında `ForwardOlay{nodeId,pid,kayit}` sarmalı, mevcut yapı zaten böyle).
- **Kademeli süzme:** yerel→kule forward'ında `kalici` filtresi (bedava), ağ üstünde ek "önem
  eşiği" (`orkestra.olay_esik`) — WAN'da yalnız Uyarı+ seviye geçer, LAN'da hepsi.
- **Döngü guard'ı ağda da:** forward edilmiş olay tekrar forward edilmez; kule-kule senaryoda
  `kaynakNodeId` zinciri tek seviyeyle sınırlı.
- Olay konsolu tüm ekosistemin tek nehri: Node/Runtime/tür/şiddet/metin filtreli, clipper'lı,
  duraklat + dışa aktar (.fikolog).

---

## 7. Dosya Transferi + Proje Senkronu

- **Transfer:** `DosyaParca` çerçevesi — 256 KB parça + sıra + toplam + xxhash bütünlük;
  GorevSistemi worker'ında (UI kilitlenmez), ilerleme Task olarak görünür (iptal edilebilir).
  Alınan dosya önce `gecici/orkestra/aktarim/` altına, hash doğrulanınca hedefe taşınır.
- **Proje senkronu:** klasör eşleştirme tanımı (yerel yol ↔ uzak yol) + fark tespiti (boyut+
  değişim zamanı hızlı yol, hash doğrulama). Tek yönlü itme/çekme + "yansıt" kipi. Çakışmada
  ASLA sessiz üzerine yazma: iki taraf da değişmişse çakışma listesi kullanıcıya sorulur.
  `.fkcache`/`gecici/` desenleri varsayılan hariç.
- Otomatik senkron zamanlaması yok ilk sürümde (elle tetikleme) — sürpriz ağ trafiği olmasın.

---

## 8. Güvenlik

| Katman | Önlem |
|--------|-------|
| Yerel | Mevcut: pipe ACL owner-only + sihir baytı + PID kayıt doğrulama (aynen) |
| LAN keşif | Beacon imzalı (paylaşılan ekosistem anahtarı); imzasız beacon listelenir ama "doğrulanmamış" rozetiyle, komut kapalı |
| Kanal | TCP üstü TLS (LAN'da opsiyonel `orkestra.lan_tls`, WAN'da ZORUNLU); sertifika = eşleştirmede takas edilen anahtar (TOFU + pairing kodu) |
| Yetki | Rol: `İzleyici` (salt okuma) · `Operatör` (task/komut) · `Yönetici` (shutdown/plugin/lisans). Eşleştirmede rol atanır; komut çerçevesi rol kapısından geçer |
| Komut | Uzak komutlar da `Cekirdek::komutCalistir` lisans kapısından geçer (mevcut tek dispatch) — uzaktan lisans bypass imkânsız |
| Tehlikeli eylem | Shutdown/Restart/plugin kur/dosya sil → hedef Node ekranında da onay bildirimi (kullanıcı başındaysa görür); kuyrukta ikinci onay |
| Audit | Her uzak komut `KomutCalisti` + kaynak node etiketiyle .fikolog'a — kim, nereden, ne çalıştırdı |

---

## 9. UI TASARIMI — "Fiko Orchestrator" penceresi

**Kabuk:** FikoCamPencere + webskin standardı (zeka penceresiyle aynı dil): koyu cam zemin,
neon vurgu, yumuşak köşe kartlar, mikro-animasyon (durum geçişlerinde renk yumuşaması, canlı
metrik akışı). Sol dikey ray navigasyon + üst durum şeridi + ana içerik. Klavye: `Ctrl+K`
komut paleti (node/task/araç ara-çalıştır). Tam responsive dock — pencere daraldıkça kartlar
tek kolona düşer.

### 9.1 Sol ray (bölümler)
```
 ◉ Genel Bakış (Dashboard)     ⛭ Servisler
 ⬡ Node'lar                    ⚙ Görevler (Task)
 ▤ Olay Konsolu                ✦ Agent & MCP
 ⇄ Dosya / Senkron             ⬢ Plugin'ler
 ☺ Kullanıcı & Oturumlar       ⚑ Ayarlar
```

### 9.2 Dashboard (Genel Bakış) — tek bakışta ekosistem
Üst şerit (her zaman görünür, tüm sekmelerde):
`● 4 Node çevrimiçi · 7 Runtime · 2 Task çalışıyor · 1 uyarı  |  ağ: LAN  |  kule: Bu makine`

Kart ızgarası:
1. **Node özet kartları** — her Node bir kart: ad + durum halkası (renk), mini CPU/GPU/RAM/VRAM
   bar dörtlüsü, runtime sayısı, aktif task, son olay satırı. Karta tık → Node detay.
2. **Kaynak nabzı** — ekosistem toplamı: CPU/GPU/RAM sparkline (60 sn), ağ trafiği.
3. **Task şeridi** — çalışan görevler ilerleme çubuklarıyla; kuyruk derinliği; son 5 biten.
4. **Olay nabzı** — son 8 önemli olay (Uyarı+), tık → Olay Konsolu'na filtreli atlama.
5. **Sağlık uyarıları** — bayat heartbeat, sürüm uyumsuzluğu, disk dolu, lisans seat sınırı.
6. **Hızlı eylemler** — Yeni Runtime · Task Oluştur · Node Ekle (davet kodu) · Tümünü Yenile.

### 9.3 Node'lar sekmesi
- **İki görünüm (toggle):** tablo (sıralanabilir: ad/durum/CPU/GPU/RAM/task/uptime/sürüm) ve
  **topoloji haritası** (kule merkezde, Node'lar halkada; bağ çizgisi kalınlığı=trafik,
  rengi=sağlık — CAD'e yakışan şematik görünüm, kuvvet-yönlü grafik değil, sabit düzen).
- **Node detay (sağ panel):** kimlik + metrik grafikleri (30 sn/5 dk/1 sa) + runtime listesi
  (mevcut süreç tablosu BURAYA gömülür — pid/belge/uptime/durum/bellek) + servis matrisi satırı
  + agent listesi + son olaylar + etiket düzenleme.
- Runtime satırı eylemleri = bugünkü süreç yöneticisinin aynısı (Sonlandır nazik/zorla, Komut+
  Param, Odakla) — davranış birebir korunur, sadece Node bağlamına taşınır.

### 9.4 Görevler sekmesi
- Üstte kuyruk özeti + "Task Oluştur" (tür seç → param formu → hedef politikası → önizleme).
- Ana tablo: taskId/tür/hedef/durum/ilerleme/süre/kaynak; durum renk rozetli; çalışanlar canlı
  ilerleme. İkincil görünüm: Node-başına kulvar (hangi node ne çiğniyor).
- Detay: param dökümü, girdi dosyaları + transfer durumu, canlı log (task'ın olayları süzülmüş).

### 9.5 Olay Konsolu
- Tek nehir + filtre çubuğu (Node çoklu-seç, Runtime, tür grubu, şiddet, metin arama).
- Duraklat/devam, otomatik kaydırma, satır renk=şiddet, çift tık→ ilgili varlığa atla
  (task olayı→Task detay, node olayı→Node detay). Dışa aktar (.fikolog/.csv).

### 9.6 Servisler / Agent & MCP / Plugin / Kullanıcı
- **Servisler:** Node × Servis matrisi + seçili servisin sürüm/sağlık/teşhis çıktısı.
- **Agent & MCP:** sol agent listesi (durum + bağlı runtime), sağ birleşik MCP araç kataloğu
  (araç → mevcut Node'lar) + yönlendirme kuralı tablosu (desen → politika, sıralı, sürükle-sırala).
- **Plugin'ler:** Node × plugin matrisi (sürüm farkları vurgulu); seçili Node'a kur/kaldır/
  güncelle (dosya transferi + EklentiYonetici ABI doğrulaması hedefte). "Tüm Node'lara dağıt"
  toplu işlemi Task olarak kuyruklanır.
- **Kullanıcı & Oturumlar:** Node başına oturum (kullanıcı adı, rol, bağlanma zamanı, lisans
  seat), seat sayacı (`LisansSistemi` seat gate'iyle aynı sayım kaynağı), rol düzenleme
  (Yönetici), oturum düşürme.

### 9.7 Sağ tık menüleri (varlık-bazlı, niyet odaklı — DM tarzı)
**Node:**
`Detay · Yeniden Adlandır · Etiketler ▸ · Yeni Runtime Başlat · Task Gönder ▸ (tür listesi) ·
Dosya Gönder… · Senkron ▸ · Tüm Runtime'ları Kapat (nazik) · Yeniden Başlat ⚠ · Kapat ⚠ ·
Güncelle · Salt-İzleme Kipi · Eşleştirmeyi Kaldır`

**Runtime:**
`Odakla · Belgeyi Göster · Komut Gönder ▸ · Komut+Param… · Sonlandır (nazik) · Zorla Sonlandır ⚠ ·
Olaylarını Süz (konsola filtreli git) · Ekran Görüntüsü İste`

**Task:**
`Detay · Duraklat/Devam (destekleyen türlerde) · İptal · Başka Node'a Devret ▸ · Öncelik ▸
(Düşük/Normal/Yüksek) · Yeniden Çalıştır · Logunu Aç · Çıktı Klasörünü Aç`

**Servis:** `Teşhis Dök · Sağlık Probu · Yeniden Başlat ⚠ (bayrak arkasında) · Olaylarını Süz`

**Agent:** `Konuşmayı Göster (özet) · Araç Çağrılarını Süz · Duraklat · Sonlandır ·
Başka Node'da Çalıştır ▸`

**MCP aracı:** `Şimdi Çalıştır… (param formu) · Yönlendirme Kuralı Ekle · Hangi Node'larda? ·
Devre Dışı Bırak (Node bazında)`

**Olay satırı:** `Varlığa Git · Bu Türü Süz · Bu Node'u Süz · Kopyala · Bu Türü Sustur (oturum)`

⚠ işaretliler: onay diyaloğu + hedef makinede bildirim (bkz. §8). Kendini/kuleyi kapatma
guard'ları mevcut süreç-yöneticisi kurallarıyla aynı.

### 9.8 UX ayrıntıları
- **Durum dili tekdüze:** ● yeşil Online/Idle · ◐ sarı Busy · ▲ turuncu Uyarı/Yanıtsız ·
  ✕ kırmızı Error · ○ gri Offline. Her yerde aynı ikon+renk (tablo, kart, harita, konsol).
- **Boş durumlar:** "Henüz uzak Node yok — LAN keşfini aç veya davet koduyla ekle" tarzı
  yönlendirici boş ekranlar (FikoEmptyState deseni).
- **Gecikme dürüstlüğü:** uzak veride "son güncelleme X sn önce" damgası; bayatlayan kart soluk.
- **Performans:** tüm listeler clipper'lı; metrik grafikleri sabit halka tampon; panel veri
  okuması throttle'lı (500 ms); ağ çerçeveleri main-thread dışında ayrıştırılır, UI yalnız
  hazır anlık görüntüyü çizer. Sıcak yola sıfır ek yük: Orchestrator kapalıyken hiçbir metrik
  toplayıcı çalışmaz (`orkestra.metrik_pasif_toplama=false` varsayılan).
- Tüm metinler Türkçe; teknik terimler (Node, Task, MCP, Heartbeat) olduğu gibi.

---

## 10. AyarSistemi kayıtları (hepsi `ayar_kayitlari.cpp` kalıbında)
```
 orkestra.lan_kesif        = false   (UDP beacon aç/kapa)
 orkestra.lan_port         = 47810   (beacon + TCP taban portu)
 orkestra.wan              = false
 orkestra.relay_adres      = ""      (Go relay; boş = doğrudan TCP)
 orkestra.ajan_gomulu      = true    (ilk fikocad ajan rolü üstlenir)
 orkestra.beacon_sn        = 3
 orkestra.offline_esik_sn  = 10
 orkestra.olay_esik        = 0       (0=hepsi, 1=Bilgi+, 2=Uyarı+ — WAN önerilen 2)
 orkestra.task_puan_*      = ...     (otomatik yerleştirme ağırlıkları)
 orkestra.transfer_parca_kb= 256
 orkestra.metrik_aralik_ms = 1000
```

## 11. Makro / Plugin / Olay erişimi (anayasa)
- Lua: `fiko.orkestra.nodeListe() / taskOlustur(tur,param,hedef) / taskIptal(id) /
  komutGonder(node,pid,ad,param) / dosyaGonder(node,yol,hedefYol) / mcpCagir(arac,param)` —
  süreç-yöneticisi Dalga-4'teki `fiko.surec.*` bunun alt kümesi olur (tek API, iki isim değil).
- Yeni `OlayTuru` (enum SONUNA): `NodeKatildi, NodeAyrildi, NodeDurumDegisti, TaskOlusturuldu,
  TaskDurumDegisti, TaskBitti, DosyaTransferBitti, EslesmeYapildi, UzakKomutAlindi`.
  Yüksek-frekanslılar (`NodeMetrik` gibi) olay DEĞİL — kayıt defteri anlık görüntüsünde kalır.
- MCP: kule kendini de araç olarak sunar (`orkestra.durum`, `orkestra.task_olustur`) —
  AI ajanları ekosistemi sorgulayıp iş atayabilir.

## 12. Dalga Planı
| Dalga | Kapsam | Bağımlılık |
|-------|--------|-----------|
| **D0** | Mevcut süreç-yöneticisi dalgalarının tamamlanması (duplex protokol, heartbeat, olay forward) — Orchestrator'ın yerel temeli | var olan spec |
| **D1** | `motor/orkestra` iskeleti: TasimaArayuz + TasimaYerel sarma + NodeKayitDefteri + pencere kabuğu (Dashboard yalnız yerel Node) | D0 |
| **D2** | LAN: beacon keşif + TCP kanal + eşleştirme + metrik toplama + Node sekmesi/topoloji | D1 |
| **D3** | Task dağıtımı: TaskYonetici + otomatik yerleştirme + Görevler sekmesi + dosya transferi | D2 |
| **D4** | Servis kayıt defteri + Agent & MCP yönlendirme + Plugin dağıtımı | D2 |
| **D5** | WAN: TLS + relay (Go backend) + rol/yetki + Kullanıcı & Oturumlar | D2, §8 |
| **D6** | Cila: proje senkronu, komut paleti, olay konsolu dışa aktarım, güncelleme koordinasyonu | D3–D5 |
| **D7+** | Cluster/Cloud: TasimaBulut sürücüsü, çoklu-kule, canlı task migrasyonu | mimari hazır, tarih yok |

Her dalga: önce test (sahte taşıma sürücüsüyle motor testleri), sonra UI; bayrak varsayılan
kapalı; davranış regresyonu sıfır. RUNTIME TEST notları dalga sonlarında Fikri'ye liste halinde.

---

**Özet ilke:** Orchestrator yeni bir dünya değil — `SurecKopru`'nun aktör modelinin ağa,
`GorevSistemi`'nin kuyruğunun ekosisteme, `OlayGunlugu`'nun nehrinin federasyona genellenmesi.
Tek çerçeve protokolü + değiştirilebilir taşıma sürücüsü sayesinde yerel→LAN→WAN→Cloud aynı
kod yoluyla büyür; UI tek pencerede kontrol kulesi hissi verir, motor UI'siz ve test edilebilir
kalır.
