eval_main_merge_analysis
SDR: eval→main Merge Risk Analysis
Сгенерировано: worker 13:05 MSK 2026-03-11
Реальный масштаб изменений
~976 файлов — это не 976 файлов кода. Реальная разбивка:
| Тип | Файлов | Риск |
|---|---|---|
src/ — core код |
12 | 🟡 Medium |
data/eval/results/ |
~897 | 🟢 Нет (результаты бенчмарков) |
| Infra (Dockerfile, compose) | 5 | 🟡 Конфликты возможны |
| Прочее (.env, Makefile, docs) | ~63 | 🟢 Низкий |
Core изменения в eval (vs main)
Новые файлы
src/.../metrics.py(325 строк) — LangChain callbacks для cost trackingsrc/.../search/openalex_search.py(175 строк) — OpenAlex бесплатный поиск
Модифицированные файлы
coordinator.py(+84):QueryParser.clean_query()— убирает “OpenAlex/arXiv” prefix-галлюцинации LLM; authority metadata (DOI/ArXiv/cited_by)micro_researcher.py(+104): rate limit retry (3 попытки + exponential backoff), LangChain callbacksprompts.py(+92): усиленные anti-hallucination правила, English-first search hints, clarification agent “задавать вопросы по умолчанию”deep_researcher.py(+92): улучшения аналогичного характераutils.py(+57): вспомогательные улучшенияpyproject.toml: убрана зависимостьtavily>=1.1.0(перешли на self-hosted)
Что есть в main, но нет в eval (3 коммита)
2e2b6ff: Dockerfile (uv via pip), pyproject.toml deps, state.py reasoning field ⚠️ Конфликт!69157f7: package.json updatef9f1b03: next.js security fix ⚠️ Важно!
Риски при слиянии
Конфликты (почти неизбежны)
Dockerfile— оба branch менялиpyproject.toml— eval убрал tavily, main обновил зависимости → нужен ручной mergedocker-compose.production.yml— изменён в обоих
Production риски src/
- Все изменения — исправления и добавления, не переписывание
metrics.py— новый файл, zero riskopenalex_search.py— новый файл, additive- Rate limit retry в micro_researcher — defensive, только улучшает
- Clarification agent prompt fix — баг-фикс (agent никогда не задавал вопросов)
Рекомендуемый подход
Вариант A (Recommended): Selective merge src/ only
# На main ветке:
git checkout main
git checkout eval -- src/open_deep_research/
git add src/
git commit -m "feat: merge eval improvements (OpenAlex, metrics, anti-hallucination, rate limits)"
✅ Минимальный риск: только 12 файлов кода, без data/eval мусора
Вариант B: Full merge через PR
git checkout main
git merge eval # ожидай конфликты в Dockerfile/pyproject.toml/compose
⚠️ Потребует разрешения конфликтов в 3+ infra файлах
Вариант C: Rebase eval на main
git checkout eval
git rebase origin/main # подхватим 3 main-only коммита
# Resolve conflicts → затем PR eval→main
⚠️ Рискованно для shared branch
Итог
Реальный риск: средний (не высокий). 12 файлов изменений — все исправления и добавления. Главный риск — конфликты в Dockerfile/pyproject.toml.
Рекомендация Феанора: Вариант A (selective merge src/). Bypasses data/eval clutter. Quick and clean. Потребует ОК Даниила как propose-уровень задача.