* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
13 KiB
Homologation Suite (npm run homolog) (Türkçe)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Homologasyon VPS'sinde çalışan OmniRoute dağıtımının gerçek ortam E2E doğrulaması
(HOMOLOG_BASE_URL, ör. http://192.168.0.15:20128). Tek bir komut, manuel
sürüm STOP #2 kontrol listesinin yerini otomatik ve kanıt üreten bir çalıştırmayla alır.
Kapsamı
| Katman | Kontrol ettikleri | Uygulama |
|---|---|---|
| L0 — sağlık/parite | /api/monitoring/health, status: "healthy" ve beklenen sürümle birlikte 200 yanıtı verir |
scripts/homolog/lib/parity.mjs |
| L1a — geçici anahtar | Yönetici girişi → POST /api/keys, çalıştırma için kapsamı belirlenmiş bir API anahtarı oluşturur; sonuç ne olursa olsun bir finally bloğunda iptal edilir (DELETE /api/keys/:id) |
scripts/homolog/lib/adminClient.mjs |
| L1b — API yüzeyi | /v1/models kataloğu, gerçek bir akışsız sohbet tamamlama isteği (katman açısından kritik model, max_tokens: 5), geçersiz anahtar için 401 ve herkese açık /api/monitoring/health |
tests/homolog/api/core.http (httpYac) |
| L1c — SSE akışı | Gerçek akışlı sohbet tamamlama; text/event-stream, en az bir içerik deltası ve bir [DONE] sonlandırıcısı bulunduğunu doğrular |
scripts/homolog/lib/sseCheck.mjs |
| L2 — gerçek sağlayıcılar | Canlı /v1/models kataloğunda bulunan her kritik sağlayıcı için promptfoo aracılığıyla anında oluşturulan, minimum maliyetli bir sohbet isteği |
scripts/homolog/gen-promptfoo.mjs + scripts/homolog/lib/providerTiers.mjs |
| L4a — UI kimlik doğrulama | Gerçek giriş formu üzerinden bir kez giriş yapar ve oturumu (storageState) UI katmanı genelinde yeniden kullanır |
tests/homolog/ui/auth.setup.ts |
| L4b — UI rotaları | src/app/(dashboard)/dashboard altındaki her statik page.tsx dosyası (dosya sisteminden keşfedilir, dinamik [param] rotaları atlanır) HTTP hatası, sayfa hatası veya Next.js hata sınırı olmadan yüklenir |
tests/homolog/ui/routes.spec.ts |
| L4c — kritik UI akışı | Kontrol paneli UI'ı üzerinden bir API anahtarı oluşturur ve ardından iptal eder (VPS üzerinde kalıntı bırakmaz) | tests/homolog/ui/api-key-flow.spec.ts |
| L5 — birleşik rapor | httpYac'i (junit-to-ctrf aracılığıyla), promptfoo→CTRF bağdaştırıcısını ve Playwright CTRF raporlayıcısını tek bir homolog-ctrf.json dosyasında birleştirir; ayrıca insan tarafından okunabilir bir homolog-report/summary.md oluşturur |
scripts/homolog/run.mjs |
Yeniden oynatımın kendisinde sıfır LLM katılımı vardır — bu bir değerlendirme değil, deterministik bir regresyon test paketidir. Yapay zekâ yalnızca gelecekteki bakım çalışmalarında devreye girer (aşağıdaki Yol Haritası'na bakın).
Ön koşullar
.env.homolog.exampledosyasını.env.homologolarak kopyalayın (git tarafından yok sayılır — asla commit etmeyin) ve şunları doldurun:HOMOLOG_BASE_URL— hedef dağıtım, ör.http://192.168.0.15:20128.HOMOLOG_ADMIN_PASSWORD— söz konusu dağıtımın pano yönetim parolası.HOMOLOG_CRITICAL_PROVIDERS— gerçek bir duman testi sohbet isteği alacak, virgülle ayrılmış sağlayıcı ön ekleri (ör.openai,anthropic,gemini,codex,grok,glm,deepseek,openrouter).HOMOLOG_API_KEY— normal çalıştırmalarda boş bırakın; test paketi kendi geçici anahtarını oluşturur ve iptal eder. Bunu yalnızca tek bir katmanda yalıtılmış olarak hata ayıklamak için ayarlayın.
- Depoda
npm installkomutunu çalıştırın (test paketinin bağımlılıkları —httpyac,promptfoo,playwright-ctrf-json-reporter,junit-to-ctrf,ctrf— normal devDependencies öğeleridir). - Tarayıcı ikili dosyaları henüz mevcut değilse
npx playwright installkomutunu çalıştırın.
Nasıl çalıştırılır
npm run homolog
Sürümü yerel package.json ile eşleşmeyen bir dağıtımı doğrulamak için (ör. hâlâ önceki bir yama sürümünde olan bir homologasyon sunucusu), beklenen sürümü açıkça geçersiz kılın:
HOMOLOG_EXPECT_VERSION=3.8.47 npm run homolog
Herhangi bir katman başarısız olursa çalıştırma sıfırdan farklı bir kodla sonlanır ve hata durumunda bile oluşturduğu geçici API anahtarını her zaman iptal etmeye çalışır (scripts/homolog/run.mjs içindeki finally bloğu).
Raporu okuma
Tüm çıktılar homolog-report/ dizinine yazılır (git tarafından yok sayılır):
summary.md— stdout'a yazdırılan tablonun aynısı; her katman için bir satır (✅/❌ + ayrıntı).homolog-ctrf.json— birleştirilmiş CTRF raporu (API/SSE, sağlayıcı duman testi ve UI sonuçlarının birleşimi) — bir sürümün STOP #2 kontrol listesine eklenmesi gereken yapıt budur.httpyac-junit.xml,api-ctrf.json,providers-ctrf.json,ui-ctrf.json— katman başına ham/ara raporlar.promptfooconfig.yaml,provider-misses.json— mevcut çalıştırma için oluşturulan promptfoo yapılandırması ve canlı katalogda bulunmayan kritik sağlayıcılar.
Başarısız bir L0 işlemi hemen durdurur (geçici anahtar oluşturulmaz), çünkü bir sürüm/sağlık uyuşmazlığı, sonraki her katmanın yanlış dağıtımı doğrulayacağı anlamına gelir.
UI meşru biçimde değiştiğinde temel değerleri yeniden belirleme
L4b (rota duman testi) ve L4c (API anahtarı UI akışı), anlık görüntüler yerine gerçek DOM konumlandırıcılarıyla çalışır; bu nedenle çoğu meşru UI değişikliği test paketinde güncelleme gerektirmez. Bir değişiklik konumlandırıcıyı bozduğunda (ör. yeniden adlandırılmış bir düğme etiketi veya taşınmış bir ayarlar sayfası):
- Konumlandırıcıyı mevcut kaynakla yeniden doğrulayın (spesifikasyonlar, her konumlandırıcının hangi dosya/satıra göre doğrulandığını zaten belgeler — aynı örüntüyü izleyin, tahminde bulunmayın).
tests/homolog/ui/içindeki spesifikasyonu güncelleyin.- Düzeltmeyi doğrulamak için VPS'e karşı
npm run homologkomutunu (veya yalnızca etkilenen Playwright spesifikasyonunu) yeniden çalıştırın, ardından commit edin.
Bu test paketinde görsel/piksel temel değeri yoktur (F1) — bunun için Yol Haritası'na bakın.
Yol Haritası (F2 / F3)
Tasarım ve aşamalı kullanıma sunma planı, dahili planlama spesifikasyonu olan
_tasks/superpowers/specs/2026-07-13-homolog-e2e-suite-design.md içinde yer alır (bağlantı verilmemiştir — dahili bir _tasks/ yapıtıdır ve bu deponun izlenen belgelerinin parçası değildir). Özet:
- F2 — tam adım adım kullanım kaydı → Playwright Test Agents (
planner/generator) bunu akış spesifikasyonlarına dönüştürür (combo oluşturma, sağlayıcıyı test etme, ayarları düzenleme, MCP araçları) + dinamik verilerin (metrikler, zaman damgaları, günlükler) üzerini maskeleyen görsel regresyon temel değeri (Lost Pixel) + her sürüm için birhealerbakım rutini. - F3 — dayanıklılık/sözleşme/entegrasyon kapsamı: devbox üzerinde toxiproxy + OpenAI uyumlu sahte bir sağlayıcı, VPS üzerinde buna yönlendirilmiş bir
homolog-resiliencecombo (enjekte edilen zaman aşımı → geri dönüşü + devre kesicinin/api/monitoring/healthüzerinden açılıp kapanmasını doğrulama);docs/openapi.yamldosyasına karşı kapılı Schemathesis sözleşme testi (düşük--max-examples, sabit seed değerleri, yalnızca LLM dışı uç noktalar); ayrıcanpm run homolog+ onunsummary.mddosyasının/generate-releaseSTOP #2 aşamasına bağlanması.