Skip to content
Apothem
مرجع واجهة سطر الأوامر

rollback

مرجع واجهة سطر الأوامر لأمر apothem rollback.

استعادة إطار عمل إلى الحالة التي كان عليها قبل تثبيته المُسجَّل.

الموجز

apothem rollback --harness NAME|all [--install-id ULID | --last] [--yes]
                 [--project PATH]
                 [--quiet|-q] [--verbose|-v]
                 [--format plain|json] [--json] [--no-color]

يُعيد rollback كل إطار عمل محدّد إلى الحالة التي كان عليها قبل تمريرة التثبيت المُسجَّلة — الأحدث افتراضيًا، أو التي يُسمّيها --install-id. وبالمرور على سجلّ ذلك التثبيت في الدفتر، بدءًا بأحدث تغيير، فإنه:

  • يستعيد كل ملف ودليل كتب التثبيتُ فوقه من النسخة الاحتياطية التي التقطها التثبيت، في مساره المُسجَّل (يُستعاد الدليل الذي استبدله التثبيت كما كان تمامًا، دون الملفات التي أضافها التثبيت إليه)؛
  • يُزيل كل ملف ودليل أنشأه التثبيت، ويُعيد أي مسار من البنية القديمة أزاحه التثبيت؛
  • يُزيل مخازن البيانات المشتركة (memory، وcontexts، وlearning) التي أنشأها التثبيت، ما لم يكن إطار عمل مُثبَّت آخر لا يزال يستخدمها؛
  • يُزيل الأدلة التي أنشأها التثبيت، بمجرد أن تصبح فارغة.

يُعامَل الملف أو المجلّد في دليلك المنزلي الذي تستخدمه تثبيتات أخرى أيضًا (مجلّد مهارات، أو ~/.config/apothem/) معاملةَ مخازن البيانات المشتركة: يُبقيه التراجع ما دام تثبيت آخر لا يزال يسرده، ولا يستعيده أو يُزيله إلا لآخر تثبيت يستخدمه. والمجلّد الذي وجده هذا التثبيت قائمًا بالفعل (أداة ثانية ثُبِّتت بعد الأولى) يذهب مع آخر تثبيت يستخدمه إذا كان قد أنشأه تثبيتٌ تخلّى عنه منذ ذلك الحين، فلا يُخلّف التراجع عن كل الأدوات شيئًا وراءه. وحين يتعذّر قراءة سجلّ تثبيتٍ يمكن أن يستخدم المجلّد، يتوقّف التراجع مع خطأ قبل أن يغيّر أي شيء ولا يكتب سجلّ rollback؛ أصلِح السجلّ ثم شغّله مجدّدًا.

كل ما يُزيله التراجع أو يستبدله يُنسَخ أولًا إلى جذر النسخ الاحتياطية في Apothem (~/.apothem/backups/)، بحيث يمكن التراجع عن التراجع نفسه يدويًا. ثم يُلحِق التراجعُ سجلّ rollback بدفتر إطار العمل. والتراجع عن تثبيت أقدم يستعيد الأهداف التي سجّلها ذلك التثبيت فقط أو يُزيلها، ويُسقط كل تثبيت جاء بعده من التثبيتات النشطة في الدفتر عند الجذر نفسه. أما الملفات التي أضافها تثبيت لاحق خارج تلك الأهداف فتبقى في مكانها.

يحتفظ الدفتر بأحدث 10 سجلّات تثبيت لكل جذر تثبيت (مع النسخ الاحتياطية التي تشير إليها)؛ ولا يعود ممكنًا التراجع عن تثبيت أقدم بمُعرِّفه، فيُبلِغ عن rollback.no_record. ويُخفِّض apothem backups prune ذلك الحدّ عند الطلب، ولا يُزيل أبدًا النسخة الاحتياطية التي يستعيد منها أحدث تثبيت.

السجلّات التي كتبها إصدار من Apothem قبل إضافة هذا السلوك لا تسرد الملفات التي أنشأها التثبيت؛ والتراجع عن سجلّ كهذا لا يستعيد إلا الملفات المكتوب فوقها.

يُطلَب التأكيد لكل إطار عمل ما لم يُقدَّم --yes. وعندما يتعذّر الطلب — مع --format json (إذ سيُفسِد نصّ الطلب مستند JSON الوحيد) أو في صدفة غير تفاعلية (بلا TTY) — يرفض الأمر منذ البداية بخطأ مُهيكَل rollback.confirmation_required (رمز الخروج 1) ما لم يُقدَّم --yes. ويختار --install-id و--last تمريرة التثبيت، وهما متنافيان.

