CLI commands
تحديث
openclaw update
حدّث OpenClaw بأمان وبدّل بين قنوات stable/beta/dev.
إذا ثبّت عبر npm/pnpm/bun (تثبيت عام، بلا بيانات git وصفية)، تتم التحديثات عبر مسار مدير الحزم في التحديث.
الاستخدام
openclaw updateopenclaw update statusopenclaw update wizardopenclaw update --channel betaopenclaw update --channel devopenclaw update --tag betaopenclaw update --tag mainopenclaw update --dry-runopenclaw update --no-restartopenclaw update --yesopenclaw update --jsonopenclaw --updateالخيارات
--no-restart: تخطَّ إعادة تشغيل خدمة Gateway بعد نجاح التحديث. تحديثات مدير الحزم التي تعيد تشغيل Gateway تتحقق من أن الخدمة المعاد تشغيلها تبلغ عن الإصدار المحدّث المتوقع قبل نجاح الأمر.--channel <stable|beta|dev>: يضبط قناة التحديث (git + npm؛ تُحفظ في الإعدادات).--tag <dist-tag|version|spec>: يتجاوز هدف الحزمة لهذا التحديث فقط. في تثبيتات الحزم، يتم تعيينmainإلىgithub:openclaw/openclaw#main.--dry-run: يعاين إجراءات التحديث المخطط لها (تدفق القناة/الوسم/الهدف/إعادة التشغيل) من دون كتابة الإعدادات أو التثبيت أو مزامنة المكونات الإضافية أو إعادة التشغيل.--json: يطبع JSON قابلًا للقراءة آليًا من نوعUpdateRunResult، بما في ذلكpostUpdate.plugins.warningsعندما تحتاج المكونات الإضافية المُدارة التالفة أو غير القابلة للتحميل إلى إصلاح بعد نجاح تحديث النواة، وتفاصيل الرجوع الاحتياطي للمكونات الإضافية في قناة beta عندما لا يتوفر إصدار beta لمكوّن إضافي، وpostUpdate.plugins.integrityDriftsعند اكتشاف انحراف في أثر حزمة npm للمكوّن الإضافي أثناء مزامنة المكونات الإضافية بعد التحديث.--timeout <seconds>: مهلة لكل خطوة (القيمة الافتراضية 1800s).--yes: يتخطى مطالبات التأكيد (مثل تأكيد الرجوع إلى إصدار أقدم).
لا يحتوي openclaw update على علم --verbose. استخدم --dry-run لمعاينة
إجراءات القناة/الوسم/التثبيت/إعادة التشغيل المخطط لها، و--json للنتائج
القابلة للقراءة آليًا، وopenclaw update status --json عندما تحتاج فقط إلى تفاصيل
القناة والتوفر. إذا كنت تصحح سجلات Gateway حول تحديث،
فإن إسهاب وحدة التحكم ومستوى سجل الملفات منفصلان: يؤثر --verbose الخاص بـ Gateway
في خرج الطرفية/WebSocket، بينما تتطلب سجلات الملفات logging.level: "debug" أو
"trace" في الإعدادات. راجع تسجيل Gateway.
update status
يعرض قناة التحديث النشطة + وسم/فرع/SHA الخاص بـ git (لنسخ المصدر)، إضافة إلى توفر التحديث.
openclaw update statusopenclaw update status --jsonopenclaw update status --timeout 10الخيارات:
--json: يطبع JSON للحالة قابلًا للقراءة آليًا.--timeout <seconds>: مهلة الفحوصات (القيمة الافتراضية 3s).
update wizard
تدفق تفاعلي لاختيار قناة تحديث وتأكيد ما إذا كان يجب إعادة تشغيل Gateway
بعد التحديث (القيمة الافتراضية هي إعادة التشغيل). إذا اخترت dev من دون نسخة git، فإنه
يعرض إنشاء واحدة.
الخيارات:
--timeout <seconds>: مهلة لكل خطوة تحديث (القيمة الافتراضية1800)
ما الذي يفعله
عندما تبدّل القنوات صراحةً (--channel ...)، يبقي OpenClaw أيضًا
طريقة التثبيت متوافقة:
dev→ يضمن وجود نسخة git (الافتراضي:~/openclaw، ويمكن تجاوزها بـOPENCLAW_GIT_DIR)، ويحدّثها، ويثبّت CLI العام من تلك النسخة.stable→ يثبّت من npm باستخدامlatest.beta→ يفضّل وسم توزيع npm beta، لكنه يرجع إلىlatestعندما تكون beta مفقودة أو أقدم من الإصدار المستقر الحالي.
محدّث نواة Gateway التلقائي (عند تمكينه عبر الإعدادات) يشغّل مسار تحديث CLI
خارج معالج طلب Gateway الحي. تحديثات مدير الحزم update.run في مستوى التحكم
تفرض إعادة تشغيل تحديث غير مؤجلة وبلا فترة تهدئة بعد تبديل الحزمة،
لأن عملية Gateway القديمة قد لا تزال تحتوي على أجزاء في الذاكرة تشير إلى
ملفات أزالتها الحزمة الجديدة.
بالنسبة إلى تثبيتات مدير الحزم، يحل openclaw update إصدار الحزمة الهدف
قبل استدعاء مدير الحزم. تستخدم تثبيتات npm العامة تثبيتًا مرحليًا:
يثبّت OpenClaw الحزمة الجديدة في بادئة npm مؤقتة، ويتحقق من مخزون dist
المعبأ هناك، ثم يبدّل شجرة الحزمة النظيفة تلك إلى البادئة العامة الحقيقية.
إذا فشل التحقق، لا يعمل doctor بعد التحديث ولا مزامنة المكونات الإضافية ولا
إعادة التشغيل من الشجرة المشكوك فيها. حتى عندما يطابق الإصدار المثبت
الهدف بالفعل، ينعش الأمر تثبيت الحزمة العامة، ثم يشغّل مزامنة المكونات الإضافية،
وتحديث إكمال أوامر النواة، وأعمال إعادة التشغيل. يحافظ ذلك على مواءمة
الملحقات الجانبية المعبأة وسجلات المكونات الإضافية المملوكة للقناة مع
بنية OpenClaw المثبتة، مع ترك إعادة بناء إكمال أوامر المكونات الإضافية الكاملة
لتشغيلات openclaw completion --write-state الصريحة.
عند تثبيت خدمة Gateway مُدارة محلية وتمكين إعادة التشغيل،
توقف تحديثات مدير الحزم الخدمة الجارية قبل استبدال شجرة الحزمة،
ثم تنعش بيانات الخدمة الوصفية من التثبيت المحدّث، وتعيد تشغيل
الخدمة، وتتحقق من أن Gateway المعاد تشغيلها تبلغ عن الإصدار المتوقع قبل
الإبلاغ عن النجاح. على macOS، يتحقق فحص ما بعد التحديث أيضًا من أن LaunchAgent
محمّل/قيد التشغيل للملف النشط وأن منفذ local loopback المكوّن
سليم. إذا كان plist مثبتًا لكن launchd لا يشرف عليه، يعيد OpenClaw
تمهيد LaunchAgent تلقائيًا، ثم يعيد تشغيل فحوصات
الصحة/الإصدار/جاهزية القناة. يحمّل التمهيد الجديد مهمة RunAtLoad
مباشرة، لذلك لا يقوم استرداد التحديث فورًا بتشغيل kickstart -k على Gateway
الذي أُنشئ حديثًا. إذا ظل Gateway غير سليم، يخرج الأمر
بقيمة غير صفرية ويطبع مسار سجل إعادة التشغيل إضافة إلى تعليمات صريحة لإعادة التشغيل
وإعادة التثبيت والتراجع عن الحزمة. مع --no-restart،
يظل استبدال الحزمة يعمل، لكن الخدمة المُدارة لا تُوقف أو
تُعاد تشغيلها، لذلك قد يستمر Gateway الجاري في استخدام الشفرة القديمة إلى أن تعيد تشغيله
يدويًا.
تدفق نسخة git
اختيار القناة
stable: يسحب أحدث وسم غير beta، ثم يبني ويشغّل doctor.beta: يفضّل أحدث وسم-beta، لكنه يرجع إلى أحدث وسم stable عندما تكون beta مفقودة أو أقدم.dev: يسحبmain، ثم يجلب ويعيد الأساس.
خطوات التحديث
التحقق من نظافة شجرة العمل
يتطلب عدم وجود تغييرات غير ملتزم بها.
تبديل القناة
يبدّل إلى القناة المحددة (وسم أو فرع).
جلب المنبع
خاص بـ Dev فقط.
بناء تمهيدي (خاص بـ dev فقط)
يشغّل بناء TypeScript في شجرة عمل مؤقتة. إذا فشل الطرف، يرجع حتى 10 التزامات للعثور على أحدث التزام قابل للبناء. اضبط OPENCLAW_UPDATE_PREFLIGHT_LINT=1 لتشغيل lint أيضًا أثناء هذا الفحص التمهيدي؛ يعمل lint في وضع تسلسلي مقيد لأن مضيفات تحديث المستخدم غالبًا أصغر من مشغلات CI.
إعادة الأساس
يعيد الأساس إلى الالتزام المحدد (خاص بـ dev فقط).
تثبيت التبعيات
يستخدم مدير حزم المستودع. بالنسبة إلى نسخ pnpm، يمهّد المحدّث pnpm عند الطلب (عبر corepack أولًا، ثم رجوع مؤقت إلى npm install pnpm@11) بدلًا من تشغيل npm run build داخل مساحة عمل pnpm.
بناء واجهة التحكم
يبني gateway وواجهة التحكم.
تشغيل doctor
يعمل openclaw doctor كفحص التحديث الآمن النهائي.
مزامنة المكونات الإضافية
يزامن المكونات الإضافية إلى القناة النشطة. يستخدم Dev المكونات الإضافية المضمنة؛ وتستخدم stable وbeta npm. يحدّث تثبيتات المكونات الإضافية المتتبعة.
على قناة تحديث beta، تحاول تثبيتات مكونات npm وClawHub الإضافية المتتبعة التي تتبع
خط default/latest إصدار المكوّن الإضافي @beta أولًا. إذا لم يكن للمكوّن الإضافي
إصدار beta، يرجع OpenClaw إلى مواصفة default/latest المسجلة ويبلغ
عن ذلك كتحذير. بالنسبة إلى مكونات npm الإضافية، يرجع OpenClaw أيضًا عندما تكون حزمة beta
موجودة لكنها تفشل في تحقق التثبيت. لا تجعل تحذيرات الرجوع الخاصة بالمكونات الإضافية هذه
تحديث النواة يفشل. لا تُعاد كتابة الإصدارات الدقيقة والوسوم الصريحة.
الاختصار --update
يعيد openclaw --update الكتابة إلى openclaw update (مفيد للصدفات وسكربتات التشغيل).
ذات صلة
openclaw doctor(يعرض تشغيل التحديث أولًا على نسخ git)- قنوات التطوير
- التحديث
- مرجع CLI