Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion .agents/context/cli-registry.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Source:** `orchestrator/src/cli-registry.js`

**Last verified:** 2026-07-25
**Last verified:** 2026-09-21

## Purpose

Expand Down Expand Up @@ -31,6 +31,8 @@ Codex, Claude, Gemini ve OpenCode kurulumlarını keşfeder; agent profillerini
- CLI çağrıları non-interactive ve otonom olmalı; desteklenmeyen/eski bayraklar temizlenmelidir.
- Windows Unicode kullanıcı yolları ve `.cmd/.bat` çalıştırma davranışı korunmalıdır.
- Codex ve Gemini için adapter sessizlik sınırı 180, Claude için stream-json akışıyla 240, OpenCode için 300 saniyedir.
- Codex alt süreçlerinde varsayılan olarak ChatGPT oturumu kullanılır; `OPENAI_API_KEY` alt sürece aktarılmaz. API key modu yalnızca `CODEX_AUTH_MODE=api_key` ile seçilir.
- Codex'in "You've hit your usage limit" çıktısı sağlıkta `quota` / "Kullanım limiti doldu", motorda `QUOTA_EXCEEDED` olarak sınıflandırılır; yenilenme zamanı mesajdan çıkarılır. Genel auth/hız/CLI hatası sayılmaz.

## Interactions

Expand All @@ -44,6 +46,15 @@ Codex, Claude, Gemini ve OpenCode kurulumlarını keşfeder; agent profillerini

## Major Changes

### 2026-09-21 — Codex ChatGPT oturumu ve kullanım limiti teşhisi

- **Change:** Codex sağlık, model listesi ve runtime alt süreçleri varsayılan olarak `OPENAI_API_KEY` olmadan başlatılıyor. "You've hit your usage limit" çıktısı ayrı olarak tanınıyor ve yenilenme zamanıyla raporlanıyor.
- **Reason:** Ortamdaki geçersiz `OPENAI_API_KEY` Codex'i API key moduna geçirip `401` döndürüyor ve asıl durumu gizliyordu. Plan hakkı bitince gelen mesaj da motorda `CLI_FAILED` sayılıyor, agent karantinaya alınmadan tekrar deneniyordu.
- **Impact:** Codex, ChatGPT girişini kullanır; hakkı bitmişse sağlıkta "Kullanım limiti doldu", görevde `QUOTA_EXCEEDED` (karantina) görünür. Diğer CLI ortamlarına dokunulmaz.
- **Compatibility:** API key kullanan kurulumlar `CODEX_AUTH_MODE=api_key` ayarını açıkça eklemelidir.
- **Verification:** `npm.cmd test`; Codex 0.154.0 ile gerçek `codex exec --json` çıktısı ve `OPENAI_API_KEY` ortamdayken uygulamanın gerçek sağlık testi `quota` / "Kullanım limiti doldu" döndü.
- **Files:** `orchestrator/src/cli-registry.js`, `orchestrator/src/engine.js`, `orchestrator/test/cli.test.js`, `orchestrator/test/team-flow.test.js`

### 2026-07-24 — Claude modeli kullanıcı oturumundan dinamik keşfediliyor

- **Change:** `listClaudeModels()`, Claude Code'u stream-json kontrol protokolüyle başlatıp `initialize` yanıtındaki `models` alanını okuyor; statik Fable/Opus/Sonnet/Haiku listesi kullanılmıyor.
Expand Down
15 changes: 13 additions & 2 deletions .agents/context/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Source:** `orchestrator/web/index.html`

**Last verified:** 2026-07-18
**Last verified:** 2026-09-21

## Purpose

