papayu/docs/PROTOCOL_V3_PLAN.md
Yuriy 65e95a458d feat: мульти-провайдер LLM, тренды дизайна, Snyk/Documatic sync, личная автоматизация
- Мульти-провайдер: PAPAYU_LLM_PROVIDERS — сбор планов от нескольких ИИ (Claude, OpenAI), агрегация
- Тренды дизайна и иконок: вкладка в модалке, поиск по безопасным доменам (Tavily include_domains)
- Snyk Code: PAPAYU_SNYK_SYNC, REST API issues → snyk_findings в agent-sync
- Documatic: architecture_summary из .papa-yu/architecture.md в agent-sync
- Личная автоматизация: capability personal-automation (терминал git/npm/cargo, открытие URL)
- agent_sync расширен: snyk_findings, architecture_summary; analyze_project_cmd и run_batch пишут sync
- Документация: SNYK_AND_DOCUMATIC_SYNC.md, SECURITY_AND_PERSONAL_AUTOMATION.md, обновлён CLAUDE_AND_AGENT_SYNC

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 15:05:39 +03:00

75 lines
2.6 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.

# План Protocol v3
**Реализовано (v2.4.5).** `PAPAYU_PROTOCOL_VERSION=3` включает EDIT_FILE. v2 решает «перезапись файла» через PATCH_FILE, но патчи всё ещё бывают хрупкими — v3 EDIT_FILE даёт якорные правки anchor/before/after.
---
## Вариант v3-A (рекомендуемый): EDIT_FILE с операциями
Новый action:
```json
{
"kind": "EDIT_FILE",
"path": "src/foo.py",
"base_sha256": "...",
"edits": [
{
"op": "replace",
"anchor": "def parse(",
"before": "return value.strip()",
"after": "if value is None:\n return \"\"\nreturn value.strip()"
}
]
}
```
**Плюсы:**
- Устойчивее к line drift (якорь по содержимому, не по номерам строк)
- Проще валидировать «что именно поменялось»
- Меньше риска ERR_PATCH_APPLY_FAILED
**Минусы:**
- Нужен свой «якорный» редактор
- Якорь должен быть уникальным в файле
**MVP для v3:**
- Оставить PATCH_FILE как fallback
- Добавить EDIT_FILE только для текстовых файлов
- Engine: «найди anchor → проверь before → замени на after»
- base_sha256 остаётся обязательным
---
## Вариант v3-B: AST-level edits (язык-специфично)
Для Python/TS можно делать по AST (insert/delete/replace узлов). Плюсы: максимальная точность. Минусы: значительно больше работы, сложнее поддерживать, нужно знать язык.
---
## Совместимость v1/v2/v3
- v1: UPDATE_FILE, CREATE_FILE, …
- v2: + PATCH_FILE, base_sha256
- v3: + EDIT_FILE (якорные операции), PATCH_FILE как fallback
Выбор активного протокола по env. v3 совместим с v2 (EDIT_FILE — расширение).
---
## Когда включать v3 (gates по weekly report)
Включать v3 для проекта, если за последнюю неделю:
- `fallback_by_reason.ERR_PATCH_APPLY_FAILED >= 3` **или**
- группа ошибок PATCH растёт week-over-week **и**
- `repair_success_rate` по patch падает
**Не включать / откатить v3**, если:
- много `ERR_NON_UTF8_FILE` (v3 не поможет)
- проект содержит много автогенерённых файлов или бинарных артефактов