papayu/docs/TEST-AUTO-ROLLBACK.md
Yuriy e76236dc55 Initial commit: papa-yu v2.4.4
- Schema version (x_schema_version, schema_hash) в prompt/trace
- Кеш read/search/logs/env (ContextCache) в plan-цикле
- Контекст-диета: MAX_FILES=8, MAX_FILE_CHARS=20k, MAX_TOTAL_CHARS=120k
- Plan→Apply двухфазность, NO_CHANGES, path sanitization
- Protected paths, content validation, EOL normalization
- Trace (PAPAYU_TRACE), redaction (PAPAYU_TRACE_RAW)
- Preview diff, undo/redo, transactional apply

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 11:33:19 +03:00

1.9 KiB
Raw Blame History

Тест AUTO_ROLLBACK (v2.3.3)

Проверка: первый шаг применяется, второй падает → откат первого шага, в UI сообщения «Обнаружены ошибки. Откатываю изменения…» и «Изменения привели к ошибкам, откат выполнен.»

Формат payload в papa-yu

  • Команда: apply_actions (или apply_actions_cmd).
  • Payload: ApplyPayload с полями root_path, actions, auto_check.
  • В actions поле kind в формате SCREAMING_SNAKE_CASE: CREATE_FILE, UPDATE_FILE, DELETE_FILE, CREATE_DIR, DELETE_DIR.

Вариант 1 — падение на safe_join (..)

Подставь свой путь в root_path и вызови apply с actions из test-auto-rollback-payload.json:

  1. Создаётся papayu_test_ok.txt.
  2. Второй action с путём ../../forbidden.txtsafe_join возвращает ошибку.
  3. Rollback удаляет papayu_test_ok.txt.
  4. Ответ: ok: false, error_code: "AUTO_ROLLBACK_DONE", failed_at: 1.

Вариант 2 — падение через ОС (permission denied)

Используй test-auto-rollback-fs-payload.json: второй шаг пишет в /System/... — в papa-yu абсолютный путь отсекается в safe_join, так что отказ будет до записи в ФС, результат тот же (AUTO_ROLLBACK_DONE + откат).

Запуск

cd ~/Desktop/papa-yu/src-tauri && cargo tauri dev

Проверку можно делать через UI (предпросмотр → применить с действиями, которые содержат запрещённый путь) или через invoke с payload из JSON выше.