CLI commands

تحديث

OmeniaClaw update

حدّث OmeniaClaw بأمان وبدّل بين قنوات stable/beta/dev.

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

الاستخدام

bash
OmeniaClaw updateOmeniaClaw update statusOmeniaClaw update wizardOmeniaClaw update --channel betaOmeniaClaw update --channel devOmeniaClaw update --tag betaOmeniaClaw update --tag mainOmeniaClaw update --dry-runOmeniaClaw update --no-restartOmeniaClaw update --yesOmeniaClaw update --jsonOmeniaClaw --update

الخيارات

  • --no-restart: تخطَّ إعادة تشغيل خدمة Gateway بعد نجاح التحديث. تحديثات مدير الحزم التي تعيد تشغيل Gateway تتحقق من أن الخدمة المعاد تشغيلها تبلغ عن الإصدار المحدّث المتوقع قبل نجاح الأمر.
  • --channel <stable|beta|dev>: يضبط قناة التحديث (git + npm؛ تُحفظ في الإعدادات).
  • --tag <dist-tag|version|spec>: يتجاوز هدف الحزمة لهذا التحديث فقط. في تثبيتات الحزم، يتم تعيين main إلى github:OmeniaClaw/OmeniaClaw#main.
  • --dry-run: يعاين إجراءات التحديث المخطط لها (تدفق القناة/الوسم/الهدف/إعادة التشغيل) من دون كتابة الإعدادات أو التثبيت أو مزامنة المكونات الإضافية أو إعادة التشغيل.
  • --json: يطبع JSON قابلًا للقراءة آليًا من نوع UpdateRunResult، بما في ذلك postUpdate.plugins.warnings عندما تحتاج المكونات الإضافية المُدارة التالفة أو غير القابلة للتحميل إلى إصلاح بعد نجاح تحديث النواة، وتفاصيل الرجوع الاحتياطي للمكونات الإضافية في قناة beta عندما لا يتوفر إصدار beta لمكوّن إضافي، وpostUpdate.plugins.integrityDrifts عند اكتشاف انحراف في أثر حزمة npm للمكوّن الإضافي أثناء مزامنة المكونات الإضافية بعد التحديث.
  • --timeout <seconds>: مهلة لكل خطوة (القيمة الافتراضية 1800s).
  • --yes: يتخطى مطالبات التأكيد (مثل تأكيد الرجوع إلى إصدار أقدم).

لا يحتوي OmeniaClaw update على علم --verbose. استخدم --dry-run لمعاينة إجراءات القناة/الوسم/التثبيت/إعادة التشغيل المخطط لها، و--json للنتائج القابلة للقراءة آليًا، وOmeniaClaw update status --json عندما تحتاج فقط إلى تفاصيل القناة والتوفر. إذا كنت تصحح سجلات Gateway حول تحديث، فإن إسهاب وحدة التحكم ومستوى سجل الملفات منفصلان: يؤثر --verbose الخاص بـ Gateway في خرج الطرفية/WebSocket، بينما تتطلب سجلات الملفات logging.level: "debug" أو "trace" في الإعدادات. راجع تسجيل Gateway.

update status

يعرض قناة التحديث النشطة + وسم/فرع/SHA الخاص بـ git (لنسخ المصدر)، إضافة إلى توفر التحديث.

bash
OmeniaClaw update statusOmeniaClaw update status --jsonOmeniaClaw update status --timeout 10

الخيارات:

  • --json: يطبع JSON للحالة قابلًا للقراءة آليًا.
  • --timeout <seconds>: مهلة الفحوصات (القيمة الافتراضية 3s).

update wizard

تدفق تفاعلي لاختيار قناة تحديث وتأكيد ما إذا كان يجب إعادة تشغيل Gateway بعد التحديث (القيمة الافتراضية هي إعادة التشغيل). إذا اخترت dev من دون نسخة git، فإنه يعرض إنشاء واحدة.

الخيارات:

  • --timeout <seconds>: مهلة لكل خطوة تحديث (القيمة الافتراضية 1800)

ما الذي يفعله

عندما تبدّل القنوات صراحةً (--channel ...)، يبقي OmeniaClaw أيضًا طريقة التثبيت متوافقة:

  • dev → يضمن وجود نسخة git (الافتراضي: ~/OmeniaClaw، ويمكن تجاوزها بـ OmeniaClaw_GIT_DIR)، ويحدّثها، ويثبّت CLI العام من تلك النسخة.
  • stable → يثبّت من npm باستخدام latest.
  • beta → يفضّل وسم توزيع npm ‏beta، لكنه يرجع إلى latest عندما تكون beta مفقودة أو أقدم من الإصدار المستقر الحالي.

