الانتقال إلى المحتوى الرئيسي

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.

openclaw update

حدّث OpenClaw بأمان وبدّل بين قنوات stable/beta/dev. إذا ثبّت عبر npm/pnpm/bun (تثبيت عام، بلا بيانات git وصفية)، تتم التحديثات عبر مسار مدير الحزم في التحديث.

الاستخدام

openclaw update
openclaw update status
openclaw update wizard
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag beta
openclaw update --tag main
openclaw update --dry-run
openclaw update --no-restart
openclaw update --yes
openclaw update --json
openclaw --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.
في وضع Nix ‏(OPENCLAW_NIX_MODE=1)، تكون تشغيلات openclaw update التي تُحدِث تغييرات معطلة. حدّث مصدر Nix أو مُدخل flake لهذا التثبيت بدلًا من ذلك؛ بالنسبة إلى nix-openclaw، استخدم البدء السريع المعتمد على الوكيل أولًا. يبقى openclaw update status وopenclaw update --dry-run للقراءة فقط.
تتطلب الرجوعات إلى إصدار أقدم تأكيدًا لأن الإصدارات الأقدم قد تكسر الإعدادات.

update status

يعرض قناة التحديث النشطة + وسم/فرع/SHA الخاص بـ git (لنسخ المصدر)، إضافة إلى توفر التحديث.
openclaw update status
openclaw update status --json
openclaw 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، ثم يجلب ويعيد الأساس.

خطوات التحديث

1

التحقق من نظافة شجرة العمل

يتطلب عدم وجود تغييرات غير ملتزم بها.
2

تبديل القناة

يبدّل إلى القناة المحددة (وسم أو فرع).
3

جلب المنبع

خاص بـ Dev فقط.
4

بناء تمهيدي (خاص بـ dev فقط)

يشغّل بناء TypeScript في شجرة عمل مؤقتة. إذا فشل الطرف، يرجع حتى 10 التزامات للعثور على أحدث التزام قابل للبناء. اضبط OPENCLAW_UPDATE_PREFLIGHT_LINT=1 لتشغيل lint أيضًا أثناء هذا الفحص التمهيدي؛ يعمل lint في وضع تسلسلي مقيد لأن مضيفات تحديث المستخدم غالبًا أصغر من مشغلات CI.
5

إعادة الأساس

يعيد الأساس إلى الالتزام المحدد (خاص بـ dev فقط).
6

تثبيت التبعيات

يستخدم مدير حزم المستودع. بالنسبة إلى نسخ pnpm، يمهّد المحدّث pnpm عند الطلب (عبر corepack أولًا، ثم رجوع مؤقت إلى npm install pnpm@11) بدلًا من تشغيل npm run build داخل مساحة عمل pnpm.
7

بناء واجهة التحكم

يبني gateway وواجهة التحكم.
8

تشغيل doctor

يعمل openclaw doctor كفحص التحديث الآمن النهائي.
9

مزامنة المكونات الإضافية

يزامن المكونات الإضافية إلى القناة النشطة. يستخدم Dev المكونات الإضافية المضمنة؛ وتستخدم stable وbeta ‏npm. يحدّث تثبيتات المكونات الإضافية المتتبعة.
على قناة تحديث beta، تحاول تثبيتات مكونات npm وClawHub الإضافية المتتبعة التي تتبع خط default/latest إصدار المكوّن الإضافي @beta أولًا. إذا لم يكن للمكوّن الإضافي إصدار beta، يرجع OpenClaw إلى مواصفة default/latest المسجلة ويبلغ عن ذلك كتحذير. بالنسبة إلى مكونات npm الإضافية، يرجع OpenClaw أيضًا عندما تكون حزمة beta موجودة لكنها تفشل في تحقق التثبيت. لا تجعل تحذيرات الرجوع الخاصة بالمكونات الإضافية هذه تحديث النواة يفشل. لا تُعاد كتابة الإصدارات الدقيقة والوسوم الصريحة.
إذا حُل تحديث مكوّن npm إضافي مثبت بدقة إلى أثر تختلف سلامته عن سجل التثبيت المخزن، فإن openclaw update يوقف تحديث أثر ذلك المكوّن الإضافي بدلًا من تثبيته. أعد تثبيت المكوّن الإضافي أو حدّثه صراحة فقط بعد التحقق من أنك تثق بالأثر الجديد.
تُبلغ إخفاقات مزامنة المكونات الإضافية بعد التحديث، عندما تكون محددة ضمن مكوّن إضافي مُدار ويمكن لمسار المزامنة الالتفاف حولها (مثل سجل npm لا يمكن الوصول إليه لمكوّن إضافي غير أساسي)، كتحذيرات بعد نجاح تحديث النواة. تحتفظ نتيجة JSON بالحالة العليا للتحديث status: "ok" وتبلغ عن postUpdate.plugins.status: "warning" مع إرشادات openclaw doctor --fix وopenclaw plugins inspect <id> --runtime --json. لا تزال استثناءات المحدّث أو المزامنة غير المتوقعة تفشل نتيجة التحديث. أصلح تثبيت المكوّن الإضافي أو خطأ التحديث، ثم أعد تشغيل openclaw doctor --fix أو openclaw update.بعد خطوة المزامنة لكل مكوّن إضافي، يشغّل openclaw update تمريرة تقارب ما بعد النواة إلزامية قبل إعادة تشغيل gateway: يصلح حمولات المكونات الإضافية المكوّنة المفقودة، ويتحقق من كل سجل تثبيت متتبع نشط على القرص، ويتحقق ثابتًا من أن package.json الخاص به قابل للتحليل (وأن أي main مُعلَن صراحة موجود). تعيد الإخفاقات من هذه التمريرة — ولقطة إعدادات OpenClaw غير الصالحة — القيمة postUpdate.plugins.status: "error" وتقلب حالة التحديث العليا إلى "error"، لذلك يخرج openclaw update بقيمة غير صفرية ولا يُعاد تشغيل gateway بمجموعة مكونات إضافية غير متحقق منها. يتضمن الخطأ أسطر postUpdate.plugins.warnings[].guidance منظمة تشير إلى openclaw doctor --fix وopenclaw plugins inspect <id> --runtime --json للمتابعة. تُتخطى إدخالات المكونات الإضافية المعطلة والسجلات غير المرتبطة بمصادر موثوقة كأهداف مزامنة رسمية هنا، بما يعكس سياسة skipDisabledPlugins المستخدمة في فحص الحمولات المفقودة، لذلك لا يمكن لسجل مكوّن إضافي معطل قديم أن يمنع تحديثًا صالحًا otherwise.عند بدء Gateway المحدّث، يكون تحميل المكونات الإضافية للتحقق فقط: لا يشغّل بدء التشغيل مديري الحزم ولا يغيّر أشجار التبعيات. تتجاوز عمليات إعادة التشغيل الخاصة بمدير الحزم update.run التأجيل الخامل العادي وفترة تهدئة إعادة التشغيل بعد تبديل شجرة الحزمة، لذلك لا يمكن للعملية القديمة أن تواصل تحميل الأجزاء المحذوفة بكسل عند الحاجة.إذا ظل تمهيد pnpm يفشل، يتوقف المحدّث مبكرًا مع خطأ خاص بمدير الحزم بدلًا من محاولة npm run build داخل نسخة المصدر.

الاختصار --update

يعيد openclaw --update الكتابة إلى openclaw update (مفيد للصدفات وسكربتات التشغيل).

ذات صلة