تتم كتابة الحالة على القرص، والبقاء على قيد الحياة الضغط
「State that survives compression — because it's outside the conversation.」
ما هو الفرق بين TodoWrite والمهمة؟
يمكن لـs03's TodoManager أيضًا إدراج المهام - ولكن يتم تخزينها في الذاكرة. بمجرد تشغيل الضغط التلقائي المذكور في s06، يتم استبدال الرسائل[] بالملخص، وتختفي حالة TodoManager (لأنها موجودة في الذاكرة). ص>
تختلف مهمة الخاصة بـ
s07: كل مهمة عبارة عن ملف .tasks/task_42.json. سواء تم ضغط السياق، أو إعادة تشغيل العملية، أو استبدال الوكيل - طالما أن ملف القرص لا يزال موجودًا، فستظل المهمة موجودة. ص>
# .tasks/task_12.json { "id": 12، "subject": "البرامج الوسيطة لمصادقة Refactor", "description": "استخرج منطق JWT إلى الوحدة النمطية المشتركة"، "الحالة": "في انتظار"، "blockedBy": [8, 11], # يجب إكمال رقم 8 ورقم 11 "المالك": ""
قواعد الاختيار: استخدمالمهامللمهام المؤقتة (انسى الأمر بمجرد الانتهاء منه)؛ استخدمالمهمةللمهام المستمرة (التي يتم الاحتفاظ بها عبر الجلسات والمعتمدة).
منعت بواسطة · مزاج الرسم البياني التبعية
blockedBy عبارة عن قائمة بمعرفات المهام - يجب إكمالها قبل أن تصبح المهمة الحالية "قابلة للتنفيذ". ص>
يحتوي تنفيذ s07 على تفاصيل دقيقة: عند اكتمال المهمة، ستزيل نفسها تلقائيًا من القائمة المحظورة بواسطة لجميع المهام الأخرى. ص>
def _clear_dependency(self,Complete_id: int): # افحص كل مهمة، وأزل المعرف المكتمل من المحظور لـ f في self.dir.glob("task_*.json"): المهمة = json.loads(f.read_text()) إذا تم إكمال_id في Task.get("blockedBy", []): المهمة["blockedBy"].remove(completed_id) الذات._save(task)
وبهذه الطريقة، لا يحتاج الوكيل إلى الاحتفاظ بجدول منفصل "ما هي المهام التي تم إلغاء حظرها" - ما عليك سوى اجتياز .tasks/ والعثور على status=="pending" وغير المحظورة والتي أصبحت الآن قابلة للتنفيذ. ص>
تفاعل الرسم البياني التبعية
تمنحك الأداة أدناه رسمًا بيانيًا للتبعية يتكون من 5 مهام. انقر فوق "مكتمل" لرؤية تحديث الحظر تلقائيًا والمهام التي تصبح "قابلة للتنفيذ" (مظللة باللون الأخضر). ص>
هل لا يزال بإمكانه البقاء على قيد الحياة بعد ضغطه؟
ذكرs06 أن الضغط التلقائي سيستبدل الرسائل[] بملخص. لكن المهمة لا تتأثر لأنها موجودة على القرص. اختبره: اسمح للوكيل بإجراء 5 مهام. بعد ضغط مربع الحوار، يقوم بمسح .tasks/ ويمكنه الاستمرار حيث كان. ص>