نقل أو استعادة ذكريات المشروع
يربط opencode-mem أجزاء المشروع بمفتاح hash لهوية المشروع. نقل
مستودع (ترحيل نظام تشغيل، إعادة تنظيم مسار، التبديل من تركيب Windows
إلى مسار أصلي) يمكن أن ييتّم الجزء القديم تحت
~/.opencode-mem/data/projects/ بينما يُنشأ جزء فارغ جديد للمسار
الجديد.
هذه استدعاءات أداة OpenCode memory بحجج JSON، وليست أوامر
لتشغيلها في الطرفية. رمز memory migrate --from ... بأسلوب القضايا يقابل
memory({ mode: "migrate", fromPath: "..." }).
1. نقل محلي عندما ما زلت تعرف المسار القديم
افتح OpenCode في مجلد المشروع الجديد. يجب ألا يحتوي المشروع الهدف بالفعل على ذكريات (يُجهض الترحيل دون تغيير عند التعارض). عاين المصدر والوجهة المكتشفة وإجراءات الملفات قبل تغيير أي شيء:
memory({ mode: "migrate", fromPath: "/old/path/to/project", dryRun: true });memory({ mode: "migrate", fromPath: "/old/path/to/project" });للسلامة، يرفض الترحيل مصدرًا ما زال مجلد مشروعه المخزَّن
موجودًا. إذا أردت عمدًا نقل مصدر نشط، افحص مخرجات التشغيل الجاف
أولًا ثم مرّر allowLinkedSource: true. تُحتفظ ملفات جزء المصدر الأصلية
كنسخ احتياطية ذات طابع زمني *.pre-path-migrate-*.bak.
2. المسار القديم ذهب — اكتشف الجزء اليتيم أولًا
memory({ mode: "list-shards" });memory({ mode: "migrate", fromHash: "fa645294d88bbae2" });يُبلغ list-shards عن كل hash مشروع، وprojectPath المخزَّن، وعدد الذكريات،
والحالة (current، linked، orphaned، missing-file، empty، أو
ambiguous). fromHash هو scopeHash سداسي عشري صغير بطول 16 حرفًا
الذي يعيده هذا الاستدعاء. فضّله عندما لم يعد المجلد القديم موجودًا أو
تحتوي عدة أجزاء على نفس المسار المخزَّن، لأن الهويات القائمة على git
لا يمكن دائمًا إعادة حسابها من مسار مفقود.
3. نسخ احتياطي / استعادة عبر الأجهزة
// on the source machine / old checkoutmemory({ mode: "export", outputPath: "./memories.json" });
// on the destination machine / new checkoutmemory({ mode: "import", inputPath: "./memories.json", dryRun: true });memory({ mode: "import", inputPath: "./memories.json" });يكتب التصدير مستند JSON بإصدار بدون متجهات. يعيد الاستيراد ربط
الذكريات بالمشروع الحالي ويعيد حساب التضمينات بالنموذج المُعَد
حاليًا. يضيف الاستيراد ذكريات إلى مشروع موجود، لكن معرفات الذاكرة المكررة
تجهض الاستيراد بالكامل قبل الكتابة؛ هذا يختلف عن migrate،
الذي يتطلب هدفًا فارغًا.
ملفات التصدير نص عادي ويمكن أن تحتوي على محتوى الذاكرة، وأسماء المستخدمين/عناوين
البريد، وعناوين URL للمستودعات، ومسارات مشروع مطلقة. خزّنها مثل النسخ الاحتياطية
الحساسة الأخرى واحذفها عندما لم تعد مطلوبة. تُحذف الإدخالات الخاصة بالكامل،
ولا تُضمَّن ملفات المستخدم وتاريخ المطالبات. يحتوي
المستند على schemaVersion: 1؛ ترفض عمليات الاستيراد إصدارات المخطط الأحدث غير المدعومة
بدل التخمين.