الميزات

التراجع (Rollback)

إنشاء لقطات تلقائية لملفات مساحة العمل أثناء مهام الذكاء الاصطناعي. استكشف اقتراحات الذكاء الاصطناعي بأمان وجرّب التغييرات وتراجع بسهولة عن التغييرات غير المرغوبة.

ما هو Rollback

Rollback يتيح لك:

  • الاستكشاف الآمن للتغييرات المقترحة بالذكاء الاصطناعي
  • الاسترداد السهل من التعديلات غير المرغوبة
  • مقارنة نهج تطبيق مختلفة
  • العودة إلى حالات المشروع السابقة دون فقدان العمل

كيف يعمل Rollback

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

تُسجَّل اللقطات عند بدء المهام وقبل تعديلات الملفات.

العمل مع Rollback

يُدمج Rollback مباشرةً في سير عملك من خلال واجهة المحادثة ويظهر مباشرةً في سجل محادثتك. تُنشأ اللقطات قبل تعديلات الملفات، مما يتيح سهولة التراجع عن أي تغييرات.

كل لقطة توفر وظيفتين رئيسيتين متاحتين دائماً في سجل المحادثة وقائمة rollback:

عرض الفروق

لرؤية الملفات التي تغيرت داخل مهمة:

  1. بعد أن يقوم Bob بتعديل الملفات، سيظهر عرض الملفات المتغيرة مطوياً.
  2. يمكنك النقر للتوسيع.
  3. راجع الفروق في العرض:
    • استخدم إظهار الكل لرؤية جميع الملفات المتغيرة في المهمة
    • يمكنك النقر على ملف معين لرؤية التغييرات

استعادة لقطة

خيارات الاستعادة مرئية دائماً في أزرار rollback ومربعات الحوار، بغض النظر عما إذا تم اكتشاف تغييرات. وهذا يضمن إمكانية الرجوع دائماً إلى أي حالة.

لاستعادة مشروع إلى حالة سابقة:

  1. مرر الماوس فوق أي رسالة مستخدم واستخدم زر rollback، والذي سيستعيد الملفات المتغيرة إلى الحالة قبل تلك الرسالة.
  2. انقر على زر rollback على الملفات الفردية في عرض الملفات المتغيرة. سيُعلم هذا Bob بأنك قمت بالتراجع عن ملف.

القيود

  • النطاق: يلتقط Rollback فقط التغييرات التي أُجريت أثناء مهام Bob النشطة.
  • التغييرات الخارجية: التعديلات التي أُجريت خارج المهام (التعديلات اليدوية والأدوات الأخرى) غير مُضمَّنة.
  • الملفات الكبيرة: قد تؤثر الملفات الثنائية الكبيرة جداً على الأداء.
  • العمل غير المحفوظ: تُستبدَل الاستعادة بأي تغييرات غير محفوظة في مساحة العمل.
  • التوقيت: تُنشأ اللقطات قبل تطبيق التغييرات، مما يوفر شبكة أمان لجميع التعديلات.
  • استخدام الذاكرة: تتراكم اللقطات بمرور الوقت ويمكن أن تستهلك ذاكرة كبيرة، خاصةً للمشاريع الكبيرة أو المهام طويلة الأمد. إن كانت لديك مهام قديمة كثيرة تحتوي على لقطات، ففكر في مسحها بشكل دوري لتحرير الذاكرة. يمكنك فعل ذلك بحذف محادثات المهام القديمة، مما يُزيل اللقطات المرتبطة بها.

التنفيذ التقني

بنية Rollback

يتكوّن نظام Rollback من:

  1. خدمة Rollback: تعالج عمليات الملفات وإدارة الحالة من خلال:
    • إنشاء اللقطات وتخزينها
    • حساب الفروق
    • استعادة الحالة
  2. مكوّنات واجهة المستخدم: عناصر تُعرض في المحادثة وتتيح التفاعل مع Rollback.

عملية الاستعادة

عند تنفيذ الاستعادة، يقوم Bob بما يلي:

  • إكمال إعادة تعيين إلى الوقت المحدد في مهمة معينة.
  • تحديث حالة تتبّع Rollback الداخلية.

نوع التخزين

Rollback مرتبط بالمهمة، أي إن كل لقطة تخص مهمة واحدة بعينها.

حساب الفروق

تستخدم مقارنة Rollback قدرات Git الأساسية لإنتاج فروق منظمة للملفات:

  • تُظهر الملفات المعدّلة التغييرات سطراً بسطر.
  • تُكتشف الملفات الثنائية وتُعالج بصورة صحيحة.
  • قد يكون اكتشاف إعادة التسمية محدوداً؛ تركز الفروق على تغييرات محتوى الملف بين اللقطات.
  • يُحدّد إنشاء الملفات وحذفها بوضوح.

استبعاد الملفات وأنماط التجاهل

يستخدم نظام Rollback استبعاداً ذكياً للملفات كي يتتبع الملفات ذات الصلة فقط.

الاستبعادات المضمنة

توجد أنماط استبعاد مدمجة تتجاهل تلقائياً:

  • مخرجات البناء ومجلدات التبعيات (node_modules/ وdist/ وbuild/).
  • ملفات الوسائط والأصول الثنائية، مثل الصور والفيديو والصوت.
  • ملفات التخزين المؤقت والملفات المؤقتة (.cache/ و.tmp/ و.bak).
  • ملفات الإعدادات التي قد تحتوي على معلومات حساسة (.env).
  • ملفات البيانات الكبيرة، مثل الأرشيفات والملفات التنفيذية والملفات الثنائية.
  • ملفات قواعد البيانات والسجلات.

دعم .gitignore

يحترم نظام Rollback أنماط .gitignore في مساحة عملك:

  • لا تؤدي الملفات المستبعدة بواسطة .gitignore إلى إنشاء لقطة.
  • لا تظهر الملفات المستبعدة في فروق Rollback.
  • تسري قواعد تجاهل Git المعتادة عند تجهيز تغييرات الملفات.

سلوك .bobignore

ملف .bobignore، الذي يتحكم في وصول الذكاء الاصطناعي إلى الملفات، منفصل عن تتبّع Rollback:

  • تظل الملفات المستبعدة بواسطة .bobignore وغير المستبعدة بواسطة .gitignore ملتقطة في Rollback.
  • يمكن استعادة تغييرات الملفات التي لا يستطيع الذكاء الاصطناعي الوصول إليها.

هذا الفصل مقصود: يحد .bobignore من الملفات التي يستطيع الذكاء الاصطناعي الوصول إليها، لا من الملفات التي ينبغي تتبعها في سجل الإصدارات.

ما رأيك في هذا الموضوع؟