🤖HermesBlog
Hermes Official Tutorials · جزء 48/9/2026

الدرس 4: تحديث وإلغاء تثبيت Hermes

Tutorial 4: Updating & Uninstalling Hermes — easy-to-understand guide based on official docs

Hermes tutorial

الدرس 4: تحديث وإلغاء تثبيت Hermes

مرحبًا بعودتكم إلى سلسلة دروس وكيل Hermes! في هذه الحلقة، سنتحدث عن شيء يحتاج كل مستخدم لمعرفته في النهاية: كيف تحافظ على حداثة Hermes وكيف تودّعه عندما يحين الوقت. لا تقلق — الأمر أبسط مما يبدو.

تحديث Hermes: أمر واحد فقط

أسهل طريقة لتحديث Hermes هي بأمر واحد:

hermes update

هذا كل شيء. هذا الأمر يقوم بكل العمل الشاق نيابةً عنك. فهو يسحب أحدث الكود من فرع main، ويحدّث اعتمادياتك، بل ويسألك عن أي خيارات تكوين جديدة أُضيفت منذ آخر تحديث لك. أليس هذا رائعًا؟

ماذا يحدث فعليًا أثناء التحديث؟

قد تتساءل عمّا يحدث خلف الكواليس. إليك التفصيل:

  1. لقطة ما قبل التحديث — قبل أي تغيير، يحفظ Hermes لقطة خفيفة من ملفات الحالة المهمة لديك (بيانات الاقتران، مهام cron، config.yaml، .env، وغيرها). يتم تخطي الملفات الأكبر من 1 جيجابايت حتى لا تبطئ قاعدة البيانات الضخمة الأمور. تُؤخذ هذه اللقطة لكل ملف تعريف على نظامك، ويُخزَّن كلٌّ منها في مجلد state-snapshots/ الخاص به.

  2. سحب Git — يسحب Hermes أحدث الكود من فرع main ويحدّث الوحدات الفرعية.

  3. التحقق من الصياغة بعد السحب + التراجع التلقائي — بعد السحب، يفحص Hermes الملفات الحرجة التسعة التي يحتاجها كل أمر عند الإقلاع. إذا فشل أي منها في التحليل (مثل علامة تعارض دمج شاردة)، يقوم Hermes تلقائيًا بالتراجع إلى الإصدار السابق لتبقى شاشتك قابلة للإقلاع. يمكنك فقط إعادة تشغيل hermes update بمجرد وصول الإصلاح من المصدر.

  4. تثبيت الاعتماديات — يشغّل uv pip install -e ".[all]" لجلب أي اعتماديات جديدة أو متغيرة.

  5. ترحيل التكوين — يكتشف خيارات التكوين الجديدة ويطالبك بتعيينها.

  6. إعادة تشغيل تلقائي للبوابات — يتم تحديث البوابات النشطة حتى يسري الكود الجديد فورًا. البوابات المُدارة بالخدمات (systemd على لينكس، launchd على macOS) تُعاد تشغيلها عبر مدير الخدمات، بينما تُعاد تشغيل البوابات اليدوية تلقائيًا.

تجاوزت مطالبة التكوين؟ لا مشكلة!

إذا تجاوزت مطالبة التكوين أثناء التحديث، يمكنك اللحاق بها لاحقًا:

hermes config check    # لمعرفة ما هو ناقص
hermes config migrate  # لإضافتها بشكل تفاعلي

التحديث من فرع مختلف

افتراضيًا، يتتبع hermes update فرع origin/main. لكن ماذا لو أردت اختبار نسخة مرشحة للإصدار أو فرع ميزة؟ استخدم علامة --branch:

hermes update --branch release-candidate
hermes update --check --branch experimental   # فقط لمعاينة مدى تأخرك

إذا كان نسختك المحلية على فرع مختلف، يقوم Hermes تلقائيًا بحفظ أي عمل غير مُلتزم، ويتبدل إلى الفرع المستهدف، ويسحب. الفروع غير الموجودة محليًا تُتتبع تلقائيًا من origin/<name>. إذا لم يكن الفرع موجودًا في أي مكان، يفشل الأمر بنظافة ويستعيد تغييراتك المحفوظة.

ماذا عن الفروع المتوقفة؟

إذا كانت نسختك على فرع ميزة، يتعامل hermes update معها بذكاء:

  • فرع مدمج بالكامل — يخبرك Hermes أنه مدمج بالكامل ويعود إلى main.
  • تغييرات غير مدمجة، شجرة نظيفة — يتبدل Hermes إلى main حتى يتم التحديث (مهم للمتصلين غير التفاعليين مثل تطبيق سطح المكتب أو مهام cron). التزاماتك تبقى كما هي، ويطبع Hermes إشعارًا واضحًا باسم الفرع وكيفية العودة إليه.

إذا كنت تحتفظ عمدًا بتعديلات مخصصة على فرع، اضبط هذا في config.yaml:

updates:
  parked_branch_strategy: update_in_place

هذا يدمج origin/main داخل فرعك بدلًا من التبديل بعيدًا عنه. دمج تقدمي عندما يكون ممكنًا؛ عند التباعد، يُنشئ علامة أمان ويتوقف بنظافة عند التعارض.

التغييرات المحلية أثناء التحديثات غير التفاعلية

عند تشغيل hermes update في الطرفية، يحفظ Hermes التغييرات غير المُلتزمة، يسحب، ثم يسألك عما إذا كنت تريد استعادتها. لكن عندما يعمل التحديث بدون طرفية (مثل من تطبيق سطح المكتب)، يتخطى Hermes التحديث إذا كانت الشجرة غير نظيفة — مع تحذير واضح يذكر اسم الفرع ومدى تأخره. لا تظاهر بنجاح التحديث!

إلغاء تثبيت Hermes

عندما يحين وقت الوداع، فإن إلغاء التثبيت سهل ومباشر. تأكد من مراجعة وثائق منصتك المحددة لخطوات الإزالة الدقيقة، لكن عمومًا ستحتاج إلى إزالة ملف Hermes الثنائي وتنظيف أي مجلدات تكوين أنشأها.

الخلاصة

الحفاظ على تحديث Hermes سهل للغاية مع hermes update. شبكات الأمان المدمجة — اللقطات، التراجع التلقائي، ومعالجة الفروع — تعني أنه يمكنك التحديث بثقة. وإذا احتجت يومًا للابتعاد، فإن إلغاء التثبيت بنفس البساطة.

ترقبوا الدرس التالي في سلسلتنا!

📖 التوثيق الرسمي

この記事は Hermes Agent のالتوثيق الرسميに基づいています:التوثيق الرسمي › getting-started/updating