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

31 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Тест 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.txt``safe_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 + откат).
## Запуск
```bash
cd ~/Desktop/papa-yu/src-tauri && cargo tauri dev
```
Проверку можно делать через UI (предпросмотр → применить с действиями, которые содержат запрещённый путь) или через invoke с payload из JSON выше.