تقديم 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

هل وجدت الحل؟ ساهم به!

  1. قم بـ Fork المستودع
  2. إنشاء فرع لإصلاحك
  3. قم بتنفيذ التغييرات
  4. أضف اختبارات إن أمكن
  5. قدّم PR