forgeplan undo-last
forgeplan undo-last откатывает последнюю деструктивную операцию - delete, supersede или deprecate - без необходимости помнить ID артефакта. Это «кнопка отмены» после того, как агент (или вы) сделал что-то не то: артефакт возвращается, его связи восстанавливаются там, где цели ещё существуют, статус переключается обратно с superseded / deprecated.
Как это работает: каждая деструктивная операция оставляет небольшую запись («квитанцию» - receipt) в .forgeplan/trash/. undo-last находит самую свежую неиспользованную квитанцию, проигрывает её в обратную сторону и помечает использованной - поэтому повторный вызов перейдёт к следующей по свежести операции. Если в указанном окне ничего подходящего нет, команда возвращает ошибку с подсказкой - она никогда не угадывает.
Это CLI-вариант forgeplan_undo_last на MCP-стороне.
Когда использовать
Заголовок раздела «Когда использовать»- Сразу после ошибочного
forgeplan delete/supersede/deprecate- отменить и повторить правильно. - Пользователь говорит «отмени» без указания ID -
undo-lastсам найдёт по логу. - Откат галлюцинации LLM, которая запустила деструктивное действие.
- Заметили неожиданный деструктивный вызов в
forgeplan activity-stats- запуститеundo-last, чтобы откатить.
Когда НЕ использовать
Заголовок раздела «Когда НЕ использовать»- Знаете точный ID -
forgeplan restore <ID>точнее (нет риска откатить не ту операцию). - Прошло больше 30 дней - квитанции после 30 дней удаляются и проиграть их нельзя. Восстанавливайте по
git log. - Ошибка - это опечатка или неверный заголовок (не деструктивная операция) - правьте файл напрямую, потом
forgeplan scan-import.
Использование
Заголовок раздела «Использование»forgeplan undo-last [OPTIONS] --within-hours <WITHIN_HOURS> Time window (hours) to search for the last destructive op (1..=720, default 24) [default: 24] --json Output as JSON for machine consumption -h, --help Print help -V, --version Print versionПримеры
Заголовок раздела «Примеры»Пример 1: Откат за 24 часа по умолчанию
Заголовок раздела «Пример 1: Откат за 24 часа по умолчанию»forgeplan undo-lastОткатывает самую свежую деструктивную операцию из последних 24 часов. Каждый вызов использует одну квитанцию - поэтому три вызова подряд откатят последние три операции в обратном порядке (от самой свежей).
Пример 2: Расширенный поиск после паузы
Заголовок раздела «Пример 2: Расширенный поиск после паузы»forgeplan undo-last --within-hours 720Ищет по всему 30-дневному окну. Используйте, когда возвращаетесь в воркспейс через несколько дней и поиск по умолчанию (24 часа) ничего не находит.
Пример 3: Машинно-читаемый вывод для скриптов
Заголовок раздела «Пример 3: Машинно-читаемый вывод для скриптов»forgeplan undo-last --json | jq '.restored, .op_reversed'Возвращает JSON, потом вытаскивает ID восстановленного артефакта и тип откатанной операции. Полезно, когда undo-last - часть скрипта восстановления, которому нужно залогировать что именно сделано.
Место в рабочем процессе
Заголовок раздела «Место в рабочем процессе»Используется после ошибочной деструктивной операции (delete, supersede или deprecate). Запустите undo-last, чтобы откатить самую свежую; повторите вызов, чтобы откатить более ранние по порядку. Как только знаете конкретный ID, переключайтесь на forgeplan restore <ID> - он точечный, не идёт по стеку от свежих к старым.
См. также
Заголовок раздела «См. также»forgeplan_undo_last- MCP-эквивалентforgeplan restore- восстановить конкретный артефакт по IDforgeplan activity- инспекция таймлайна деструктивных операцийforgeplan delete- soft-delete, который это откатывает- Обзор CLI