محدّث نواة Gateway التلقائي (عند تمكينه عبر الإعدادات) يشغّل مسار تحديث CLI خارج معالج طلب Gateway الحي. تحديثات مدير الحزم update.run في مستوى التحكم تفرض إعادة تشغيل تحديث غير مؤجلة وبلا فترة تهدئة بعد تبديل الحزمة، لأن عملية Gateway القديمة قد لا تزال تحتوي على أجزاء في الذاكرة تشير إلى ملفات أزالتها الحزمة الجديدة.

بالنسبة إلى تثبيتات مدير الحزم، يحل OmeniaClaw update إصدار الحزمة الهدف قبل استدعاء مدير الحزم. تستخدم تثبيتات npm العامة تثبيتًا مرحليًا: يثبّت OmeniaClaw الحزمة الجديدة في بادئة npm مؤقتة، ويتحقق من مخزون dist المعبأ هناك، ثم يبدّل شجرة الحزمة النظيفة تلك إلى البادئة العامة الحقيقية. إذا فشل التحقق، لا يعمل doctor بعد التحديث ولا مزامنة المكونات الإضافية ولا إعادة التشغيل من الشجرة المشكوك فيها. حتى عندما يطابق الإصدار المثبت الهدف بالفعل، ينعش الأمر تثبيت الحزمة العامة، ثم يشغّل مزامنة المكونات الإضافية، وتحديث إكمال أوامر النواة، وأعمال إعادة التشغيل. يحافظ ذلك على مواءمة الملحقات الجانبية المعبأة وسجلات المكونات الإضافية المملوكة للقناة مع بنية OmeniaClaw المثبتة، مع ترك إعادة بناء إكمال أوامر المكونات الإضافية الكاملة لتشغيلات OmeniaClaw completion --write-state الصريحة.

عند تثبيت خدمة Gateway مُدارة محلية وتمكين إعادة التشغيل، توقف تحديثات مدير الحزم الخدمة الجارية قبل استبدال شجرة الحزمة، ثم تنعش بيانات الخدمة الوصفية من التثبيت المحدّث، وتعيد تشغيل الخدمة، وتتحقق من أن Gateway المعاد تشغيلها تبلغ عن الإصدار المتوقع قبل الإبلاغ عن النجاح. على macOS، يتحقق فحص ما بعد التحديث أيضًا من أن LaunchAgent محمّل/قيد التشغيل للملف النشط وأن منفذ local loopback المكوّن سليم. إذا كان plist مثبتًا لكن launchd لا يشرف عليه، يعيد OmeniaClaw تمهيد LaunchAgent تلقائيًا، ثم يعيد تشغيل فحوصات الصحة/الإصدار/جاهزية القناة. يحمّل التمهيد الجديد مهمة RunAtLoad مباشرة، لذلك لا يقوم استرداد التحديث فورًا بتشغيل kickstart -k على Gateway الذي أُنشئ حديثًا. إذا ظل Gateway غير سليم، يخرج الأمر بقيمة غير صفرية ويطبع مسار سجل إعادة التشغيل إضافة إلى تعليمات صريحة لإعادة التشغيل وإعادة التثبيت والتراجع عن الحزمة. مع --no-restart، يظل استبدال الحزمة يعمل، لكن الخدمة المُدارة لا تُوقف أو تُعاد تشغيلها، لذلك قد يستمر Gateway الجاري في استخدام الشفرة القديمة إلى أن تعيد تشغيله يدويًا.

تدفق نسخة git

اختيار القناة

  • stable: يسحب أحدث وسم غير beta، ثم يبني ويشغّل doctor.
  • beta: يفضّل أحدث وسم -beta، لكنه يرجع إلى أحدث وسم stable عندما تكون beta مفقودة أو أقدم.
  • dev: يسحب main، ثم يجلب ويعيد الأساس.

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

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

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

  • تبديل القناة

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

  • جلب المنبع

    خاص بـ Dev فقط.

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

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

  • إعادة الأساس

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

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

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

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

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

  • تشغيل doctor

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

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

    يزامن المكونات الإضافية إلى القناة النشطة. يستخدم Dev المكونات الإضافية المضمنة؛ وتستخدم stable وbeta ‏npm. يحدّث تثبيتات المكونات الإضافية المتتبعة.

  • على قناة تحديث beta، تحاول تثبيتات مكونات npm وClawHub الإضافية المتتبعة التي تتبع خط default/latest إصدار المكوّن الإضافي @beta أولًا. إذا لم يكن للمكوّن الإضافي إصدار beta، يرجع OmeniaClaw إلى مواصفة default/latest المسجلة ويبلغ عن ذلك كتحذير. بالنسبة إلى مكونات npm الإضافية، يرجع OmeniaClaw أيضًا عندما تكون حزمة beta موجودة لكنها تفشل في تحقق التثبيت. لا تجعل تحذيرات الرجوع الخاصة بالمكونات الإضافية هذه تحديث النواة يفشل. لا تُعاد كتابة الإصدارات الدقيقة والوسوم الصريحة.

    الاختصار --update

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

    ذات صلة

    Was this useful?
    On this page

    On this page