papayu/docs/IMPROVEMENT_REPORT.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

4.7 KiB
Raw Blame History

Отчёт о выполнении рекомендаций по улучшению

Дата: 2025-01-31
Версия papa-yu: 2.4.5


Executive Summary

Выполнены рекомендации из docs/IMPROVEMENT_ROADMAP.md в рамках Quick wins (15 дней). Закрыты ключевые риски SSRF, усилен CI, добавлена база для наблюдаемости.


1. CI/CD — quality gate

Сделано

Шаг Описание
Format check cargo fmt --check — единый стиль кода
Clippy cargo clippy --all-targets — статический анализ
Cargo audit Проверка уязвимостей в зависимостях (continue-on-error: true до стабилизации)
Golden traces cargo test golden_traces — регрессионные тесты v1/v2/v3

Файлы

  • .github/workflows/protocol-check.yml → переименован в CI (fmt, clippy, audit, protocol)

2. Единая точка сетевого доступа (SSRF)

Сделано

  1. Модуль net (src-tauri/src/net.rs):

    • Единая точка доступа к fetch_url_safe
    • Политика: внешние URL только через fetch_url_safe
  2. Рефакторинг trends:

    • fetch_trends_recommendations переведён с прямого reqwest::Client::get() на net::fetch_url_safe
    • Добавлен лимит размера ответа: MAX_TRENDS_RESPONSE_BYTES = 1_000_000
    • Таймаут: 15 сек
    • Сохранён allowlist хостов (ALLOWED_TRENDS_HOSTS) + SSRF-защита fetch_url_safe
  3. Re-export fetch_url_safe из online_research для использования в других модулях

Потоки HTTP (текущее состояние)

Модуль URL источник Метод Защита
online_research/fetch Tavily API (результаты поиска) fetch_url_safe SSRF, max bytes, timeout
commands/trends PAPAYU_TRENDS_URLS (env) fetch_url_safe Host allowlist + SSRF
llm_planner, weekly_report, distill, llm PAPAYU_LLM_API_URL (env) reqwest (доверенный конфиг) ⚠️ Таймауты, без SSRF (Ollama на localhost)

3. INCIDENTS.md — журнал инцидентов

Сделано

  • Создан docs/INCIDENTS.md с шаблоном записи
  • Описаны известные «больные места»: llm_planner, PATCH/EDIT apply, golden traces

4. Что не сделано (mid/long-term)

Рекомендация Причина
cargo clippy -- -D warnings Есть текущие предупреждения; CI сначала без -D warnings
cargo deny Требует конфигурации deny.toml
SBOM Требует интеграции CycloneDX
Структурированные JSON-логи Требует выбора библиотеки и прогонки по коду
ADR, архитектурные границы Объёмная архитектурная работа

5. Проверка

cd src-tauri
cargo fmt --check   # OK
cargo clippy        # OK (предупреждения есть)
cargo test          # 105 passed

6. Рекомендации на следующий шаг

  1. Постепенно устранять предупреждения Clippy и включить -D warnings в CI.
  2. Добавить deny.toml и шаг cargo deny в CI. Выполнено (2026-02-08).
  3. Заполнять INCIDENTS.md при разборе сбоев.
  4. Рассмотреть tracing или log для структурированного логирования.

7. Дополнительные изменения (2026-02-08)

  • deny.toml — добавлен, CI включает cargo deny check (continue-on-error).
  • CONTRACTS.md — создан, документирует все команды и события UI ↔ Tauri.
  • tauri-plugin-updater, tauri-plugin-process — добавлены для проверки и установки обновлений.
  • Страница Updates — UI для проверки обновлений.
  • ERP-заглушки — маршруты и страницы: Регламенты, ТМЦ и закупки, Финансы, Персонал.
  • Clippy — исправлены предупреждения в analyze_project, apply_actions, generate_actions, settings_export.