Expand All @@ -15,7 +15,7 @@ Motor durumunu, yeni görev oluşturmayı, kuyrukları, aktif ekip haritasını,
- İlk otonom engine başlatmada kalıcı consent modalı gösterilir.
- Görev alanı ve kuyruk sol sütunda; misyon, ekip haritası, feed ve teknik terminaller sağ sütundadır.
- Dashboard açılışta aktif görevin olay geçmişini otomatik replay eder; aktif görev yoksa en son tamamlanan veya başarısız görev geri yüklenir. Bootstrap sırasında gelen SSE olayları replay bitene kadar tamponlanır ve yinelenmeden uygulanır.
- `/api/events` SSE olayları dashboard içinde `status`, `queue`, `activity`, `message`, `log`, `result` ve `schedules` handler'larına dağıtılır.
- `/api/events` SSE olayları dashboard içinde `status`, `queue`, `activity`, `message`, `log`, `result`, `schedules` ve `cli-health` handler'larına dağıtılır.
- CLI prosesleri için başlama, ilerleme, stdout/stderr, timeout, sessizlik timeout ve bitiş durumları görselleştirilir.
- Canlı kodlama görünümü ayrı `code.html` sayfasındadır; dashboard header'ından açılır.
- Tema tercihi `localStorage` içinde saklanır.
Expand All @@ -31,6 +31,8 @@ Motor durumunu, yeni görev oluşturmayı, kuyrukları, aktif ekip haritasını,
`CLI_META` ile birebir). Feed mesajları gönderenin, terminal kartları ve ekip haritası düğümleri
ilgili agent'ın CLI rengini alır (`--agent-accent` / `--nacc` inline). Çalışıyor/hata durumları
renk değil ayrı ipuçlarıyla (nabız, ilerleme çubuğu, kırmızı halka, `failure`/`blocked` kırmızı) belirtilir.
- Duyarlı yerleşim dört sayfa için ortaktır ve `app.css` "Duyarlı yerleşim" bölümündedir. Kurallar: kapsayıcı sarar, rozet/hap/çip bölünmez; ızgara çocukları `min-width:0`; header sabit değil `min-height`; uzun metin `overflow-wrap: break-word` (anywhere değil); `tiles` `auto-fit`. Sayfaya özel sabit genişlik/yükseklik eklenirken bu kurallar bozulmamalıdır.
- CLI sağlık yorumu tek yerdedir: `app.js` `window.CrewHealth` (renk tonu, etiket, yenilenme zamanı, hazır mı). Kaynak sunucunun `cliStatus[].health` sonucudur; agent için yoksa `agent.health` kullanılır. Sağlık gösteren her yer bunu çağırır, kendi yorumunu yazmaz.

## Interactions

