# Body Diff JSON (مقارنة تزايدية لجسم الطلب)

## الخلفية

يعتمد MainAgent في Claude Code آلية إرسال السياق الكامل — حيث يحمل كل طلب سجل المحادثة الكامل وsystem prompt وتعريفات الأدوات وغيرها. هذا يعني أنه مع تقدم المحادثة يصبح جسم الطلب أكبر فأكبر، ومن الصعب تحديد "ما الجديد في هذه الجولة" عند عرض Body الخام مباشرة.

Body Diff JSON صُمم لحل هذه المشكلة: يقارن تلقائياً بين طلبي MainAgent متتاليين ويستخلص الجزء التزايدي، مما يتيح لك رؤية المحتوى الجديد الفعلي في هذا الطلب بنظرة واحدة.

## آلية العمل

1. **تحديد طلبات MainAgent المتتالية**: يجب أن يكون الطلب الحالي من نوع MainAgent مع وجود طلب MainAgent سابق
2. **مقارنة حقل بحقل**: يتم فحص جميع الحقول العلوية في جسم الطلب مع تخطي الخصائص الداخلية ذات البادئة `_`
3. **استخلاص الفروقات الذكي**:
   - الحقول الجديدة: تُعرض مباشرة
   - الحقول المحذوفة: لا تُعرض (عادة لا تؤثر على الفهم)
   - الحقول المتغيرة: تُعرض القيمة الحالية
   - معالجة خاصة لمصفوفة `messages`: تُعرض فقط الرسائل الجديدة (لأن المحادثة العادية تعمل بنمط الإلحاق، والرسائل السابقة لا تتغير)
4. **كشف تقلص جسم الطلب**: إذا كان جسم الطلب الحالي أصغر من السابق، فهذا يعني حدوث اقتطاع للسياق أو إعادة تعيين الجلسة، وفي هذه الحالة تُعرض رسالة توضيحية بدلاً من diff

## السيناريوهات النموذجية

في جولة محادثة عادية، يحتوي Body Diff JSON عادة على:
- `messages`: رسالة أو رسالتان جديدتان (مدخلات المستخدم + رد المساعد من الجولة السابقة)

إذا رأيت تغييرات في حقول مثل `system` أو `tools` أو `model` في الـ diff، فهذا يعني حدوث تغيير في التكوين في هذه الجولة، وهو غالباً سبب إعادة بناء الذاكرة المؤقتة.

## طريقة الاستخدام

- يُعرض Body Diff JSON في لوحة تفاصيل طلب MainAgent
- انقر على العنوان للتوسيع/الطي
- يدعم وضعي عرض JSON وText، بالإضافة إلى النسخ بنقرة واحدة
- في **CC-Viewer → الإعدادات العامة** في الزاوية العلوية اليسرى، يمكنك تعيين "توسيع Body Diff JSON افتراضياً"
