الإعداد

تجاهل الملفات (.bobignore)

تحكم في الملفات التي يمكن لـ Bob الوصول إليها عبر إنشاء ملف `.bobignore` في مشروعك.

ما هو .bobignore؟

  • الغرض: حماية المعلومات الحساسة ومنع التغييرات العرضية على artifacts البناء أو الأصول الكبيرة، وتحديد النطاق التشغيلي لـ Bob داخل مساحة العمل.
  • كيفية الاستخدام: أنشئ ملفاً باسم .bobignore في مجلد مساحة العمل. اسرد الأنماط في هذا الملف لإخبار Bob بالملفات والمجلدات التي يجب تجاهلها.

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

صياغة الأنماط

صياغة .bobignore مطابقة لـ .gitignore. إليك أمثلة شائعة:

مثالالوصف
node_modules/تجاهل مجلد node_modules بأكمله
*.logتجاهل جميع الملفات المنتهية بـ .log
config/secrets.jsonتجاهل ملف محدد
!important.logاستثناء؛ Bob لن يتجاهل هذا الملف المحدد حتى لو كان نمط أوسع مثل *.log موجوداً
build/تجاهل مجلد build
docs/**/*.mdتجاهل جميع ملفات Markdown في مجلد docs وأدلته الفرعية

للاطلاع على الصياغة، راجع توثيق Git الرسمي حول .gitignore.

كيف تتفاعل أدوات Bob مع .bobignore

تُطبَّق قواعد .bobignore عبر أدوات ملفات Bob:

أدوات القراءة والكتابة

تتحقق هذه الأدوات من .bobignore قبل أي عملية على الملف. إذا كان الملف يطابق نمطاً متجاهلاً، تُحظر العملية:

  • read_file: لا يقرأ الملفات المتجاهلة.
  • write_file: لا يكتب في الملفات المتجاهلة أو ينشئها.
  • apply_diff: لا يطبق diffs على الملفات المتجاهلة.
  • insert_content: لا يُدرج محتوى في الملفات المتجاهلة.
  • search_and_replace: لا يُعدّل الملفات المتجاهلة.
  • GetSymbolsOverview: لا يُحلّل الملفات المتجاهلة للرموز البرمجية.

اكتشاف الملفات وسردها

  • أداة list_files: تُستبعد الملفات المتجاهلة من القوائم أو تُعلَّم برمز 🔒 (انظر "تجربة المستخدم" أدناه).
  • تفاصيل البيئة: تُصفَّى معلومات مساحة العمل المُقدَّمة لـ Bob، مثل علامات التبويب المفتوحة وبنية المشروع، لاستبعاد العناصر المتجاهلة أو تعليمها.

تنفيذ الأوامر

  • أداة execute_command: يتحقق Bob مما إذا كان أمر من قائمة محددة مسبقاً (مثل cat أو grep) يستهدف ملفاً متجاهلاً. إذا كان الأمر كذلك، يُحظر تشغيل الأمر. لا يتم فحص الأوامر الخارجة عن هذه القائمة المحددة مسبقاً مقابل .bobignore.

التقييد: يُعد كل من .bobignore وإعداد sandbox لمساحة العمل ("Allow outside workspace tool requests") ضابطين منفصلين. يُقيّد .bobignore الملفات التي يمكن لأدوات ملفات Bob الوصول إليها داخل مساحة العمل. بينما يتحكم إعداد sandbox لمساحة العمل فيما إذا كان بإمكان أدوات الملفات العمل خارج جذر مساحة العمل. ولا يُقيّد أي من الضابطين execute_command لعمليات shell الاعتباطية؛ حيث يظل بإمكان أمر shell إنشاء الملفات أو تعديلها أو حذفها في أي مكان يسمح به نظام التشغيل، بغض النظر عن هذه الإعدادات.

القيود الرئيسية والنطاق

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

تجربة المستخدم والإشعارات

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