Expand All @@ -43,6 +45,15 @@ Görevler için `tasks.md`, ayarlar için `settings.md`, klasör seçici için `

## Major Changes

### 2026-09-21 — Ortak duyarlı yerleşim ve tek sağlık kaynağı

- **Change:** `app.css`'e dört sayfa ve tüm modallar için ortak "Duyarlı yerleşim" bölümü eklendi. `app.js`'e paylaşılan `CrewHealth` yardımcısı eklendi. Ana ekran, ayarlar, CLI kartları, operatör seçimleri ve Ekip Akışı aynı sağlık yorumunu kullanıyor. `server-flow` testi `NO_OPEN` ile çalışıyor.
- **Reason:** 390 px'te ana içerik ekrandan ~97 px taşıyordu. Board/code/flow header'ı sabit 58 px olduğu için sarılan butonlar içeriğin üstüne biniyordu. Ayarlar sekmeleri 330 px taşıyordu, Canlı Kod istatistik kutuları ekrana sığmıyordu. Ayrıca aynı sağlık bilgisi bazı yerlerde hiç kullanılmıyor, bazı yerlerde yanlış gösteriliyordu (Ekip Akışı'nda girişsiz Gemini "hazır · sırada"). Test sunucusu her çalışmada kullanıcının tarayıcısında ölü bir sekme açıyordu.
- **Impact:** 1440/1024/768/390 px'te 17 ekran durumu (4 sayfa, 6 ayar sekmesi, 7 modal) taşmasız. Hazır olmayan CLI her yerde aynı etiket ve renkle görünüyor.
- **Compatibility:** Geniş ekran görünümü değişmedi. Mantık ve config şeması aynı. `app.js` defer yüklendiği için sayfalar `CrewHealth`'i çağrı anında ve korumalı kullanır.
- **Verification:** `npm.cmd test`. Headless Chrome ile her ekranı dört genişlikte açıp taşmaları ölçen tarama: ilk çalıştırmada birden çok gerçek sorun, düzeltmeden sonra 68/68 temiz; ekran görüntüleri gözle de kontrol edildi.
- **Files:** `orchestrator/web/app.css`, `orchestrator/web/app.js`, `orchestrator/web/index.html`, `orchestrator/web/flow.html`, `orchestrator/test/ui-smoke.test.js`, `orchestrator/test/server-flow.test.js`

### 2026-07-18 — CLI marka renk standardı ve terminal taşma düzeltmesi

- **Change:** Feed mesajları, canlı terminal kartları ve ekip haritası düğümleri artık duruma göre
Expand Down
32 changes: 31 additions & 1 deletion .agents/context/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Sources:** `orchestrator/web/index.html`, `orchestrator/src/server.js`, `orchestrator/src/cli-registry.js`, `orchestrator/config.default.json`

**Last verified:** 2026-07-25
**Last verified:** 2026-09-21

## Purpose

Expand All @@ -22,6 +22,9 @@ Agent profillerini, rol dosyalarını, CLI-geneli model politikalarını, operat
- Otomatik keşfedilen agent silinirse adapter gizleme listesine eklenir ve sonraki taramada geri oluşturulmaz.
- Bilinen bir CLI komutu düzenlendiğinde agent adapter'ı, varsayılan argümanları ve model sahipliği UI taslağında birlikte eşitlenir.
- Operatör uzman agent değildir; ayrı CLI seçimidir ve rolü `roles/operator.md` olarak sabittir.
- "Aktif" kutusu yalnızca izindir. Operatör bir uzmanı ancak sağlık testi `ready` ise görür (`engine.js` `agentUsable`). Bu yüzden her uzman kartında "Aktif" altında sağlık satırı, "Kurulu CLI taraması" rozetlerinde de sağlık etiketi ve rengi gösterilir (`ok`/`warn`/`err`/`dim`). Kod bu iki görünümü `cli-health` SSE olayıyla canlı yeniler ve kaydedilmemiş taslaklara dokunmaz. Rozet kapsayıcısı `flex-wrap` ile dar pencerede satır satır dizilir; tek rozetin yazısı `nowrap` ile bölünmez. Aynı sağlık sonucu "CLI'lar ve Modeller" kartlarında rozet olarak ve iki operatör listesinde (Operatör sekmesi, görev seçenekleri) `operatorOptionLabel` ile gösterilir; hazır olmayan CLI seçilebilir kalır ama adının yanında durumu yazar. Hazır olan da "— Hazır" diye açıkça etiketlenir. Operatör kutularının altında (Operatör sekmesi, görev seçenekleri, görev düzenleme) seçili CLI'ın durum satırı durur. Metin, sunucunun görev eklerken uyguladığı kuralla aynıdır (`server.js` `TRANSIENT_HEALTH`): testing/unknown/timeout "görev yine de başlatılabilir", gerçek arızalar "bu seçimle görev başlatılamaz". Yorum `app.js` `CrewHealth`'tedir.
- Sayısal ayarların sınırları ve varsayılanları **tek kaynaktadır**: `store.js` `NUMERIC_LIMITS`. Varsayılanlar `config.default.json` şablonundan okunur (`readSeedConfig`). Sunucu `/api/config` doğrulaması bu tabloyu kullanır ve aşımda 400 döner. Arayüz aynı tabloyu `/api/state` → `numericLimits` üzerinden okur; kutular `numAttrs`/`numValue` ile min/max, sınıra çekme ve boş-girdi varsayılanı alır. Arayüzde sabit sınır veya varsayılan kopyası tutulmaz. Aralıklar: operatör turu 1–50, delegasyon 1–32, protokol tekrarı 0–5, günlük bütçe 0–100000 (0 = sınırsız), agent timeout 10–86400, bellek/bağlam bütçesi 0–1000000, agent başına timeout 0–86400 (0 = genel ayar). 0 geçerli bir değerdir; `||varsayılan` kısayolu kullanılmaz. Odaklı sayı kutusunun üstünde fare tekerleği değeri değiştirmez (`app.js`).
- Motorun kendi çalışma zamanı yedekleri (ör. `protocolRetries ?? 1`, `maxRounds || 6`) alan hiç yoksa devreye girer ve şablon varsayılanından farklı olabilir (şablonda `protocolRetries` 2). Bu ayrı bir iştir; henüz tek kaynağa bağlanmadı.
- Uzman rolü yalnızca prompt metni değil, izin verilen görev türüdür: executor uygulama, reviewer inceleme, planner planlama yapar.
- Config kaydı server tarafı doğrulamasından geçer; en az bir uzman gerekir.
- MCP sekmesi `draftMcp` taslağı üzerinde çalışır (`draftAgents` ile aynı desen); Kaydet basılana kadar config'e dokunmaz. Kaydetmede adsız sunucular atılır, adlar/açıklamalar trim'lenir, boş argüman satırları düşer, `ANAHTAR=değer` satırları ortam değişkenine çevrilir (değer içindeki `=` korunur) ve URL verildiyse `command`/`args` gönderilmez.
Expand All @@ -43,6 +46,33 @@ Config şeması için `configuration.md`, CLI keşfi için `cli-registry.md`, ro

## Major Changes

### 2026-09-21 — Sayısal ayar sınırları tek kaynağa indirildi

- **Change:** Sınır ve varsayılan tablosu `server.js` işleyicisinden `store.js` `NUMERIC_LIMITS`'e taşındı ve `/api/state` ile yayınlanıyor. Arayüzdeki 8 min/max kopyası ile 8 sabit varsayılan kopyası silindi; kutular tabloyu `numAttrs`/`numValue` ile okuyor. Şablon okuma `readSeedConfig`'e toplandı.
- **Reason:** Aynı sınırlar sunucu ve arayüzde ayrı yazılıydı (teknik borç). Değişiklik öncesi 5 senaryolu ölçümde bir hata da bulundu: günlük bütçe 0 ("sınırsız") iken arayüz `||150` yüzünden 150 gösteriyor, Kaydet sessizce 150 yazıyordu. Ayrıca arayüzdeki boş-girdi varsayılanı (protokol tekrarı 1) şablondakiyle (2) uyuşmuyordu.
- **Impact:** Sınır tek yerde değişir, sunucu ve arayüz birlikte değişir. Bütçe 0 korunuyor.
- **Compatibility:** Hata mesajları ve aralıklar aynı. Ölçülen 15 davranışın 12'si birebir aynı; değişen 3'ü hedeflenenler (tablonun yayınlanması, bütçe 0'ın gösterilmesi ve korunması).
- **Verification:** Yalıtılmış sunucuyla (gerçek config ve CLI'lara dokunmadan) önce/sonra ölçümü; `npm.cmd test`; ui-smoke arayüzdeki her sınır anahtarının tabloda olduğunu ve sabit kopya kalmadığını denetliyor.
- **Files:** `orchestrator/src/store.js`, `orchestrator/src/server.js`, `orchestrator/web/index.html`, `orchestrator/test/ui-smoke.test.js`, `orchestrator/test/server-flow.test.js`

### 2026-09-21 — Operatör seçimi durumu gösteriyor; sayısal ayarlar sınırlı

- **Change:** Operatör kutularına durum satırı eklendi ve hazır CLI de "— Hazır" diye etiketleniyor. Sayı kutularına min/max ve kaydetmede sınıra çekme eklendi. Sunucu sayısal ayarları doğruluyor. Odaklı sayı kutusunda fare tekerleği artık değeri değiştirmiyor.
- **Reason:** Operatör listesi kapalıyken seçili CLI'ın kullanılabilir olup olmadığı görünmüyordu. Ayarlar kaydırılırken fare tekerleği delegasyon ve protokol tekrarını -12 ve -17'ye indirmiş, bu değerler kaydedilmişti. Motor bunları sessizce "turda tek delegasyon, sıfır tekrar"a çeviriyordu; günlük bütçe eksi olsaydı her çağrı engellenirdi.
- **Impact:** Kullanıcı operatörü seçerken sonucunu görür. Geçersiz sayı kaydedilemez. Kullanıcının config'indeki -12/-17 değerleri 8/1 varsayılanlarına geri alındı.
- **Compatibility:** Geçerli mevcut config'ler etkilenmez. Sınır dışı değer gönderen API/ham JSON kaydı artık 400 alır.
- **Verification:** `npm.cmd test` (ui-smoke: etiket/satır/clamp; server-flow: eksi değerde 400, 0 bütçede 200). Headless Chrome'da korumasız kutuda 5 tekerlek hareketi 8→3, korumalıda 8→8. Operatör satırı Claude/Codex için ve görev seçeneklerinde doğrulandı. Duyarlı tarama 68/68 temiz.
- **Files:** `orchestrator/web/index.html`, `orchestrator/web/app.js`, `orchestrator/src/server.js`, `orchestrator/test/ui-smoke.test.js`, `orchestrator/test/server-flow.test.js`

### 2026-09-21 — Uzman ve CLI sağlık durumu ayarlarda görünür

- **Change:** Her uzman kartında "Aktif" kutusunun altına sağlık satırı eklendi: Hazır, Kullanım limiti doldu (yenilenme zamanıyla), Giriş gerekli, Test ediliyor veya Kapalı. "Kurulu CLI taraması" rozetleri yalnızca kurulu olmaya göre değil, sağlık testine göre renkleniyor ve etiket gösteriyor. Dashboard artık `cli-health` SSE olayını dinliyor.
- **Reason:** Sunucu sağlık sonucunu üretip yayınlıyordu ama arayüz bunu hiç göstermiyordu. Limiti dolu Codex, "Aktif ✔" ve yeşil nokta ile hazır gibi görünüyor, kullanıcı operatörün onu deneyip zaman kaybedeceğini sanıyordu.
- **Impact:** Kullanıcı hangi uzmanın operatör tarafından gerçekten kullanılabildiğini ayarlar ekranında görür. Aktif ama hazır olmayan uzmanlarda "operatör bu uzmanı kullanmıyor" yazar.
- **Compatibility:** Yalnızca görünüm değişti; config şeması, kaydetme gövdesi ve motor davranışı aynı.
- **Verification:** `npm.cmd test`; `ui-smoke` yardımcı fonksiyonları gerçek HTML'den çıkarıp koşturuyor. Canlı panelde headless Chrome ile rozetler ve dört uzman satırı doğrulandı.
- **Files:** `orchestrator/web/index.html`, `orchestrator/test/ui-smoke.test.js`

### 2026-07-25 — MCP Araçları sekmesi (form tabanlı)

- **Change:** İçe dönük MCP artık Genel sekmesindeki ham JSON alanı yerine kendi sekmesinde form tabanlı yönetiliyor: sunucu kartları (ad · açıklama · komut/URL · argümanlar · ortam · görev türleri · yazma yetkisi · agent kısıtı), ekle/sil, hazır şablonlar ve "fiilen verilecek türler" önizlemesi. `draftMcp` taslağı eklendi.
Expand Down
12 changes: 11 additions & 1 deletion .agents/context/team-flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Source:** `orchestrator/web/flow.html`

**Last verified:** 2026-07-17
**Last verified:** 2026-09-21

## Purpose

Expand All @@ -17,6 +17,7 @@ Operatörün ekip kurma ve delegasyon akışını, agent filosunu, aktif/geçmi
- `message` olayları delegation/result/failure/blocked durumlarını üretir; delegasyon pulse'ı hedef agent renginde agente, sonuç/failure pulse'ı operatör renginde merkeze hareket eder.
- `activity` olayları proses durumu ve kısa canlı çıktıyı; `log` görev başlangıcı/hatasını; `result` final KPI'larını günceller.
- İlk yüklemede aktif veya en son done/failed task'in kayıtlı olayları yeniden oynatılır, ardından SSE canlı akışı devam eder.
- Boştaki agent'ın durum metni sağlık sonucundan gelir (`setIdleText`, `app.js` `CrewHealth`). Hazırsa "hazır · sırada", değilse renkli etiket gösterilir ("Giriş gerekli" gibi); üzerine gelince "operatör bu uzmanı kullanmıyor" ve hata ayrıntısı çıkar. `cli-health` SSE olayı sayfayı yenilemeden günceller.

## Contracts and invariants

Expand All @@ -36,6 +37,15 @@ Operatörün ekip kurma ve delegasyon akışını, agent filosunu, aktif/geçmi

## Major Changes

### 2026-09-21 — Ajan filosu gerçek sağlık durumunu gösteriyor

- **Change:** Boştaki agent için sabit "hazır · sırada" metni, config'deki sağlık sonucuna dayanan `setIdleText` ile değiştirildi. `cli-health` olayı dinleniyor ve dar kartta metin "…" ile kısalıyor.
- **Reason:** Girişsiz Gemini ve limiti dolu Codex "hazır · sırada" görünüyordu; operatör bu agent'ları kullanmaz (`engine.js` `agentUsable`).
- **Impact:** Filo listesi motorun gerçek seçimleriyle uyumlu.
- **Compatibility:** Çalışan/tamamlanan/başarısız metinleri değişmedi.
- **Verification:** `node orchestrator/test/ui-smoke.test.js` ve headless Chrome görüntüsü (1440 px).
- **Files:** `orchestrator/web/flow.html`, `orchestrator/web/app.js`

### 2026-07-17 — Agent renkli yönlü veri akışı

- **Change:** Sabit yeşil operatör-agent bağı kaldırıldı; bağlantı hattı ve ok ucu hedef agentın CLI rengini alıyor. Aktif bağlantıda operatörden agente ölçülü hızda sürekli hareket eden üç veri paketi gösteriliyor; tekil delegasyon/sonuç pulse renkleri de yönün sahibine bağlandı.
Expand Down
Loading