الانتقال إلى المحتوى الرئيسي
يبقي OpenClaw عقود Plugin الأقدم موصولة عبر مهايئات توافق مسماة قبل إزالتها. وهذا يحمي Plugins الحالية المضمّنة والخارجية أثناء تطور عقود SDK، والبيان، والإعداد، والتهيئة، ووقت تشغيل الوكيل.

سجل التوافق

تُتتبَّع عقود توافق Plugin في السجل الأساسي في src/plugins/compat/registry.ts. يحتوي كل سجل على:
  • رمز توافق ثابت
  • الحالة: active أو deprecated أو removal-pending أو removed
  • المالك: SDK أو الإعدادات أو الإعداد أو القناة أو المزوّد أو تنفيذ Plugin أو وقت تشغيل الوكيل، أو النواة
  • تاريخي الإدخال والإهمال عند الاقتضاء
  • إرشادات الاستبدال
  • الوثائق، والتشخيصات، والاختبارات التي تغطي السلوك القديم والجديد
يمثل السجل مصدر الحقيقة لتخطيط المشرفين ولفحوصات مفتّش Plugin المستقبلية. إذا تغيّر سلوك يواجه Plugin، فأضف سجل التوافق أو حدّثه في التغيير نفسه الذي يضيف المهايئ.

حزمة مفتّش Plugin

يجب أن يوجد مفتّش Plugin خارج مستودع OpenClaw الأساسي بوصفه حزمة/مستودعًا منفصلًا مدعومًا بعقود التوافق والبيان المرقّمة بالإصدار. يجب أن تكون CLI في اليوم الأول كما يلي:
openclaw-plugin-inspector ./my-plugin
ويجب أن تُخرج:
  • التحقق من صحة البيان/المخطط
  • إصدار توافق العقد الذي يجري فحصه
  • فحوصات بيانات التثبيت/المصدر الوصفية
  • فحوصات الاستيراد في المسار البارد
  • تحذيرات الإهمال والتوافق
استخدم --json للحصول على مخرجات ثابتة قابلة للقراءة آليًا في تعليقات CI التوضيحية. يجب أن تكشف نواة OpenClaw عن العقود والتجهيزات التي يمكن للمفتش استهلاكها، لكن يجب ألا تنشر الملف التنفيذي للمفتش من حزمة openclaw الرئيسية.

سياسة الإهمال

يجب ألا يزيل OpenClaw عقد Plugin موثقًا في الإصدار نفسه الذي يقدّم بديله. تسلسل الترحيل هو:
  1. أضف العقد الجديد.
  2. أبقِ السلوك القديم موصولًا عبر مهايئ توافق مسمّى.
  3. أصدر تشخيصات أو تحذيرات عندما يتمكن مؤلفو Plugins من اتخاذ إجراء.
  4. وثّق البديل والجدول الزمني.
  5. اختبر كلا المسارين القديم والجديد.
  6. انتظر طوال نافذة الترحيل المُعلنة.
  7. لا تُزل إلا بموافقة صريحة على إصدار كاسر للتوافق.
يجب أن تتضمن السجلات المُهمَلة تاريخ بدء التحذير، والبديل، ورابط الوثائق، وتاريخ الإزالة المستهدف عند معرفته.

مجالات التوافق الحالية

تتضمن سجلات التوافق الحالية:
  • استيرادات SDK الواسعة القديمة مثل openclaw/plugin-sdk/compat
  • أشكال Plugins القديمة المعتمدة على الخطافات فقط وbefore_agent_start
  • سلوك قائمة السماح والتفعيل للـ Plugins المضمّنة
  • بيانات البيان الوصفية القديمة لمتغيرات البيئة الخاصة بالمزوّد/القناة
  • تلميحات التفعيل التي يُستعاض عنها بملكية مساهمات البيان
  • الأسماء المستعارة embeddedHarness وagent-harness بينما يتجه الاسم العام نحو agentRuntime
  • الرجوع الاحتياطي لبيانات إعدادات القنوات المضمّنة المُولَّدة بينما تُعتمد بيانات channelConfigs القائمة على السجل أولًا
  • متغير البيئة القديم لتعطيل سجل Plugins المستمر بينما تُرحّل تدفقات الإصلاح المشغّلين إلى openclaw plugins registry --refresh وopenclaw doctor --fix
يجب أن يفضّل كود Plugin الجديد البديل المدرج في السجل وفي دليل الترحيل المحدد. ويمكن للـ Plugins الحالية الاستمرار في استخدام مسار توافق إلى أن تعلن الوثائق، والتشخيصات، وملاحظات الإصدار نافذة إزالة.

ملاحظات الإصدار

يجب أن تتضمن ملاحظات الإصدار حالات إهمال Plugin القادمة مع التواريخ المستهدفة وروابط إلى وثائق الترحيل. ويجب أن يحدث هذا التحذير قبل أن ينتقل مسار التوافق إلى removal-pending أو removed.