تقديم Issue 🐛
كيفية الإبلاغ عن الأخطاء بشكل فعّال وطلب ميزات جديدة.
📋 قبل التقديم
- ✓ ابحث في Issues الموجودة
- ✓ تحقق من التوثيق
- ✓ اختبر على أحدث إصدار
- ✓ جمّع معلومات التشخيص
أنواع Issues
1. 🐛 تقرير خطأ
استخدم هذا عندما يتصرف شيء ما بشكل غير متوقع.
يجب أن يتضمن تقرير الخطأ:
- الوصف: ملخص واضح للمشكلة
- خطوات إعادة الإنتاج: تعليمات مفصلة
- السلوك المتوقع: ما كان يجب أن يحدث
- السلوك الفعلي: ما حدث بالفعل
- البيئة: النظام، الإصدار، التكوين
- السجلات: رسائل خطأ ذات صلة
مثال على تقرير خطأ جيد:
**الوصف**
لا يتصل Gateway بـ WhatsApp بعد إعادة التشغيل.
**خطوات إعادة الإنتاج**
1. قم بتشغيل `openclaw gateway`
2. قم بتسجيل الدخول إلى WhatsApp: `openclaw channels login whatsapp`
3. أعد تشغيل Gateway
4. لاحظ أن اتصال WhatsApp مفقود
**السلوك المتوقع**
يجب أن يعيد WhatsApp الاتصال تلقائياً بعد إعادة التشغيل.
**السلوك الفعلي**
Gateway يبدأ لكن WhatsApp لا يتصل. لا توجد رسائل خطأ في السجلات.
**البيئة**
- نظام التشغيل: macOS 14.2
- إصدار OpenClaw: v0.8.1
- Node: v22.0.0
- طريقة التثبيت: npm global
**السجلات**
```
[gateway] Starting...
[gateway] Loaded config from ~/.openclaw/openclaw.json
[gateway] WhatsApp provider: waiting for connection
```
**معلومات إضافية**
يعمل Telegram بشكل جيد بعد إعادة التشغيل.2. ✨ طلب ميزة
اقترح وظائف أو تحسينات جديدة.
يجب أن يتضمن طلب الميزة:
- حالة الاستخدام: لماذا تحتاج هذه الميزة؟
- السلوك المقترح: كيف يجب أن تعمل؟
- البدائل: الحلول البديلة الحالية
- الأمثلة: تطبيقات مماثلة إن وجدت
مثال على طلب ميزة جيد:
**حالة الاستخدام**
كمطور، أريد جدولة الرسائل ليتم إرسالها لاحقاً.
هذا مفيد لـ:
- الإعلانات المجدولة
- التذكيرات المتأخرة
- إرسال الرسائل عبر المناطق الزمنية
**السلوك المقترح**
```typescript
await agent.scheduleMessage({
to: 'user@example.com',
content: 'تذكير: اجتماع في ساعة واحدة',
sendAt: new Date('2024-03-15T14:00:00Z')
});
```
**البدائل**
حالياً، أستخدم cron jobs خارجي، لكن:
- يتطلب إعداد إضافي
- لا يتكامل مع سجلات الرسائل
- يفتقد ميزات إعادة المحاولة
**أمثلة**
- Slack لديه `chat.scheduleMessage`
- Discord لديه رسائل مجدولة
- Telegram يدعم الرسائل المؤجلة3. 📚 مشكلة توثيق
أبلغ عن عدم دقة أو نقص في التوثيق.
4. ❓ سؤال
اطرح أسئلة حول الاستخدام أو التوضيح.
جمع معلومات التشخيص
معلومات النظام
# معلومات OpenClaw
openclaw --version
node --version
# تقرير الحالة الكامل
openclaw status --all
# فحص الصحة
openclaw health
# معلومات النظام
uname -a # Linux/Mac
systeminfo # Windowsالسجلات
# سجلات Gateway
openclaw logs --tail 50
# سجلات القناة
openclaw channels logs whatsapp --tail 50
# ملفات السجل
# macOS/Linux: /tmp/openclaw/
# Windows: %TEMP%\openclaw\التكوين
قم بتضمين التكوين ذي الصلة (قم بإزالة البيانات الحساسة):
# التكوين (إزالة الأسرار!)
cat ~/.openclaw/openclaw.json | jq 'del(.credentials)'أفضل الممارسات
✅ افعل
- استخدم عناوين وصفية
- قدّم أمثلة قابلة للإعادة
- قم بتضمين معلومات البيئة
- استخدم تنسيق Markdown
- كن محترماً ومهذباً
❌ لا تفعل
- لا تنشر أسراراً أو بيانات حساسة
- لا تفتح مكررات لـ issues موجودة
- لا تستخدم عناوين غامضة
- لا تخلط مشاكل متعددة في issue واحد
بعد التقديم
- راقب التحديثات: سيرد المشرفون قريباً
- قدّم المزيد من المعلومات: إذا طُلب منك ذلك
- اختبر الإصلاحات: بمجرد التنفيذ
- أغلق: إذا حُلت المشكلة
تقديم إصلاح PR
هل وجدت الحل؟ ساهم به!
- قم بـ Fork المستودع
- إنشاء فرع لإصلاحك
- قم بتنفيذ التغييرات
- أضف اختبارات إن أمكن
- قدّم PR