Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Tam test kiti (paketler, canlı, Docker): Test etme
- Güncelleme ve Plugin paketi doğrulaması: Güncellemeleri ve Plugin’leri test etme
-
pnpm test:force: Varsayılan kontrol portunu tutan kalmış Gateway süreçlerini sonlandırır, ardından çalışan bir örnekle sunucu testlerinin çakışmaması için yalıtılmış bir Gateway portuyla tam Vitest paketini çalıştırır. Önceki bir Gateway çalıştırması 18789 portunu dolu bıraktığında bunu kullanın. -
pnpm test:coverage: Birim paketini V8 kapsamıyla (vitest.unit.config.tsüzerinden) çalıştırır. Bu, tüm depoda tüm dosyaları kapsayan bir kapsam değil, varsayılan birim kulvarı kapsam kapısıdır. Eşikler satırlar/fonksiyonlar/ifadeler için %70 ve dallar için %55’tir.coverage.allfalse olduğu ve varsayılan kulvar kapsam dahil etmelerini kardeş kaynak dosyaları olan hızlı olmayan birim testleriyle sınırladığı için kapı, yüklediği her geçişli import yerine bu kulvarın sahip olduğu kaynağı ölçer. -
pnpm test:coverage:changed: Yalnızcaorigin/mainsonrasında değişen dosyalar için birim kapsamını çalıştırır. -
pnpm test:changed: ucuz akıllı değişen test çalıştırmasıdır. Doğrudan test düzenlemelerinden, kardeş*.test.tsdosyalarından, açık kaynak eşlemelerinden ve yerel import grafiğinden kesin hedefleri çalıştırır. Geniş/config/paket değişiklikleri, kesin testlere eşlenmedikçe atlanır. -
OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed: açık geniş değişen test çalıştırmasıdır. Bir test harness/config/paket düzenlemesinin Vitest’in daha geniş değişen-test davranışına geri düşmesi gerektiğinde bunu kullanın. -
pnpm changed:lanes:origin/mainile diff tarafından tetiklenen mimari kulvarları gösterir. -
pnpm check:changed:origin/mainile diff için akıllı değişen kontrol kapısını çalıştırır. Etkilenen mimari kulvarlar için typecheck, lint ve guard komutlarını çalıştırır, ancak Vitest testlerini çalıştırmaz. Test kanıtı içinpnpm test:changedveya açıkpnpm test <target>kullanın. -
pnpm test: açık dosya/dizin hedeflerini kapsamlı Vitest kulvarları üzerinden yönlendirir. Hedefsiz çalıştırmalar sabit shard gruplarını kullanır ve yerel paralel yürütme için yaprak config’lere genişler; extension grubu, tek dev bir kök-proje süreci yerine her zaman extension başına shard config’lerine genişler. -
Test wrapper çalıştırmaları kısa bir
[test] passed|failed|skipped ... in ...özetiyle biter. Vitest’in kendi süre satırı shard başına ayrıntı olarak kalır. -
Paylaşılan OpenClaw test durumu: Bir test yalıtılmış bir
HOME,OPENCLAW_STATE_DIR,OPENCLAW_CONFIG_PATH, config fixture’ı, çalışma alanı, ajan dizini veya auth-profile deposu gerektirdiğinde Vitest içindensrc/test-utils/openclaw-test-state.tskullanın. -
Süreç E2E yardımcıları: Bir Vitest süreç düzeyi E2E testi çalışan bir Gateway, CLI env, log yakalama ve temizliği tek yerde gerektirdiğinde
test/helpers/openclaw-test-instance.tskullanın. -
Docker/Bash E2E yardımcıları:
scripts/lib/docker-e2e-image.shkaynaklayan kulvarlar container içinedocker_e2e_test_state_shell_b64 <label> <scenario>geçirebilir ve bunuscripts/lib/openclaw-e2e-instance.shile decode edebilir; çok-home’lu script’lerdocker_e2e_test_state_function_b64geçirebilir ve her akıştaopenclaw_test_state_create <label> <scenario>çağırabilir. Daha düşük seviyeli çağırıcılar, container içi shell snippet’i içinscripts/lib/openclaw-test-state.mjs shell --label <name> --scenario <name>ya da source edilebilir host env dosyası içinnode scripts/lib/openclaw-test-state.mjs -- create --label <name> --scenario <name> --env-file <path> --jsonkullanabilir.createöncesindeki--, daha yeni Node runtime’larının--env-filedeğerini Node bayrağı olarak ele almasını engeller. Gateway başlatan Docker/Bash kulvarları, entrypoint çözümleme, mock OpenAI başlatma, Gateway foreground/background başlatma, hazır olma probe’ları, durum env export’u, log dökümleri ve süreç temizliği için container içindescripts/lib/openclaw-e2e-instance.shkaynaklayabilir. -
Tam, extension ve include-pattern shard çalıştırmaları yerel zamanlama verilerini
.artifacts/vitest-shard-timings.jsoniçinde günceller; sonraki whole-config çalıştırmaları bu zamanlamaları yavaş ve hızlı shard’ları dengelemek için kullanır. Include-pattern CI shard’ları zamanlama anahtarına shard adını ekler; bu, filtrelenmiş shard zamanlamalarını whole-config zamanlama verilerinin yerine geçmeden görünür tutar. Yerel zamanlama artifact’ını yok saymak içinOPENCLAW_TEST_PROJECTS_TIMINGS=0ayarlayın. -
Seçili
plugin-sdkvecommandstest dosyaları artık yalnızcatest/setup.tstutan özel hafif kulvarlardan geçer; runtime açısından ağır durumlar mevcut kulvarlarında kalır. -
Kardeş testleri olan kaynak dosyaları, daha geniş dizin glob’larına geri düşmeden önce o kardeşe eşlenir.
src/channels/plugins/contracts/test-helpers,src/plugin-sdk/test-helpersvesrc/plugins/contractsaltındaki yardımcı düzenlemeleri, bağımlılık yolu kesin olduğunda her shard’ı geniş çalıştırmak yerine import eden testleri çalıştırmak için yerel import grafiği kullanır. -
auto-replyartık üç özel config’e de bölünür (core,top-level,reply), böylece reply harness daha hafif üst düzey durum/token/yardımcı testlere baskın olmaz. -
Temel Vitest config’i artık varsayılan olarak
pool: "threads"veisolate: falsekullanır; paylaşılan yalıtılmamış runner repo config’leri genelinde etkindir. -
pnpm test:channels,vitest.channels.config.tsçalıştırır. -
pnpm test:extensionsvepnpm test extensionstüm extension/Plugin shard’larını çalıştırır. Ağır kanal Plugin’leri, tarayıcı Plugin’i ve OpenAI özel shard’lar olarak çalışır; diğer Plugin grupları toplu kalır. Tek bir bundled Plugin kulvarı içinpnpm test extensions/<id>kullanın. -
pnpm test:perf:imports: açık dosya/dizin hedefleri için kapsamlı kulvar yönlendirmesini kullanmayı sürdürürken Vitest import-süresi + import-dökümü raporlamasını etkinleştirir. -
pnpm test:perf:imports:changed: aynı import profilini çıkarır, ancak yalnızcaorigin/mainsonrasında değişen dosyalar için. -
pnpm test:perf:changed:bench -- --ref <git-ref>yönlendirilmiş changed-mode yolunu aynı commit’lenmiş git diff’i için yerel kök-proje çalıştırmasına karşı benchmark eder. -
pnpm test:perf:changed:bench -- --worktreegeçerli worktree değişiklik kümesini önce commit’lemeden benchmark eder. -
pnpm test:perf:profile:main: Vitest ana thread’i için bir CPU profili yazar (.artifacts/vitest-main-profile). -
pnpm test:perf:profile:runner: birim runner için CPU + heap profilleri yazar (.artifacts/vitest-runner-profile). -
pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/baseline-before.json: her full-suite Vitest yaprak config’ini seri olarak çalıştırır ve gruplanmış süre verileriyle config başına JSON/log artifact’larını yazar. Test Performance Agent, yavaş-test düzeltmelerine girişmeden önce bunu baseline olarak kullanır. -
pnpm test:perf:groups:compare .artifacts/test-perf/baseline-before.json .artifacts/test-perf/after-agent.json: performans odaklı bir değişiklikten sonra gruplanmış raporları karşılaştırır. -
Gateway entegrasyonu:
OPENCLAW_TEST_INCLUDE_GATEWAY=1 pnpm testveyapnpm test:gatewayüzerinden isteğe bağlı etkinleştirin. -
pnpm test:e2e: Gateway uçtan uca smoke testlerini çalıştırır (çoklu örnek WS/HTTP/node eşleşmesi). Varsayılan olarakvitest.e2e.config.tsiçinde uyarlanabilir worker’larlathreads+isolate: falsekullanır;OPENCLAW_E2E_WORKERS=<n>ile ayarlayın ve ayrıntılı loglar içinOPENCLAW_E2E_VERBOSE=1ayarlayın. -
pnpm test:live: Sağlayıcı live testlerini çalıştırır (minimax/zai). Atlamayı kaldırmak için API anahtarları veLIVE=1(veya sağlayıcıya özgü*_LIVE_TEST=1) gerektirir. -
pnpm test:docker:all: Paylaşılan live-test imajını build eder, OpenClaw’ı bir kez npm tarball olarak paketler, yalın bir Node/Git runner imajı ile o tarball’ı/appiçine kuran işlevsel bir imajı build eder/yeniden kullanır, ardından Docker smoke kulvarlarınıOPENCLAW_SKIP_DOCKER_BUILD=1ile ağırlıklı bir scheduler üzerinden çalıştırır. Yalın imaj (OPENCLAW_DOCKER_E2E_BARE_IMAGE) installer/update/plugin-dependency kulvarları için kullanılır; bu kulvarlar kopyalanmış repo kaynaklarını kullanmak yerine önceden build edilmiş tarball’ı mount eder. İşlevsel imaj (OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE) normal build edilmiş-uygulama işlevsellik kulvarları için kullanılır.scripts/package-openclaw-for-docker.mjstek yerel/CI paket paketleyicisidir ve Docker tüketmeden önce tarball’ı vedist/postinstall-inventory.jsondosyasını doğrular. Docker kulvar tanımlarıscripts/lib/docker-e2e-scenarios.mjsiçindedir; planner mantığıscripts/lib/docker-e2e-plan.mjsiçindedir;scripts/test-docker-all.mjsseçili planı yürütür.node scripts/test-docker-all.mjs --plan-json, build yapmadan veya Docker çalıştırmadan seçili kulvarlar, imaj türleri, paket/live-image gereksinimleri, durum senaryoları ve kimlik bilgisi kontrolleri için scheduler’ın sahip olduğu CI planını yayar.OPENCLAW_DOCKER_ALL_PARALLELISM=<n>süreç slotlarını kontrol eder ve varsayılanı 10’dur;OPENCLAW_DOCKER_ALL_TAIL_PARALLELISM=<n>sağlayıcıya duyarlı tail havuzunu kontrol eder ve varsayılanı 10’dur. Ağır kulvar sınırları varsayılan olarakOPENCLAW_DOCKER_ALL_LIVE_LIMIT=9,OPENCLAW_DOCKER_ALL_NPM_LIMIT=10veOPENCLAW_DOCKER_ALL_SERVICE_LIMIT=7değerleridir; sağlayıcı sınırları varsayılan olarakOPENCLAW_DOCKER_ALL_LIVE_CLAUDE_LIMIT=4,OPENCLAW_DOCKER_ALL_LIVE_CODEX_LIMIT=4veOPENCLAW_DOCKER_ALL_LIVE_GEMINI_LIMIT=4ile sağlayıcı başına bir ağır kulvardır. Daha büyük host’lar içinOPENCLAW_DOCKER_ALL_WEIGHT_LIMITveyaOPENCLAW_DOCKER_ALL_DOCKER_LIMITkullanın. Bir kulvar düşük paralellikli bir host’ta etkili ağırlık veya kaynak sınırını aşarsa yine de boş bir havuzdan başlayabilir ve kapasiteyi serbest bırakana kadar tek başına çalışır. Yerel Docker daemon oluşturma fırtınalarından kaçınmak için kulvar başlangıçları varsayılan olarak 2 saniye aralıklıdır;OPENCLAW_DOCKER_ALL_START_STAGGER_MS=<ms>ile geçersiz kılın. Runner varsayılan olarak Docker için preflight yapar, eskimiş OpenClaw E2E container’larını temizler, her 30 saniyede etkin-kulvar durumunu yayar, uyumlu kulvarlar arasında sağlayıcı CLI araç cache’lerini paylaşır, geçici live-sağlayıcı hatalarını varsayılan olarak bir kez yeniden dener (OPENCLAW_DOCKER_ALL_LIVE_RETRIES=<n>) ve sonraki çalıştırmalarda en uzundan-ilke sıralama için kulvar zamanlamalarını.artifacts/docker-tests/lane-timings.jsoniçinde saklar. Docker çalıştırmadan kulvar manifestini yazdırmak içinOPENCLAW_DOCKER_ALL_DRY_RUN=1, durum çıktısını ayarlamak içinOPENCLAW_DOCKER_ALL_STATUS_INTERVAL_MS=<ms>veya zamanlama yeniden kullanımını devre dışı bırakmak içinOPENCLAW_DOCKER_ALL_TIMINGS=0kullanın. Yalnızca deterministik/yerel kulvarlar içinOPENCLAW_DOCKER_ALL_LIVE_MODE=skipya da yalnızca live-sağlayıcı kulvarları içinOPENCLAW_DOCKER_ALL_LIVE_MODE=onlykullanın; paket alias’larıpnpm test:docker:local:allvepnpm test:docker:live:allşeklindedir. Live-only modu, ana ve tail live kulvarlarını tek bir en-uzundan-ilke havuzunda birleştirir; böylece sağlayıcı bucket’ları Claude, Codex ve Gemini işlerini birlikte paketleyebilir. Runner,OPENCLAW_DOCKER_ALL_FAIL_FAST=0ayarlanmadıkça ilk hatadan sonra yeni havuzlanmış kulvarları schedule etmeyi durdurur ve her kulvarınOPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MSile geçersiz kılınabilen 120 dakikalık fallback zaman aşımı vardır; seçili live/tail kulvarları daha sıkı kulvar başına sınırlar kullanır. CLI backend Docker kurulum komutlarınınOPENCLAW_LIVE_CLI_BACKEND_SETUP_TIMEOUT_SECONDSüzerinden kendi zaman aşımı vardır (varsayılan 180). Kulvar başına loglar,summary.json,failures.jsonve aşama zamanlamaları.artifacts/docker-tests/<run-id>/altında yazılır; yavaş kulvarları incelemek içinpnpm test:docker:timings <summary.json>ve ucuz hedefli yeniden çalıştırma komutlarını yazdırmak içinpnpm test:docker:rerun <run-id|summary.json|failures.json>kullanın. -
pnpm test:docker:browser-cdp-snapshot: Chromium destekli kaynak E2E container’ı build eder, ham CDP ile yalıtılmış bir Gateway başlatır,browser doctor --deepçalıştırır ve CDP rol snapshot’larının bağlantı URL’lerini, imleçle öne çıkarılmış tıklanabilirleri, iframe ref’lerini ve frame metadata’sını içerdiğini doğrular. -
pnpm test:docker:skill-install: Paketlenmiş OpenClaw tarball’ını yalın bir Docker runner’a kurar,skills.install.allowUploadedArchivesdevre dışı bırakır, canlı ClawHub aramasından güncel bir skill slug’ı çözer,openclaw skills installüzerinden kurar veSKILL.md,.clawhub/origin.json,.clawhub/lock.jsonileskills info --jsondeğerlerini doğrular. -
CLI backend live Docker probe’ları odaklanmış kulvarlar olarak çalıştırılabilir; örneğin
pnpm test:docker:live-cli-backend:codex,pnpm test:docker:live-cli-backend:codex:resumeveyapnpm test:docker:live-cli-backend:codex:mcp. Claude ve Gemini için eşleşen:resumeve:mcpalias’ları vardır. -
pnpm test:docker:openwebui: Dockerize OpenClaw + Open WebUI başlatır, Open WebUI üzerinden oturum açar,/api/modelskontrol eder, ardından/api/chat/completionsüzerinden gerçek proxied chat çalıştırır. Kullanılabilir bir live model anahtarı gerektirir (örneğin~/.profileiçinde OpenAI), harici bir Open WebUI imajı çeker ve normal unit/e2e paketleri kadar CI-kararlı olması beklenmez. -
pnpm test:docker:mcp-channels: Tohumlanmış bir Gateway kapsayıcısı veopenclaw mcp servekomutunu başlatan ikinci bir istemci kapsayıcısı başlatır, ardından yönlendirilmiş konuşma keşfini, transkript okumalarını, ek meta verilerini, canlı olay kuyruğu davranışını, giden gönderim yönlendirmesini ve gerçek stdio köprüsü üzerinden Claude tarzı kanal + izin bildirimlerini doğrular. Claude bildirim doğrulaması ham stdio MCP çerçevelerini doğrudan okur; böylece smoke, köprünün gerçekte ne yaydığını yansıtır. -
pnpm test:docker:upgrade-survivor: Paketlenmiş OpenClaw tarball’ını kirli bir eski kullanıcı fixture’ının üzerine kurar, canlı sağlayıcı veya kanal anahtarları olmadan paket güncellemesini ve etkileşimsiz doctor’ı çalıştırır, ardından bir loopback Gateway başlatır ve agent’ların, kanal yapılandırmasının, Plugin izin listelerinin, çalışma alanı/oturum dosyalarının, bayat eski Plugin bağımlılık durumunun, başlangıcın ve RPC durumunun korunduğunu denetler. -
pnpm test:docker:published-upgrade-survivor: Varsayılan olarakopenclaw@latestkurar, canlı sağlayıcı veya kanal anahtarları olmadan gerçekçi mevcut kullanıcı dosyaları tohumlar, bu taban çizgisini hazır biropenclaw config setkomut tarifiyle yapılandırır, yayımlanmış bu kurulumu paketlenmiş OpenClaw tarball’ına günceller, etkileşimsiz doctor çalıştırır,.artifacts/upgrade-survivor/summary.jsonyazar, ardından bir loopback Gateway başlatır ve yapılandırılmış amaçların, çalışma alanı/oturum dosyalarının, bayat Plugin yapılandırmasının ve eski bağımlılık durumunun, başlangıcın,/healthz,/readyzve RPC durumunun korunduğunu veya temiz biçimde onarıldığını denetler. Tek bir taban çizgisiniOPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECile geçersiz kılın,openclaw@2026.5.2 openclaw@2026.4.23 openclaw@2026.4.15gibiOPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECSile tam bir yerel matrisi genişletin veyaOPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issuesile senaryo fixture’ları ekleyin; reported-issues kümesi, yükseltme sırasında yapılandırılmış harici OpenClaw Plugin’lerinin otomatik olarak kurulduğunu doğrulamak içinconfigured-plugin-installsve salt kaynak Plugin gölgelerinin başlangıcı bozmasını önlemek içinstale-source-plugin-shadowiçerir. Package Acceptance bunlarıpublished_upgrade_survivor_baseline,published_upgrade_survivor_baselinesvepublished_upgrade_survivor_scenariosolarak sunar ve Docker şeritlerine tam paket spesifikasyonlarını teslim etmeden öncelast-stable-4veyaall-since-2026.4.23gibi meta taban çizgisi belirteçlerini çözer. -
pnpm test:docker:update-migration: Yayımlanmış yükseltme survivor harness’ını, varsayılan olarakopenclaw@2026.4.23sürümünden başlayarak temizleme ağırlıklıplugin-deps-cleanupsenaryosunda çalıştırır. AyrıUpdate Migrationworkflow’u bu şeridibaselines=all-since-2026.4.23ile genişletir; böylece.23ve sonrasındaki her kararlı yayımlanmış paket adaya güncellenir ve yapılandırılmış Plugin bağımlılığı temizliğini Full Release CI dışında kanıtlar. -
pnpm test:docker:plugins: Yerel yol,file:, hoist edilmiş bağımlılıklara sahip npm registry paketleri, git hareketli ref’leri, ClawHub fixture’ları, marketplace güncellemeleri ve Claude paketini etkinleştirme/inceleme için kurulum/güncelleme smoke’u çalıştırır.
Yerel PR geçidi
Yerel PR land/gate kontrolleri için şunu çalıştırın:pnpm check:changedpnpm checkpnpm check:test-typespnpm buildpnpm testpnpm check:docs
pnpm test yüklü bir ana makinede aralıklı hata verirse, bunu bir regresyon olarak değerlendirmeden önce bir kez yeniden çalıştırın, ardından pnpm test <path/to/test> ile yalıtın. Belleği kısıtlı ana makineler için şunları kullanın:
OPENCLAW_VITEST_MAX_WORKERS=1 pnpm testOPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/tmp/openclaw-vitest-cache pnpm test:changed
Model gecikme karşılaştırması (yerel anahtarlar)
Betik:scripts/bench-model.ts
Kullanım:
source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10- İsteğe bağlı ortam değişkenleri:
MINIMAX_API_KEY,MINIMAX_BASE_URL,MINIMAX_MODEL,ANTHROPIC_API_KEY - Varsayılan istem: “Tek bir sözcükle yanıtla: ok. Noktalama işareti veya ek metin yok.”
- minimax medyan 1279 ms (min 1114, maks 2431)
- opus medyan 2454 ms (min 1224, maks 3170)
CLI başlatma karşılaştırması
Betik:scripts/bench-cli-startup.ts
Kullanım:
pnpm test:startup:benchpnpm test:startup:bench:smokepnpm test:startup:bench:savepnpm test:startup:bench:updatepnpm test:startup:bench:checkpnpm tsx scripts/bench-cli-startup.tspnpm tsx scripts/bench-cli-startup.ts --runs 12pnpm tsx scripts/bench-cli-startup.ts --preset realpnpm tsx scripts/bench-cli-startup.ts --preset real --case status --case gatewayStatus --runs 3pnpm tsx scripts/bench-cli-startup.ts --preset real --case tasksJson --case tasksListJson --case tasksAuditJson --runs 3pnpm tsx scripts/bench-cli-startup.ts --entry openclaw.mjs --entry-secondary dist/entry.js --preset allpnpm tsx scripts/bench-cli-startup.ts --preset all --output .artifacts/cli-startup-bench-all.jsonpnpm tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --output .artifacts/cli-startup-bench-smoke.jsonpnpm tsx scripts/bench-cli-startup.ts --preset real --cpu-prof-dir .artifacts/cli-cpupnpm tsx scripts/bench-cli-startup.ts --json
startup:--version,--help,health,health --json,status --json,statusreal:health,status,status --json,sessions,sessions --json,tasks --json,tasks list --json,tasks audit --json,agents list --json,gateway status,gateway status --json,gateway health --json,config get gateway.portall: her iki ön ayar
sampleCount, ortalama, p50, p95, min/maks, çıkış kodu/sinyal dağılımı ve maksimum RSS özetlerini içerir. İsteğe bağlı --cpu-prof-dir / --heap-prof-dir, zamanlama ve profil yakalamanın aynı koşumla kullanılması için her çalıştırma başına V8 profilleri yazar.
Kaydedilen çıktı kuralları:
pnpm test:startup:bench:smoke, hedeflenen smoke yapıtını.artifacts/cli-startup-bench-smoke.jsonkonumuna yazarpnpm test:startup:bench:save, tam paket yapıtınıruns=5vewarmup=1kullanarak.artifacts/cli-startup-bench-all.jsonkonumuna yazarpnpm test:startup:bench:update, depoya işlenen temel fikstürüruns=5vewarmup=1kullanaraktest/fixtures/cli-startup-bench.jsonkonumunda yeniler
test/fixtures/cli-startup-bench.jsonpnpm test:startup:bench:updateile yenileyin- Geçerli sonuçları fikstürle
pnpm test:startup:bench:checkkullanarak karşılaştırın
Onboarding E2E (Docker)
Docker isteğe bağlıdır; bu yalnızca kapsayıcılı onboarding smoke testleri için gereklidir. Temiz bir Linux kapsayıcısında tam soğuk başlatma akışı:openclaw health çalıştırır.