السفر عبر الزمن وإعادة التشغيل والتفريع
السفر عبر الزمن وإعادة التشغيل والتفريع
Section titled “السفر عبر الزمن وإعادة التشغيل والتفريع”تسجّل كاظمة لقطات حالة المحادثة الكاملة في كل تكرار، مما يسمح للمستخدمين والمطوّرين بفحص حالات التنفيذ السابقة، إعادة لف الخيوط، أو تفريع المحادثات دون تدمير التاريخ.
1. تسجيل اللقطات (snapshots.db)
Section titled “1. تسجيل اللقطات (snapshots.db)”تُلتقط لقطات الحالة بواسطة SnapshotRecorder (kazma_core/time_travel.py) أثناء تنفيذ المُشرف.
خصائص اللقطة
Section titled “خصائص اللقطة”- الاستمرارية: تُحفظ في قاعدة SQLite WAL عند
kazma-data/snapshots.db. - الاحتفاظ: سقف LRU لكل خيط (افتراضي 50 لقطة لكل خيط، قابل للضبط عبر
time_travel.max_snapshots). - البيانات الملتقطة:
SupervisorStateكامل (الرسائل، التكرار، النموذج، نتائج الأدوات، مساحة العمل النشطة).
2. أوامر السفر التفاعلي عبر الزمن
Section titled “2. أوامر السفر التفاعلي عبر الزمن”| الأمر | الإجراء | السلوك |
|---|---|---|
/replay <iteration> | إعادة لف في المكان | يستعيد الحالة عند <iteration> على نفس معرّف الخيط. يعدّل حالة الخيط الحي عبر graph.aupdate_state(). |
/fork <iteration> | تفريع الخيط | يستعيد الحالة عند <iteration> تحت معرّف خيط جديد (gw-{platform}-{sender}-{uuid}). الخيط الأصلي يبقى دون تغيير. |
3. تكامل واجهة الويب ودفق SSE
Section titled “3. تكامل واجهة الويب ودفق SSE”- موجّه API لإعادة التشغيل: مُثبَّت عند
/api/replay/*(kazma_ui/replay_routes.py). - أحداث SSE للقطات: أدوار الرسم النهائية تُصدر إطار SSE
snapshotيحملsnapshot_idوsnapshot_iteration، مما يمكّن الشريط الجانبي من أزرار إعادة لف فورية.