openclaw doctor, OpenClaw için onarım ve geçiş aracıdır. Eski yapılandırmayı/durumu düzeltir, sistem sağlığını denetler ve uygulanabilir onarım adımları sunar.
Hızlı başlangıç
Başsız ve otomasyon modları
- --yes
- --fix
- --lint
- --fix --force
- --non-interactive
- --deep
Salt okunur lint modu
openclaw doctor --lint, openclaw doctor --fix aracının otomasyona uygun kardeşidir.
Aynı Doctor kural kayıt defterini paylaşırlar ancak kuralları aynı şekilde
seçmez veya uygulamazlar:
doctor --lint, geniş ve güvenli otomasyon profilini çalıştırır:
statik, yerel ve CI ya da ön kontrol çıktısında yararlı olan denetimler. İsteğe
bağlı danışmanlık denetimlerini, ortama duyarlı denetimleri, canlı hizmete bağlı
denetimleri, hesap/çalışma alanı envanterini ve geçmiş temizliğini atlar. Bu isteğe
bağlı denetimler dahil kayıtlı lint denetiminin tamamını istediğinizde
doctor --lint --all, hedefli bir denetim içinse --only <id> kullanın.
doctor --fix, lint varsayılan profilini kullanmaz ve
--all kabul etmez. Doctor’ın sıralı onarım yolunu çalıştırır: modern
sistem sağlığı denetimleri isteğe bağlı bir repair() uygulaması
sağlayabilirken eski alanlar hâlâ eski Doctor onarım akışını kullanır. Bazı lint
bulguları kasıtlı olarak yalnızca tanılama amaçlıdır; dolayısıyla bir denetimin
--lint --all içinde görünmesi, --fix aracının o alanı
değiştireceği anlamına gelmez. Sözleşme, detect() (bulguları bildirir)
ile repair() (değişiklikleri/farkları/yan etkileri bildirir) öğelerini
birbirinden ayırır. Böylece lint denetimlerini değişiklik planlayıcılarına
dönüştürmeden gelecekteki bir doctor --fix --dry-run için yol açık tutulur.
Bazı yerleşik denetimler, varsayılan doctor --lint otomasyon profilinin
parçası hâline gelmeden --all, --only ve Doctor onarım
akışlarında kullanılabilmeleri için dahili olarak varsayılan biçimde devre dışıdır.
Bulgu önem derecesi yine her bulgu için yayınlanır (info,
warning veya error); varsayılan seçim bir önem derecesi
değildir.
ok: herhangi bir bulgunun seçilen önem derecesi eşiğini karşılayıp karşılamadığıchecksRun/checksSkipped: sayılar (profil,--onlyveya--skipnedeniyle atlananlar)findings:checkId,severity,messageile isteğe bağlıpath,line,column,ocPath,source,target,requirement,fixHintiçeren yapılandırılmış tanılamalar
--severity-min info|warning|error(varsayılanwarning): hem neyin yazdırılacağını hem de neyin sıfır dışı çıkışa neden olacağını belirler.--all: varsayılan otomasyon kümesinin dışında tutulan isteğe bağlı denetimler dahil kayıtlı tüm lint denetimlerini çalıştırır.--only <id>(tekrarlanabilir): yalnızca belirtilen denetim kimliklerini çalıştırır; bilinmeyen bir kimlik hata bulgusu olarak bildirilir.--skip <id>(tekrarlanabilir): çalışmanın geri kalanını etkin tutarken bir denetimi hariç tutar.--json,--severity-min,--all,--onlyve--skip,--lintgerektirir; düzopenclaw doctorve--fixçalıştırmaları bunları reddeder.
Yaptıkları (özet)
Sistem sağlığı, kullanıcı arayüzü ve güncellemeler
Sistem sağlığı, kullanıcı arayüzü ve güncellemeler
- Git kurulumları için isteğe bağlı ön kontrol güncellemesi (yalnızca etkileşimli).
- Kullanıcı arayüzü protokolünün güncellik denetimi (protokol şeması daha yeniyse Control UI yeniden oluşturulur).
- Sistem sağlığı denetimi + yeniden başlatma istemi.
- Yalnızca sorunlu Skills ve Plugin notları; sağlıklı envanter
openclaw skills checkveopenclaw plugins listiçinde kalır.
Yapılandırma ve geçişler
Yapılandırma ve geçişler
- Eski değer biçimleri için yapılandırma normalleştirmesi.
- Eski düz
talk.*alanlarındantalk.provider+talk.providers.<provider>biçimine Talk yapılandırması geçişi. - Eski Chrome uzantısı yapılandırmaları ve Chrome MCP hazırlığı için tarayıcı geçiş denetimleri.
- OpenCode sağlayıcı geçersiz kılma uyarıları (
models.providers.opencode/opencode-zen/opencode-go). - Eski OpenAI Codex sağlayıcı/profil geçişi (
openai-codex→openai) ve eskimodels.providers.openai-codexiçin gölgeleme uyarıları. - OpenAI Codex OAuth profilleri için OAuth TLS ön koşul denetimi.
plugins.allowkısıtlayıcıyken araç ilkesi hâlâ joker karakter veya Plugin’e ait araçlar istediğinde Plugin/araç izin listesi uyarıları.- Eski disk üzerindeki durum geçişi (oturumlar/agent dizini/WhatsApp kimlik doğrulaması).
- Eski Plugin manifest sözleşme anahtarı geçişi (
speechProviders,realtimeTranscriptionProviders,realtimeVoiceProviders,mediaUnderstandingProviders,imageGenerationProviders,videoGenerationProviders,webFetchProviders,webSearchProviders→contracts). - Eski Cron deposu geçişi (
jobId,schedule.cron, üst düzey teslim/yük alanları, yükprovider,notify: trueWebhook geri dönüş işleri). agents.defaults,agents.entries.*vemodels.providers.*genelinde (model başına girdiler dahil) Codex CLI çalışma zamanı sabitleme onarımı (agentRuntime.id: "codex-cli"→"codex").- Plugin’ler etkinleştirildiğinde eski Plugin yapılandırması temizliği;
plugins.enabled=falseolduğunda eski Plugin başvuruları etkisiz çevreleme yapılandırması olarak korunur.
Durum ve bütünlük
Durum ve bütünlük
- Oturum kilit dosyası incelemesi ve eski kilitlerin temizlenmesi.
- Etkilenen 2026.4.24 derlemelerinin oluşturduğu yinelenen istem yeniden yazma dalları için oturum transkripti onarımı.
- Kilitlenmiş ana oturum ve alt agent yeniden başlatma-kurtarma mezar taşı algılaması. Doctor, engellenen oturumları bildirir ve yalnızca mevcut bir mezar taşıyla çakışan eski iptal işaretlerini onarır; otomatik kurtarmayı yeniden etkinleştirmez.
- Durum bütünlüğü ve izin denetimleri (oturumlar, transkriptler, durum dizini).
- Yerel olarak çalışırken yapılandırma dosyası izin denetimleri (chmod 600).
- Model kimlik doğrulaması sağlığı: OAuth süresinin dolmasını denetler, süresi dolmak üzere olan token’ları yenileyebilir ve kimlik doğrulama profili bekleme süresi/devre dışı durumlarını bildirir.
Gateway, hizmetler ve denetleyiciler
Gateway, hizmetler ve denetleyiciler
- Sandbox etkinleştirildiğinde sandbox imajı onarımı.
- Eski hizmet geçişi ve ek Gateway algılama.
- Matrix kanalının eski durum geçişi (
--fix/--repairmodunda). - Gateway çalışma zamanı denetimleri (hizmet kurulu ancak çalışmıyor; önbelleğe alınmış launchd etiketi).
- Kanal durumu uyarıları (çalışan Gateway üzerinden yoklanır).
- Kanala özgü izin denetimleri
openclaw channels capabilitiesaltında bulunur; örneğin Discord ses kanalı izinleriopenclaw channels capabilities --channel discord --target channel:<channel-id>ile denetlenir. - Yerel TUI istemcileri hâlâ çalışırken bozulmuş Gateway olay döngüsü sağlığı için WhatsApp yanıt verebilirlik denetimleri;
--fixyalnızca doğrulanmış yerel TUI istemcilerini durdurur. - Birincil modeller, geri dönüşler, görüntü/video oluşturma modelleri, Heartbeat/alt agent/Compaction geçersiz kılmaları, hook’lar, kanal modeli geçersiz kılmaları ve oturum rota sabitlemelerindeki eski
openai-codex/*model başvuruları için Codex rota onarımı;--fixbunlarıopenai/*olarak yeniden yazar,openai-codex:*kimlik doğrulama profillerini/sırasınıopenai:*biçimine geçirir, eski oturum/tüm agent çalışma zamanı sabitlemelerini kaldırır ve onarılan etkin rotanın Codex’in uyumlu olup olmadığını belirlemesini sağlar. - İsteğe bağlı onarımla denetleyici yapılandırması denetimi (launchd/systemd/schtasks).
- Kurulum veya güncelleme sırasında kabuk
HTTP_PROXY/HTTPS_PROXY/NO_PROXYdeğerlerini yakalayan Gateway hizmetleri için gömülü proxy ortamı temizliği. - Gateway çalışma zamanı denetimleri (desteklenmeyen eski Bun hizmetleri, sürüm yöneticisi yolları).
- Gateway bağlantı noktası çakışması tanılamaları (varsayılan
18789).
Kimlik doğrulama, güvenlik ve eşleştirme
Kimlik doğrulama, güvenlik ve eşleştirme
- Açık DM ilkeleri için güvenlik uyarıları.
- Yerel token modu için Gateway kimlik doğrulama denetimleri (token kaynağı yoksa token oluşturmayı önerir; token SecretRef yapılandırmalarının üzerine yazmaz).
- Cihaz eşleştirme sorunu algılama (bekleyen ilk eşleştirme istekleri, bekleyen rol/kapsam yükseltmeleri, eski yerel cihaz token’ı önbelleği sapması ve eşleştirilmiş kayıt kimlik doğrulama sapması).
Çalışma alanı ve kabuk
Çalışma alanı ve kabuk
- Linux’ta systemd linger denetimi.
- Çalışma alanı önyükleme dosyası boyutu denetimi (bağlam dosyaları için kesilme/sınıra yaklaşma uyarıları).
- Varsayılan agent için Skills hazırlık denetimi; eksik ikili dosya, ortam, yapılandırma veya işletim sistemi gereksinimleri bulunan izin verilmiş Skills öğelerini bildirir ve
--fix,skills.entriesiçindeki kullanılamayan Skills öğelerini devre dışı bırakabilir. - Kabuk tamamlama durumu denetimi ve otomatik kurulum/yükseltme.
- Bellek araması gömme sağlayıcısı hazırlık denetimi (yerel model, uzak API anahtarı veya QMD ikili dosyası).
- Kaynak kurulum denetimleri (pnpm çalışma alanı uyuşmazlığı, eksik kullanıcı arayüzü varlıkları, eksik tsx ikili dosyası).
- Güncellenmiş yapılandırmayı + sihirbaz meta verilerini yazar.
Dreams kullanıcı arayüzü geriye dönük doldurma ve sıfırlama
Control UI Dreams sahnesi, grounded dreaming iş akışı için Geri Doldur, Sıfırla ve Grounded Verileri Temizle eylemlerini içerir. Bunlar Gateway doctor tarzı RPC yöntemlerini kullanır ancakopenclaw doctor CLI onarımının/geçişinin parçası değildir.
MEMORY.md üzerinde değişiklik yapmaz, tam doctor geçişlerini çalıştırmaz veya grounded adaylarını kendiliğinden canlı kısa süreli yükseltme deposunda aşamalandırmaz. Grounded geçmiş yeniden oynatmayı normal derin yükseltme hattına beslemek için bunun yerine CLI akışını kullanın:
DREAMS.md inceleme yüzeyi olarak kalır.
Ayrıntılı davranış ve gerekçe
0. İsteğe bağlı güncelleme (git kurulumları)
0. İsteğe bağlı güncelleme (git kurulumları)
1. Yapılandırma normalleştirmesi
1. Yapılandırma normalleştirmesi
talk.provider + talk.providers.<provider> biçimindedir ve gerçek zamanlı ses yapılandırması talk.realtime.* altındadır. Doctor, eski talk.voiceId / talk.voiceAliases / talk.modelId / talk.outputFormat / talk.apiKey biçimlerini sağlayıcı eşlemesine dönüştürür ve eski üst düzey gerçek zamanlı seçicileri (talk.mode, talk.transport, talk.brain, talk.model, talk.voice) talk.realtime içine yeniden yazar.Doctor ayrıca plugins.allow boş değilse ve araç politikası joker karakter veya plugin’e ait araç girdileri kullanıyorsa uyarır. tools.allow: ["*"] yalnızca gerçekten yüklenen plugin’lerin araçlarıyla eşleşir; özel plugin izin listesini atlamaz.2. Eski yapılandırma anahtarı geçişleri
2. Eski yapılandırma anahtarı geçişleri
openclaw doctor komutunu çalıştırmanızı ister. Doctor, hangi eski anahtarların bulunduğunu açıklar, uyguladığı geçişi gösterir ve ~/.openclaw/openclaw.json dosyasını güncellenmiş şemayla yeniden yazar. Gateway başlatma işlemi eski yapılandırma biçimlerini reddeder ve openclaw doctor --fix komutunu çalıştırmanızı ister; başlatma sırasında openclaw.json dosyasını yeniden yazmaz. Cron işi deposu geçişleri de openclaw doctor --fix tarafından işlenir.routing.queue, routing.bindings, routing.agents/defaultAgentId,
routing.transcribeAudio, üst düzey agent.* veya çoklu ajan öncesi
yapılandırma biçimindeki üst düzey identity) artık bir geçiş yolu
yoktur; bunları kullanan yapılandırma artık yeniden yazılmak yerine
doğrulamada başarısız olur. Doctor’ın devam edebilmesi için bu anahtarları
geçerli yapılandırma referansına göre elle düzeltin.plugins.entries.voice-call.config.* satırları, her yapılandırma yüklemesinde
openclaw doctor tarafından değil, Voice Call plugininin kendisi tarafından normalleştirilir. Plugin ayrıca openclaw doctor --fix konumunu işaret eden bir başlangıç uyarısı kaydeder, ancak doctor şu anda bu anahtarlar için
openclaw.json öğesini yeniden yazmaz; değişikliği çalışma zamanında uygulayan,
pluginin kendi normalleştirmesidir.- İki veya daha fazla
channels.<channel>.accountsgirdisi,channels.<channel>.defaultAccountya daaccounts.defaultolmadan yapılandırılırsa doctor, yedek yönlendirmenin beklenmeyen bir hesabı seçebileceği konusunda uyarır. channels.<channel>.defaultAccountbilinmeyen bir hesap kimliğine ayarlanmışsa doctor uyarır ve yapılandırılmış hesap kimliklerini listeler.
2b. OpenCode sağlayıcı geçersiz kılmaları
2b. OpenCode sağlayıcı geçersiz kılmaları
models.providers.opencode, opencode-zen veya opencode-go öğesini elle eklediyseniz bu, openclaw/plugin-sdk/llm içindeki yerleşik OpenCode kataloğunu geçersiz kılar. Bu durum, modelleri yanlış API’ye yönelmeye zorlayabilir veya maliyetleri sıfırlayabilir. Doctor, geçersiz kılmayı kaldırıp model başına API yönlendirmesini ve maliyetleri geri yükleyebilmeniz için uyarır.2c. Tarayıcı geçişi ve Chrome MCP hazırlığı
2c. Tarayıcı geçişi ve Chrome MCP hazırlığı
browser.profiles.*.driver: "extension" → "existing-session"; browser.relayBindHost kaldırılır).Doctor ayrıca defaultProfile: "user" veya yapılandırılmış bir existing-session profili kullandığınızda ana makine yerelindeki Chrome MCP yolunu denetler:- varsayılan otomatik bağlantı profilleri için Google Chrome’un aynı ana makinede yüklü olup olmadığını denetler
- algılanan Chrome sürümünü denetler ve Chrome 144’ten düşük olduğunda uyarır
- tarayıcı inceleme sayfasında uzaktan hata ayıklamayı etkinleştirmenizi hatırlatır (örneğin
chrome://inspect/#remote-debugging,brave://inspect/#remote-debuggingveyaedge://inspect/#remote-debugging)
responsebody, PDF dışa aktarma, indirme yakalama ve toplu eylemler gibi gelişmiş rotalar hâlâ yönetilen bir tarayıcı veya ham CDP profili gerektirir. Bu denetim, ham CDP kullanmaya devam eden Docker, sandbox, uzak tarayıcı veya diğer başsız akışlar için geçerli değildir.2d. OAuth TLS ön koşulları
2d. OAuth TLS ön koşulları
UNABLE_TO_GET_ISSUER_CERT_LOCALLY, süresi dolmuş sertifika veya kendinden imzalı sertifika), doctor platforma özgü düzeltme kılavuzu yazdırır. Homebrew Node kullanılan macOS’ta düzeltme genellikle brew postinstall ca-certificates şeklindedir. --deep ile Gateway sağlıklı olsa bile yoklama çalışır.2e. Codex OAuth sağlayıcı geçersiz kılmaları
2e. Codex OAuth sağlayıcı geçersiz kılmaları
models.providers.openai-codex altına eski OpenAI taşıma ayarları eklediyseniz bunlar, yerleşik Codex OAuth sağlayıcı yolunu gölgeleyebilir. Doctor, eski taşıma geçersiz kılmasını kaldırıp veya yeniden yazıp güncel yönlendirme davranışını geri yükleyebilmeniz için Codex OAuth ile birlikte bu eski taşıma ayarlarını gördüğünde uyarır. Özel proxy’ler ve yalnızca üstbilgi geçersiz kılmaları desteklenmeye devam eder ve bu uyarıyı tetiklemez, ancak kullanıcı tarafından oluşturulan bu istek rotaları örtük Codex seçimine uygun değildir.2f. Codex rota onarımı
2f. Codex rota onarımı
openai-codex/* model başvurularını denetler. Yerel Codex çalıştırma sistemi yönlendirmesi, standart openai/* model başvurularını kullanır ancak yalnızca önek Codex’i hiçbir zaman seçmez. Çalışma zamanı ilkesi ayarlanmamışken veya auto iken, yalnızca kullanıcı tarafından oluşturulmuş istek geçersiz kılması bulunmayan, tam olarak eşleşen resmî HTTPS Platform Responses veya ChatGPT Responses rotası uygundur. Bkz. OpenAI örtük ajan çalışma zamanı.--fix / --repair modunda doctor; birincil modeller, yedekler, görüntü/video oluşturma modelleri, heartbeat/alt ajan/compaction geçersiz kılmaları, hook’lar, kanal modeli geçersiz kılmaları ve kalıcı hâle getirilmiş eski oturum rota durumu dâhil olmak üzere etkilenen varsayılan ajan ve ajan başına başvuruları yeniden yazar:openai-codex/gpt-*,openai/gpt-*olur.- Codex amacı, onarılan ajan modeli başvuruları için sağlayıcı/model kapsamlı
agentRuntime.id: "codex"girdilerine taşınır. - Çalışma zamanı seçimi sağlayıcı/model kapsamında olduğundan eski tüm ajan çalışma zamanı yapılandırması ve kalıcı hâle getirilmiş oturum çalışma zamanı sabitlemeleri kaldırılır.
- Onarılan eski model başvurusu, eski kimlik doğrulama yolunu korumak için Codex yönlendirmesine ihtiyaç duymadığı sürece mevcut sağlayıcı/model çalışma zamanı ilkesi korunur.
- Mevcut model yedek listeleri, eski girdileri yeniden yazılarak korunur; kopyalanan model başına ayarlar eski anahtardan standart
openai/*anahtarına taşınır. - Kalıcı hâle getirilmiş oturum
modelProvider/providerOverride,model/modelOverride, yedek bildirimleri ve kimlik doğrulama profili sabitlemeleri, keşfedilen tüm ajan oturumu depolarında onarılır. - Doctor, eski
agentRuntime.id: "codex-cli"sabitlemelerini (ayrı bir eski çalışma zamanı kimliği)agents.defaults,agents.entries.*vemodels.providers.*model girdilerinin tamamında ayrıca"codex"olarak onarır. /codex ..., “sohbetten yerel bir Codex konuşmasını denetle veya bağla” anlamına gelir./acp ...veyaruntime: "acp", “harici ACP/acpx bağdaştırıcısını kullan” anlamına gelir.
2g. Oturum rotası temizliği
2g. Oturum rotası temizliği
openclaw doctor --fix; sahip olan rota artık yapılandırılmadığında modelOverrideSource: "auto" model sabitlemeleri, çalışma zamanı modeli meta verileri, sabitlenmiş çalıştırma sistemi kimlikleri, CLI oturum bağlamaları ve otomatik kimlik doğrulama profili geçersiz kılmaları gibi otomatik oluşturulmuş eski durumu temizleyebilir. Açık kullanıcı veya eski oturum modeli seçimleri, elle incelenmek üzere bildirilir ve değiştirilmeden bırakılır; bu rota artık istenmiyorsa bunları /model ..., /new ile değiştirin veya oturumu sıfırlayın.3. Eski durum geçişleri (disk düzeni)
3. Eski durum geçişleri (disk düzeni)
- Oturum deposu + dökümler:
~/.openclaw/sessions/konumundan~/.openclaw/agents/<agentId>/sessions/konumuna - Ajan dizini:
~/.openclaw/agent/konumundan~/.openclaw/agents/<agentId>/agent/konumuna - WhatsApp kimlik doğrulama durumu (Baileys): eski
~/.openclaw/credentials/*.jsonkonumundan (oauth.jsonhariç)~/.openclaw/credentials/whatsapp/<accountId>/...konumuna (varsayılan hesap kimliği:default) - İmzalı cihaz kimliği:
~/.openclaw/identity/device.jsonkonumundanstate/openclaw.sqliteiçindekiprimarydevice_identitiessatırına; ayrı cihaz kimlik doğrulama dosyasına dokunulmaz
openclaw doctor aracılığıyla geçirilir. Talk sağlayıcısı/sağlayıcı eşlemesi normalleştirmesi yapısal eşitliğe göre karşılaştırma yaptığından, yalnızca anahtar sırasından kaynaklanan farklar artık tekrarlanan ve etkisiz doctor --fix değişikliklerini tetiklemez.3a. Eski plugin manifest geçişleri
3a. Eski plugin manifest geçişleri
speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, webSearchProviders) için yüklü tüm plugin manifestlerini tarar. Bulunduğunda bunları contracts nesnesine taşımayı ve manifest dosyasını yerinde yeniden yazmayı teklif eder. Bu geçiş bir kez uygulanmış olsa bile aynı sonucu verir; contracts zaten aynı değerlere sahipse eski anahtar, veriler yinelenmeden kaldırılır.3b. Eski cron deposu geçişleri
3b. Eski cron deposu geçişleri
~/.openclaw/cron/jobs.json) eski iş şekillerini denetler.Güncel cron temizlemeleri şunları içerir:jobId→idschedule.cron→schedule.expr- üst düzey yük alanları (
message,model,thinking, …) →payload - üst düzey teslim alanları (
deliver,channel,to,provider, …) →delivery - yük
providerteslim takma adları → açıkdelivery.channel - eski
notify: truewebhook yedek işleri → geçerliyse kullanımdan kaldırılan hamcron.webhookdeğerinden açık webhook teslimi; duyuru işleri sohbet teslimlerini korur vedelivery.completionDestinationdeğerini alır. Ardından doctor eski yapılandırma anahtarını kaldırır. Kullanılabilir bir eski webhook yoksa çalışma zamanı teslimi bunu hiçbir zaman okumadığından, etkisiz üst düzeynotifyişareti hedefi olmayan işlerden kaldırılır (duyuru dâhil mevcut teslim korunur).
jobs.json içinden kaldırılmadan önce etkin deponun yanındaki jobs-quarantine.json konumuna kopyalanır; doctor, elle inceleyebilmeniz veya onarabilmeniz için karantinaya alınan satırları bildirir.Gateway başlangıcı, çalışma zamanı izdüşümünü normalleştirir ve üst düzey notify işaretini yok sayar ancak kalıcı cron durumunu doctor onarımı için bırakır. Doctor, geçiş hedefi olmayan işler için etkisiz işaretleri kaldırır (delivery.mode yok/eksik, kullanılamayan eski webhook hedefi veya mevcut duyuru/sohbet teslimi) ve mevcut teslime dokunmaz; böylece tekrarlanan doctor --fix çalıştırmaları artık aynı iş için yeniden uyarmaz.Linux’ta doctor, kullanıcının crontab’ı hâlâ eski ~/.openclaw/bin/ensure-whatsapp.sh öğesini çağırdığında da uyarır. Ana makineye özgü bu yerel betik, güncel OpenClaw tarafından sürdürülmez ve cron, systemd kullanıcı veri yoluna erişemediğinde ~/.openclaw/logs/whatsapp-health.log konumuna hatalı Gateway inactive iletileri yazabilir. Eski crontab girdisini crontab -e ile kaldırın; güncel sağlık denetimleri için openclaw channels status --probe, openclaw doctor ve openclaw gateway status kullanın.3c. Oturum kilidi temizleme
3c. Oturum kilidi temizleme
--fix / --repair modunda ölü, sahipsiz, yeniden kullanılmış, hatalı biçimlendirilmiş ve eski ya da OpenClaw dışı sahipleri olan kilitleri otomatik olarak kaldırır. Hâlâ çalışan bir OpenClaw işleminin sahip olduğu eski kilitler bildirilir ancak Doctor’ın etkin bir transkript yazıcısını kesintiye uğratmaması için yerinde bırakılır.3d. Oturum transkripti dalı onarımı
3d. Oturum transkripti dalı onarımı
--fix / --repair modunda Doctor, etkilenen her dosyayı özgün dosyanın yanında yedekler ve Gateway geçmişi ile bellek okuyucularının artık yinelenen sıralar görmemesi için transkripti etkin dala göre yeniden yazar.4. Durum bütünlüğü denetimleri (oturum kalıcılığı, yönlendirme ve güvenlik)
4. Durum bütünlüğü denetimleri (oturum kalıcılığı, yönlendirme ve güvenlik)
- Durum dizini eksik: yıkıcı durum kaybı hakkında uyarır, dizini yeniden oluşturmanızı ister ve eksik verileri kurtaramayacağını hatırlatır.
- Durum dizini izinleri: yazılabilirliği doğrular; izinleri onarmayı önerir (ve sahip/grup uyuşmazlığı algılandığında bir
chownipucu verir). - macOS bulutla eşitlenen durum dizini: durum iCloud Drive (
~/Library/Mobile Documents/com~apple~CloudDocs/...) veya~/Library/CloudStorage/...altında çözümlendiğinde uyarır; çünkü eşitleme destekli yollar daha yavaş G/Ç’ye ve kilit/eşitleme yarışlarına neden olabilir. - Linux SD veya eMMC durum dizini: durum bir
mmcblk*bağlama kaynağına çözümlendiğinde uyarır; çünkü SD/eMMC destekli rastgele G/Ç daha yavaş olabilir ve oturum ile kimlik bilgisi yazımları altında daha hızlı yıpranabilir. - Linux geçici durum dizini: durum
tmpfsveyaramfsolarak çözümlendiğinde uyarır; çünkü oturumlar, kimlik bilgileri, yapılandırma ve SQLite durumu (WAL/günlük yan dosyalarıyla birlikte) yeniden başlatmada kaybolur. Dockeroverlaybağlamaları, yazılabilir katmanları kapsayıcı varlığını sürdürdüğü sürece ana makine yeniden başlatmaları boyunca kalıcı olduğundan bilerek işaretlenmez. - Oturum dizinleri eksik: geçmişi kalıcılaştırmak ve
ENOENTçökmelerini önlemek içinsessions/ile oturum deposu dizini gereklidir. - Transkript uyuşmazlığı: son oturum girdilerinin transkript dosyaları eksik olduğunda uyarır.
- Ana oturum “1 satırlı JSONL”: ana transkript yalnızca bir satır içerdiğinde işaretler (geçmiş birikmiyordur).
- Birden çok durum dizini: ana dizinler arasında birden çok
~/.openclawklasörü bulunduğunda veyaOPENCLAW_STATE_DIRbaşka bir yeri gösterdiğinde uyarır (geçmiş kurulumlar arasında bölünebilir). - Uzak mod hatırlatıcısı:
gateway.mode=remoteise Doctor, kendisini uzak ana makinede çalıştırmanızı hatırlatır (durum orada bulunur). - Yapılandırma dosyası izinleri:
~/.openclaw/openclaw.jsongrup/dünya tarafından okunabiliyorsa uyarır ve izinleri600olarak sıkılaştırmayı önerir.
5. Model kimlik doğrulama sağlığı (OAuth süre sonu)
5. Model kimlik doğrulama sağlığı (OAuth süre sonu)
--non-interactive yenileme girişimlerini atlar.Bir OAuth yenilemesi kalıcı olarak başarısız olduğunda (örneğin refresh_token_reused, invalid_grant veya bir sağlayıcının yeniden oturum açmanızı istemesi), Doctor yeniden kimlik doğrulaması gerektiğini bildirir ve çalıştırılacak tam openclaw models auth login --provider ... komutunu yazdırır.Doctor ayrıca kısa bekleme süreleri (hız sınırları/zaman aşımları/kimlik doğrulama hataları) veya daha uzun süreli devre dışı bırakmalar (faturalandırma/kredi hataları) nedeniyle geçici olarak kullanılamayan kimlik doğrulama profillerini bildirir.Tokenları macOS Keychain’de bulunan eski Codex OAuth profilleri (dosya tabanlı yan dosya düzeninden önceki eski ilk katılım) yalnızca Doctor tarafından onarılır. Keychain destekli eski tokenları satır içi olarak auth-profiles.json içine taşımak için etkileşimli bir terminalden openclaw doctor --fix komutunu bir kez çalıştırın; bundan sonra gömülü sıralar (Telegram, cron, alt ajan gönderimi) bunları standart OpenAI OAuth profilleri olarak çözümler.6. Hook model doğrulaması
6. Hook model doğrulaması
hooks.gmail.model ayarlanmışsa Doctor, model referansını kataloğa ve izin listesine göre doğrular; çözümlenmeyecek veya izin verilmeyen durumlarda uyarır.7. Korumalı alan görüntüsü onarımı
7. Korumalı alan görüntüsü onarımı
7b. Plugin kurulum temizliği
7b. Plugin kurulum temizliği
openclaw doctor --fix / openclaw doctor --repair modunda OpenClaw tarafından oluşturulmuş eski Plugin bağımlılığı hazırlama durumunu kaldırır: eski oluşturulmuş bağımlılık kökleri, eski kurulum aşaması dizinleri, önceki paketlenmiş Plugin bağımlılığı onarım kodundan kalan paket yerelindeki kalıntılar ve geçerli paketlenmiş manifesti gölgeleyebilen paketlenmiş @openclaw/* Pluginlerinin sahipsiz veya kurtarılmış yönetilen npm kopyaları. Doctor ayrıca ana makine openclaw paketini, peerDependencies.openclaw bildiren yönetilen npm Pluginlerine yeniden bağlar; böylece openclaw/plugin-sdk/* gibi paket yerelindeki çalışma zamanı içe aktarımları güncellemelerden veya npm onarımlarından sonra çözümlenmeye devam eder.Doctor ayrıca yapılandırma bunlara başvurduğunda ancak yerel Plugin kayıt defteri bunları bulamadığında eksik indirilebilir Pluginleri yeniden kurabilir (önemli plugins.entries, yapılandırılmış kanal/sağlayıcı/arama ayarları, yapılandırılmış ajan çalışma zamanları). Paket güncellemeleri sırasında Doctor, çekirdek paket değiştirilirken Plugin paketlerini yeniden kurmaktan kaçınır; yapılandırılmış bir Plugin hâlâ kurtarma gerektiriyorsa güncellemeden sonra openclaw doctor --fix komutunu yeniden çalıştırın. Aşağıdaki kapsayıcı görüntüsü başlatma istisnası dışında Gateway başlatma ve yapılandırma yeniden yükleme paket onarımı çalıştırmaz; Plugin kurulumları açık Doctor/kurulum/güncelleme çalışmaları olarak kalır.Kapsayıcılaştırılmış Gateway başlatmanın dar kapsamlı bir yükseltme istisnası vardır: openclaw gateway run yeni bir OpenClaw sürümünde başladığında hazır olmadan önce güvenli durum taşımalarını ve mevcut çekirdek sonrası Plugin yakınsamasını çalıştırır, ardından sürüm başına bir denetim noktası kaydeder. Bu başlatma geçişi eski paketlenmiş Plugin kayıtlarını temizleyebilir, yerel Plugin bağlantılarını onarabilir, yakınsama yolu gerektirdiğinde yapılandırılmış Plugin paketlerini yeniden kurabilir ve etkin Plugin yüklerini denetleyebilir. Başlatma güvenli biçimde onaramazsa kapsayıcıyı normal şekilde yeniden başlatmadan önce aynı görüntüyü aynı bağlı durum/yapılandırmaya karşı openclaw doctor --fix ile bir kez çalıştırın.8. Gateway hizmeti taşımaları ve temizlik ipuçları
8. Gateway hizmeti taşımaları ve temizlik ipuçları
openclaw gateway status --deep veya openclaw doctor --deep ile inceleyin, ardından yinelenen hizmeti kaldırın ya da bir sistem yöneticisi Gateway yaşam döngüsünün sahibiyse OPENCLAW_SERVICE_REPAIR_POLICY=external değerini ayarlayın.8b. Başlangıç Matrix taşıması
8b. Başlangıç Matrix taşıması
--fix / --repair modunda) taşıma öncesi bir anlık görüntü oluşturur ve ardından en iyi çaba esaslı taşıma adımlarını çalıştırır: eski Matrix durum taşıması ve eski şifreli durum hazırlığı. Her iki adım da ölümcül değildir; hatalar günlüğe kaydedilir ve başlatma devam eder. Salt okunur modda (openclaw doctor, --fix olmadan) bu denetim tamamen atlanır.8c. Cihaz eşleştirme ve kimlik doğrulama sapması
8c. Cihaz eşleştirme ve kimlik doğrulama sapması
- bekleyen ilk eşleştirme istekleri
- zaten eşleştirilmiş cihazlar için bekleyen rol veya kapsam yükseltmeleri
- cihaz kimliği hâlâ eşleşirken cihazın tanımlayıcı kimliğinin artık onaylanmış kayıtla eşleşmediği açık anahtar uyuşmazlığı onarımları
- onaylanmış bir rol için etkin tokenı eksik olan eşleştirilmiş kayıtlar
- kapsamları onaylanmış eşleştirme temel çizgisinin dışına sapan eşleştirilmiş tokenlar
- geçerli makine için Gateway tarafındaki bir token döndürmesinden önce oluşturulmuş veya eski kapsam meta verileri taşıyan yerel önbelleğe alınmış cihaz tokenı girdileri
- bekleyen istekleri
openclaw devices listile inceleyin - tam isteği
openclaw devices approve <requestId>ile onaylayın openclaw devices rotate --device <deviceId> --role <role>ile yeni bir token döndürün- eski bir kaydı
openclaw devices remove <deviceId>ile kaldırıp yeniden onaylayın
9. Güvenlik uyarıları
9. Güvenlik uyarıları
openclaw security audit kullanın.10. systemd kalıcılığı (Linux)
10. systemd kalıcılığı (Linux)
11. Çalışma alanı durumu (Skills, Pluginler ve TaskFlow'lar)
11. Çalışma alanı durumu (Skills, Pluginler ve TaskFlow'lar)
- Skills: izin verilen ancak kullanılamayan Skill adlarını listeler; gereksinim ayrıntıları ve tam sayımlar için
openclaw skills checkkullanın. - Pluginler: yalnızca hata veren Plugin kimliklerini bildirir; yüklenen, içe aktarılan, devre dışı bırakılan ve paket Plugin envanteri için
openclaw plugins listkullanın. - Plugin uyumluluk uyarıları: geçerli çalışma zamanıyla uyumluluk sorunları olan Pluginleri işaretler.
- Plugin tanılamaları: Plugin kayıt defterinin yükleme sırasında verdiği tüm uyarıları veya hataları gösterir.
- TaskFlow kurtarma: elle incelenmesi veya iptal edilmesi gereken şüpheli yönetilen TaskFlow’ları gösterir.
- Claude CLI: yalnızca ikili dosya, kimlik doğrulama, profil, çalışma alanı veya proje dizini sorunlarını bildirir; sağlıklı yoklama ayrıntıları gösterilmez.
11b. Önyükleme dosyası boyutu
11b. Önyükleme dosyası boyutu
AGENTS.md, CLAUDE.md veya eklenen diğer bağlam dosyaları) yapılandırılmış karakter bütçesine yakın veya bu bütçenin üzerinde olup olmadığını denetler. Dosya başına ham ve eklenen karakter sayılarını, kırpma yüzdesini, kırpma nedenini (max/file veya max/total) ve toplam eklenen karakterlerin toplam bütçeye oranını bildirir. Dosyalar kırpıldığında veya sınıra yaklaştığında Doctor, agents.defaults.bootstrapMaxChars ve agents.defaults.bootstrapTotalMaxChars ayarlarını düzenlemeye yönelik ipuçları yazdırır.11c. Kabuk tamamlama
11c. Kabuk tamamlama
- Kabuk profili yavaş bir dinamik tamamlama kalıbı kullanıyorsa (
source <(openclaw completion ...)), doctor bunu daha hızlı olan önbelleğe alınmış dosya varyantına yükseltir. - Tamamlama profilde yapılandırılmış ancak önbellek dosyası eksikse doctor önbelleği otomatik olarak yeniden oluşturur.
- Hiçbir tamamlama yapılandırılmamışsa doctor bunu yüklemeyi önerir (yalnızca etkileşimli modda;
--non-interactiveile atlanır).
openclaw completion --write-state komutunu çalıştırın.11d. Eski kanal Plugin temizliği
11d. Eski kanal Plugin temizliği
openclaw doctor --fix eksik bir kanal Plugin’ini kaldırdığında, bu Plugin’e başvuran bağlantısız kanal kapsamlı yapılandırmayı da kaldırır: channels.<id> girdileri, kanalı adlandıran Heartbeat hedefleri ve agents.*.models["<channel>/*"] geçersiz kılmaları. Bu, kanal çalışma zamanı artık mevcut olmadığı hâlde yapılandırmanın Gateway’den ona bağlanmasını istemeye devam ettiği Gateway önyükleme döngülerini önler.12. Gateway kimlik doğrulama kontrolleri (yerel belirteç)
12. Gateway kimlik doğrulama kontrolleri (yerel belirteç)
- Belirteç modu bir belirteç gerektiriyorsa ve hiçbir belirteç kaynağı yoksa doctor bir tane oluşturmayı önerir.
gateway.auth.tokenSecretRef tarafından yönetiliyorsa ancak kullanılamıyorsa doctor uyarır ve bunu düz metinle değiştirmez.openclaw doctor --generate-gateway-token, yalnızca hiçbir belirteç SecretRef’i yapılandırılmamışsa oluşturmayı zorunlu kılar.
12b. Salt okunur, SecretRef uyumlu onarımlar
12b. Salt okunur, SecretRef uyumlu onarımlar
openclaw doctor --fix, hedefli yapılandırma onarımları için durum ailesindeki komutlarla aynı salt okunur SecretRef özet modelini kullanır.- Örnek: Telegram
allowFrom/groupAllowFrom@usernameonarımı, kullanılabilir olduğunda yapılandırılmış bot kimlik bilgilerini kullanmaya çalışır. - Telegram bot belirteci SecretRef aracılığıyla yapılandırılmış ancak geçerli komut yolunda kullanılamıyorsa doctor, kimlik bilgisinin yapılandırılmış-ancak-kullanılamıyor olduğunu bildirir ve çökmek ya da belirteci yanlışlıkla eksik olarak bildirmek yerine otomatik çözümlemeyi atlar.
13. Gateway sağlık kontrolü + yeniden başlatma
13. Gateway sağlık kontrolü + yeniden başlatma
13b. Bellek araması hazırlığı
13b. Bellek araması hazırlığı
- QMD arka ucu:
qmdikili dosyasının kullanılabilir ve başlatılabilir olup olmadığını yoklar. Değilsenpm install -g @tobilu/qmd(veya Bun eşdeğeri) ve elle ikili dosya yolu seçeneği dâhil olmak üzere düzeltme yönergeleri yazdırır. - Açık yerel sağlayıcı: Yerel bir model dosyasını veya tanınan bir uzak/indirilebilir model URL’sini kontrol eder. Eksikse uzak bir sağlayıcıya geçilmesini önerir.
- Açık uzak sağlayıcı (
openai,voyagevb.): Ortamda veya kimlik doğrulama deposunda bir API anahtarının bulunduğunu doğrular. Eksikse uygulanabilir düzeltme ipuçları yazdırır. - Eski otomatik sağlayıcı:
memorySearch.provider: "auto"değerini OpenAI olarak değerlendirir, OpenAI hazırlığını kontrol eder vedoctor --fixbunuprovider: "openai"olarak yeniden yazar.
openclaw memory status --deep komutunu kullanın.14. Kanal durumu uyarıları
14. Kanal durumu uyarıları
15. Gözetmen yapılandırması denetimi + onarım
15. Gözetmen yapılandırması denetimi + onarım
openclaw doctor, gözetmen yapılandırmasını yeniden yazmadan önce onay ister.openclaw doctor --yes, varsayılan onarım istemlerini kabul eder.openclaw doctor --fix, önerilen düzeltmeleri istem göstermeden uygular (--repairbir diğer addır).openclaw doctor --fix --force, özel gözetmen yapılandırmalarının üzerine yazar.OPENCLAW_SERVICE_REPAIR_POLICY=external, Gateway hizmeti yaşam döngüsü için doctor’ı salt okunur durumda tutar. Hizmet durumunu bildirmeye ve hizmet dışı onarımları çalıştırmaya devam eder ancak bu yaşam döngüsünün sahibi harici bir gözetmen olduğundan hizmet yükleme/başlatma/yeniden başlatma/önyükleme, gözetmen yapılandırması yeniden yazma ve eski hizmet temizleme işlemlerini atlar.- Linux’ta doctor, eşleşen systemd Gateway birimi etkinken komut/giriş noktası meta verilerini yeniden yazmaz. Ayrıca yinelenen hizmet taraması sırasında etkin olmayan, eski olmayan ek Gateway benzeri birimleri yok sayar; böylece yardımcı hizmet dosyaları temizleme gürültüsü oluşturmaz.
- Belirteç kimlik doğrulaması bir belirteç gerektiriyorsa ve
gateway.auth.tokenSecretRef tarafından yönetiliyorsa doctor hizmet yükleme/onarımı SecretRef’i doğrular ancak çözümlenmiş düz metin belirteç değerlerini gözetmen hizmet ortamı meta verilerine kalıcı olarak kaydetmez. - Doctor, eski LaunchAgent, systemd veya Windows Zamanlanmış Görev kurulumlarının satır içine gömdüğü, yönetilen
.env/SecretRef destekli hizmet ortamı değerlerini algılar ve bu değerlerin gözetmen tanımı yerine çalışma zamanı kaynağından yüklenmesi için hizmet meta verilerini yeniden yazar. - Doctor,
gateway.portdeğiştikten sonra hizmet komutunun hâlâ eski bir--portdeğerini sabitlediğini algılar ve hizmet meta verilerini geçerli bağlantı noktasına yeniden yazar. - Belirteç kimlik doğrulaması bir belirteç gerektiriyorsa ve yapılandırılmış belirteç SecretRef’i çözümlenemiyorsa doctor, uygulanabilir yönergelerle yükleme/onarım yolunu engeller.
- Hem
gateway.auth.tokenhem degateway.auth.passwordyapılandırılmışsa vegateway.auth.modeayarlanmamışsa doctor, mod açıkça ayarlanana kadar yükleme/onarımı engeller. - Linux kullanıcı systemd birimleri için doctor’ın belirteç sapması kontrolleri, hizmet kimlik doğrulama meta verilerini karşılaştırırken hem
Environment=hem deEnvironmentFile=kaynaklarını içerir. - Doctor hizmet onarımları, yapılandırma en son daha yeni bir sürüm tarafından yazılmışsa eski bir OpenClaw ikili dosyasından gelen Gateway hizmetini yeniden yazmayı, durdurmayı veya yeniden başlatmayı reddeder. Bkz. Gateway sorun giderme.
openclaw gateway install --forcearacılığıyla her zaman tam yeniden yazmayı zorlayabilirsiniz.
16. Gateway çalışma zamanı + bağlantı noktası tanılaması
16. Gateway çalışma zamanı + bağlantı noktası tanılaması
18789) bağlantı noktası çakışmalarını kontrol eder ve olası nedenleri (Gateway zaten çalışıyor, SSH tüneli) bildirir.17. Gateway çalışma zamanı için en iyi uygulamalar
17. Gateway çalışma zamanı için en iyi uygulamalar
nvm, fnm, volta, asdf vb.) çalıştığında uyarır. Bun, OpenClaw’ın node:sqlite durum deposunu açamaz; bu nedenle onarımlar eski Bun hizmetlerini Node’a geçirir. Sürüm yöneticisi yolları, hizmet kabuk başlatma yapılandırmanızı yüklemediğinden yükseltmelerden sonra bozulabilir. Doctor, mevcut olduğunda sistem Node kurulumuna (Homebrew/apt/choco) geçiş yapmayı önerir.Yeni yüklenen veya onarılan macOS LaunchAgent’ları, etkileşimli kabuk PATH’ini kopyalamak yerine standart bir sistem PATH’i (/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin) kullanır; böylece Homebrew tarafından yönetilen sistem ikili dosyaları kullanılabilir kalırken Volta, asdf, fnm, pnpm ve diğer sürüm yöneticisi dizinleri, Node alt süreçlerinin hangisini çözümlediğini değiştirmez. Linux hizmetleri açık ortam köklerini (NVM_DIR, FNM_DIR, VOLTA_HOME, ASDF_DATA_DIR, BUN_INSTALL, PNPM_HOME) ve kararlı kullanıcı ikili dosya dizinlerini korumaya devam eder ancak tahmin edilen sürüm yöneticisi yedek dizinleri yalnızca bu dizinler diskte mevcutsa hizmet PATH’ine yazılır.18. Yapılandırma yazma + sihirbaz meta verileri
18. Yapılandırma yazma + sihirbaz meta verileri
19. Çalışma alanı ipuçları (yedekleme + bellek sistemi)
19. Çalışma alanı ipuçları (yedekleme + bellek sistemi)