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

2.6 KiB
Raw Blame History

План 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:

{
  "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 не поможет)
  • проект содержит много автогенерённых файлов или бинарных артефактов