المجلدات الموثوقة
تحكّم في المشاريع التي يمكنها استخدام القدرات الكاملة لـ Bob Shell مع أمان المجلدات الموثوقة.
تمنحك المجلدات الموثوقة التحكم في المشاريع التي يمكن استخدامها مع Bob Shell. يجب عليك الموافقة على مجلد قبل أن يُحمّل Bob Shell أي إعدادات خاصة بالمشروع، مما يحميك من الكود الضار المحتمل.
ميزة المجلدات الموثوقة معطّلة بشكل افتراضي. لتفعيلها، افتح قائمة /settings واضبط Folder Trust على true. يُشترط إعادة التشغيل لتفعيل التغيير.
كيف تعمل المجلدات الموثوقة
عندما تشغّل Bob Shell من مجلد لأول مرة، يظهر مربع حوار الثقة تلقائيًا يطلب منك اتخاذ قرار:
- Trust folder: منح الثقة الكاملة للمجلد الحالي (مثل
my-project) - Trust parent folder: منح الثقة للمجلد الأب (مثل
safe-projects)، مما يُؤتمن تلقائيًا جميع مجلداته الفرعية. استخدم هذا الخيار إذا كنت تحتفظ بجميع مشاريعك الآمنة في موقع واحد - Don't trust: وضع علامة على المجلد كغير موثوق. يعمل Bob Shell في الوضع الآمن المقيّد
يُحفظ اختيارك في ~/.bob/trustedFolders.json، لذا يُسألك مرة واحدة فقط لكل مجلد.
مستويات الثقة
يخزّن ملف ~/.bob/trustedFolders.json إدخال ثقة واحدًا لكل مجلد. يستخدم كل إدخال أحد مستويات الثقة الثلاثة:
| مستوى الثقة | التأثير |
|---|---|
TRUST_FOLDER | يمنح الثقة الكاملة لمسار المجلد المحدد تمامًا. تُحمَّل إعدادات المشروع والخطافات والأوضاع والمهارات وخوادم MCP بشكل طبيعي. |
TRUST_PARENT | يمنح الثقة الكاملة للمجلد المحدد وجميع المجلدات الفرعية تحته. استخدم هذا المستوى لتغطية جذر مساحة العمل التي تحتوي على ريبوز متعددة. |
DONT_TRUST | يضع علامة على المجلد كغير موثوق. يعمل Bob Shell في الوضع الآمن المقيّد ويحجب جميع الإعدادات الخاصة بالمشروع. انظر تأثير المجلدات غير الموثوقة. |
المجلدات التي لا يوجد لها إدخال في ~/.bob/trustedFolders.json تُسمى غير محسومة. تعتمد طريقة تعامل Bob Shell مع المجلدات غير المحسومة على ما إذا كانت ميزة المجلدات الموثوقة مفعّلة. راجع الجلسات غير التفاعلية للتفاصيل.
تأثير المجلدات غير الموثوقة
عندما يكون مجلد غير موثوق، يعمل Bob Shell في الوضع الآمن المقيّد. تُعطَّل الميزات التالية أو تُتجاهل:
| الميزة | السلوك في الوضع الآمن |
|---|---|
| إعدادات المشروع | لا يُحمَّل .bob/settings.json. تُحجب الأدوات المخصصة والإعدادات الخطرة المحتملة. |
| الموافقة التلقائية على الأدوات | تُطالَب دائمًا قبل تشغيل أي أداة، حتى لو كانت الموافقة التلقائية مفعّلة عالميًا. |
| خوادم MCP | لن يحاول Bob Shell الاتصال بأي خوادم MCP. |
| الأوضاع المخصصة | الأوضاع المحددة في مجلد المشروع غير متاحة. يمكن استخدام الأوضاع المدمجة والأوضاع المحددة عالميًا فقط. |
| المهارات | لا تُحمَّل المهارات المدمجة مع المشروع. الأدوات المتاحة عالميًا والقدرات المدمجة فقط نشطة. |
| Subagents | الـ subagents المخصصة من مجلد المشروع غير متاحة. لا يمكن للوكيل تفويض العمل لمساعدين موفَّرين من المشروع. |
| تعليمات المشروع | لا تُقرأ ملفات التوجيه مثل AGENTS.md وقواعد المشروع المخصصة. يعمل الوكيل بدون التعليمات المخصصة للمشروع. |
يُفعّل منح الثقة لمجلد ما الوظائف الكاملة لـ Bob Shell لمساحة العمل تلك.
إدارة إعدادات الثقة
- كيفية تحديد الثقة
- يتحقق Bob Shell من
~/.bob/trustedFolders.jsonللبحث عن قرار موجود للمجلد الحالي. - تغيير ثقة المجلد الحالي
- شغّل أمر slash
/permissionsمن داخل Bob Shell. يظهر مربع الحوار التفاعلي مما يتيح لك تغيير مستوى الثقة للمجلد الحالي. - عرض جميع قواعد الثقة
- افحص
~/.bob/trustedFolders.jsonفي مجلدك الرئيسي للحصول على قائمة كاملة بجميع قواعد المجلدات الموثوقة وغير الموثوقة.
الجلسات غير التفاعلية
على عكس الوضع التفاعلي، لا تعرض الجلسات غير التفاعلية (bob run) أبدًا مربع حوار الثقة. يعمل Bob Shell بصمت بناءً على قرارات الثقة الموجودة مسبقًا.
السلوك الافتراضي عند تعطيل الميزة
عندما تكون ميزة المجلدات الموثوقة معطّلة (الوضع الافتراضي)، يتعامل Bob Shell مع كل مجلد كموثوق. تُحمَّل إعدادات المشروع والخطافات والأوضاع والمهارات وخوادم MCP لكل مجلد دون قيود، بصرف النظر عمّا إذا كان هناك إدخال في ~/.bob/trustedFolders.json.
السلوك عند تفعيل الميزة
عندما تكون ميزة المجلدات الموثوقة مفعّلة، يُقيّم Bob Shell مستوى ثقة المجلد الحالي قبل تحميل أي محتوى خاص بالمشروع:
- مجلد غير محسوم (لا يوجد إدخال في
~/.bob/trustedFolders.json): يُعامَل المجلد كموثوق. تُحمَّل إعدادات المشروع والخطافات بشكل طبيعي. - إدخال
TRUST_FOLDERأوTRUST_PARENT: المجلد موثوق. تتوفر الوظائف الكاملة. - إدخال
DONT_TRUST: يُلقي Bob Shell خطأً ولا يعمل:<folder> is not a trusted folder. Pass --trust to run in this folder, or run Bob Shell interactively and choose a trust level.
تفعيل ميزة المجلدات الموثوقة وحده لا يمنع تنفيذ الخطافات للمجلدات التي لا يوجد لها قرار ثقة. يُعامَل المجلد غير المحسوم — كمستودع تم استنساخه لأول مرة في pipeline CI/CD مثلًا — كموثوق. فقط إدخال DONT_TRUST الصريح هو الذي يمنع تحميل الخطافات وإعدادات المشروع.
تنفيذ الخطافات في الوضع الصامت
تُنفَّذ الخطافات العامة المحددة في ~/.bob/settings/settings.json لكل مجلد غير مُعلَّم صراحةً بـ DONT_TRUST، بما في ذلك المجلدات غير المحسومة. تخضع خطافات مساحة العمل المحددة في .bob/settings.json داخل المشروع أيضًا لثقة المجلد: تُحمَّل فقط عندما يكون المجلد موثوقًا أو غير محسوم، وتُتجاهل بصمت عندما يكون المجلد DONT_TRUST.
لفهم الخطافات المُكوَّنة وما تفعله قبل تشغيل bob run على مستودع غير مألوف، راجع خطافات دورة الحياة.
سلوك العلامات حسب الوضع
تتصرف علامتا --trust و--auto-approve بشكل مختلف بناءً على كيفية تشغيل Bob Shell. اختر وضعك للاطلاع على السلوك ذي الصلة:
--trust- يُحفظ المجلد كموثوق بشكل دائم. يكتب Bob Shell إدخالاً موثوقًا للمجلد الحالي في
~/.bob/trustedFolders.jsonويتخطى مربع حوار الثقة عند أول وصول. هذا مكافئ لفتح المجلد واختيار "Trust folder" يدويًا. --auto-approve- تُكبَت الموافقة التلقائية بصمت في مجلد غير موثوق. لا تزال تُطالَب قبل تشغيل كل أداة.
--trust- يُعامَل المجلد كموثوق لتلك التشغيلة فقط. لا يُحفظ قرار الثقة ولا يُكتب شيء في مخزن الثقة.
تقوية أنابيب الأتمتة
إذا كنت تشغّل bob run في pipeline CI/CD على مستودعات لا تتحكم فيها — كمستودعات خارجية أو مفتوحة المصدر يتم استنساخها كجزء من عملية البناء — اتّبع الخطوات التالية لمنع تنفيذ كود الخطافات غير الموثوق.
قبل البدء: فعّل ميزة المجلدات الموثوقة بضبط security.folderTrust.enabled على true في ~/.bob/settings/settings.json. يُشترط إعادة التشغيل لتفعيل التغيير.
- حدّد المجلدات التي تتحكم فيها وأضف إدخال
TRUST_PARENTإلى~/.bob/trustedFolders.jsonلكل منها. يغطي هذا جميع المستودعات تحت جذر مساحة عمل معروف ويُبقي كل ما هو خارج تلك الشجرة غير محسوم.{ "/home/runner/work/my-org": "TRUST_PARENT" } - لأي مستودع تستنسخه من مصدر خارجي أو غير موثوق، أضف إدخال
DONT_TRUSTقبل تشغيلbob run:{ "/home/runner/work/my-org": "TRUST_PARENT", "/home/runner/work/third-party-repo": "DONT_TRUST" } - راجع الخطافات العامة المُكوَّنة في
~/.bob/settings/settings.json. تُنفَّذ الخطافات العامة لكل مجلد موثوق أو غير محسوم، بما في ذلك جميع المستودعات التي يغطيها إدخالTRUST_PARENT. احذف أو قيّد نطاق أي خطافات يجب ألا تُشغَّل على كود غير موثوق. - قبل تشغيل
bob runعلى أي مستودع مستنسخ، راجع.bob/settings.jsonداخل ذلك المستودع للبحث عن خطافات مساحة العمل، تمامًا كما تراجع ملفMakefileأو ملف تكوين CI. تُحمَّل خطافات مساحة العمل في أي مجلد موثوق أو غير محسوم.
بعد إتمام هذه الخطوات، يحجب Bob Shell إعدادات المشروع والخطافات لأي مجلد يحتوي على إدخال DONT_TRUST، مع السماح لـ bob run بالعمل بشكل طبيعي في مساحة العمل التي تتحكم فيها.
أفضل الممارسات
- ثق فقط بالمجلدات التي تحتوي على كود راجعته أو أنشأته بنفسك
- استخدم
TRUST_PARENTللمجلدات التي تحتوي على مشاريع آمنة متعددة لتجنّب إدارة إدخالات المجلدات بشكل فردي - راجع
~/.bob/trustedFolders.jsonبانتظام لمراجعة المجلدات الموثوقة - عند العمل مع كود غير مألوف، أضف إدخال
DONT_TRUSTللمجلد المستنسخ قبل تشغيلbob run - راجع الخطافات العامة في
~/.bob/settings/settings.jsonبشكل دوري — إذ تُنفَّذ في كل مجلد موثوق وغير محسوم