التراجع باستخدام --harness all شامل عن قصد: يغطّي كل إطار عمل مُسجَّل، بما في ذلك أي إطار عمل يتخطّاه exclude_harnesses في الملف التعريفي أثناء التثبيت — فاستعادة حالة ما قبل التثبيت عملية تنظيف، لذا تصل إلى السجلّات التي قد يكون تثبيتٌ سابق أوسع نطاقًا قد تركها. ويفشل إطار العمل الذي لا يملك تثبيتًا مُسجَّلًا بوصفه صفّ "outcome": "error" في results (انظر مخرجات JSON)، ويستمرّ التشغيل مع أُطُر العمل المتبقية. ثم يخرج الأمر بالرمز 1 إذا لم يُتراجَع عن أي شيء، أو بالرمز 2 (نتيجة جزئية) عندما يُتراجَع عن هدف واحد على الأقل ويُسجَّل فشل أيضًا.

الخيارات

الخيارالوصف
--harness NAMEمحوّل إطار العمل المراد التراجع عنه، أو all للمجموعة الشاملة للسجلّ كله (مطلوب).
--install-id ULIDيتراجع عن تمريرة التثبيت المُسمّاة. الافتراضي هو أحدث تثبيت مُسجَّل.
--lastيتراجع عن أحدث تثبيت مُسجَّل (السلوك الافتراضي؛ بصيغته الصريحة). متنافٍ مع --install-id.
--yesيتخطّى طلب التأكيد لكل إطار عمل.
--project PATHجذر المشروع لأُطُر العمل ذات نطاق المشروع. مطلوب عندما تتضمّن المجموعة المحدّدة محوّلات ذات نطاق مشروع.
--quiet، -qيُخمِد المخرجات المعلوماتية؛ لا تُصدَر إلا الأخطاء.
--verbose، -vيُصدِر مخرجات تشخيصية إضافية.
--format plain|jsonصيغة المخرجات (الافتراضي: plain).
--jsonاختصار لـ --format json.
--no-colorيُعطِّل رموز ألوان ANSI في المخرجات.
-h، --helpيعرض المساعدة ويخرج.

مخرجات JSON

المثال هو الغلاف الخارجي لإطار عمل واحد مُسمّى. وفي ظلّ --harness all، تكون قيمة harness هي all، وتكون قيمة output_path هي null، ويحمل results صفوف كل إطار عمل مُختار.

{
  "schema_version": 1,
  "status": "success",
  "command": "rollback",
  "action": "rolled_back",
  "harness": "claude-code",
  "profile_path": null,
  "project": null,
  "files_written": [],
  "results": [],
  "warnings": [],
  "error": null,
  "output_path": "C:\\Users\\Example\\.claude\\settings.json"
}

يظهر كل هدف مُستعاد أو مُزال في results مع "operation": "rollback" وقيمة outcome هي created أو updated (وفي files_written)؛ ويذكر message ما إذا كان المسار قد استُعيد أو أُزيل. والاستعادة الفاشلة (مثل نسخة احتياطية حُذِفت) تكون "outcome": "error". ويُبلَّغ عن التثبيت الذي لم يُسجِّل أي تغييرات بـ "outcome": "skipped". وعندما لا يوجد سجلّ تثبيت مطابق لإطار عمل واحد مُسمّى، يُبلِغ الأمر عن خطأ rollback.no_record مع "status": "error". أما مع --harness all فيكون إطار العمل الذي لا سجلّ مطابقًا له صفّ "outcome": "error" في results بدلًا من ذلك.

أمثلة

apothem rollback --harness claude-code --last
apothem rollback --harness claude-code --install-id 01J9Z… --yes
apothem rollback --harness cursor --project . --last --json

رموز الخروج

الرمزالمعنى
0نجح التراجع، أو لا شيء للتراجع عنه (لم يُسجِّل التثبيت أي تغييرات)
1خطأ متوقَّع — لا سجلّ تثبيت، أو مُحدِّدات متعارضة، أو إطار عمل غير معروف، أو جذر مشروع مفقود، أو تأكيد مرفوض أو غير متاح (وضع غير تفاعلي أو وضع JSON دون --yes)
2نتيجة جزئية — جرى التراجع عن هدف واحد على الأقل وسُجِّل أيضًا إخفاق (استعادة فاشلة، أو، مع --harness all، إطار عمل لا سجلّ تثبيت له)
64خطأ في الاستخدام: خيار أو أمر غير معروف، أو قيمة خيار مفقودة أو غير صالحة. مع --json يكون الخطأ غلاف JSON بالرمز cli.usage.

انظر أيضًا

  • apothem install — يُثبِّت إعداد إطار عمل
  • apothem update — يُعيد التثبيت من الملف التعريفي المشترك الحالي
  • apothem uninstall — يُزيل إعداد إطار عمل
  • apothem status — يُبلِغ عن حالة التثبيت والتحقّق والانحراف

On this page