- Мульти-провайдер: 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>
4.7 KiB
4.7 KiB
Отчёт о выполнении рекомендаций по улучшению
Дата: 2025-01-31
Версия papa-yu: 2.4.5
Executive Summary
Выполнены рекомендации из docs/IMPROVEMENT_ROADMAP.md в рамках Quick wins (1–5 дней). Закрыты ключевые риски 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) ✅
Сделано
-
Модуль
net(src-tauri/src/net.rs):- Единая точка доступа к
fetch_url_safe - Политика: внешние URL только через
fetch_url_safe
- Единая точка доступа к
-
Рефакторинг
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
-
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. Рекомендации на следующий шаг
- Постепенно устранять предупреждения Clippy и включить
-D warningsв CI. Добавить✅ Выполнено (2026-02-08).deny.tomlи шагcargo denyв CI.- Заполнять
INCIDENTS.mdпри разборе сбоев. - Рассмотреть
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.