- 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>
1.9 KiB
1.9 KiB
Тест 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:
- Создаётся
papayu_test_ok.txt. - Второй action с путём
../../forbidden.txt→safe_joinвозвращает ошибку. - Rollback удаляет
papayu_test_ok.txt. - Ответ:
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 выше.