feat(config): reasoningEffort max for all agents, fix review suggestions #102
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/config/reasoning-effort-max"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что сделано
.opencode/opencode.json(секцияagent) добавлен"reasoningEffort": "max"всем 6 агентам с model:explore,scout,general(glm-5.2),reviewer(deepseek-v4-pro),memory-syncer(deepseek-v4-flash),vision(minimax-m3).planне тронут (нет model — наследует глобальную из UI). Модели не менялись..opencode/agents/vision.md: добавлены 6 deny-правил для oracle-скриптов в bash allow-список (pipeline-status.py,spec-status.py,project-status.py— формат как вreviewer.md:63-72) + trailing newline в конец файла.opencode.json: уvisionвtoolsдобавлен"serena_*": false(симметрия сmemory-syncer).tests/test_permissions.py: docstring «All 5 subagents» → «All 6 subagents»;_parse_frontmatter/_parse_yaml_blockвынесены вtests/conftest.py(файл существовал — helper добавлен, содержимое не перезаписано), оба тестовых файла импортируют из conftest, дубликаты удалены.test_agents_have_reasoning_effort_max: все 6 агентов с model имеютreasoningEffort == "max",planотсутствует в agent-секции.Почему
После PR #100 reviewer оставил 5 info-suggestions. Плюс нужно явно зафиксировать максимальный уровень мышления для всех агентов с model, чтобы не зависеть от model-specific default (дока opencode.ai/docs/models не указывает default для ollama-cloud моделей).
Watch out
tests/conftest.pyсуществовал — helper добавлен без перезаписи содержимого (там autouse fixture_forgejo_env).planне получилreasoningEffort.serena_*: falseу vision не ломает работу — vision использует antidetect-browser MCP + Read, не Serena.Pending
opencode-007.mdв памяти (reasoningEffort max для всех агентов).Closes #101
Code Review Summary
PR добавляет
reasoningEffort: "max"всем 6 агентам с model, добавляет deny-правила для oracle-скриптов вvision.md, отключает Serena для vision, и рефакторит дубликат парсера frontmatter вconftest.py. Изменения корректны, тесты проходят (35/35), ruff clean, CI green.Positives
opencode.json:reasoningEffort: "max"добавлен всем 6 агентам с model (explore, scout, general, reviewer, memory-syncer, vision);planотсутствует в agent-секции — наследует глобальную model из UI (issue #99). Модели не менялись.vision.md: 15 deny-правил для oracle-скриптов (5 для каждого: pipeline-status.py, spec-status.py, project-status.py) — формат glob идентиченreviewer.md:63-72. Trailing newline добавлен (был missing —No newline at end of file).visiontools:"serena_*": falseдобавлен — симметрия сmemory-syncer. Vision использует antidetect-browser MCP + Read, не Serena, поэтому не ломает работу.conftest.py:_parse_frontmatter/_parse_yaml_blockвынесены из дубликатов вtest_permissions.pyиtest_agent_frontmatter.pyв общийconftest.py. Оба тестовых файла импортируют черезfrom conftest import _parse_frontmatter— дубликаты удалены (96 deletions).test_agents_have_reasoning_effort_max: проверяет все 6 агентов с model имеютreasoningEffort == "max"иplanотсутствует. Тест проходит.test_agents_have_models..ci-rerun-stamp: пустой файл (0 bytes) — санитарный коммит для ретриггера CI после инфраструктурного сбоя act-runner. При squash-merge исчезнет.Suggestions (info, not blocking)
tests/conftest.py:24[style]_parse_frontmatter(filepath)потерял аннотацию типа: Path, которая была в оригиналах (filepath: Path). Также отсутствуетfrom pathlib import Pathв conftest.py. Не критично: mypy не запускается для tests/ (CI:mypy src/), ruff проходит. Fix:def _parse_frontmatter(filepath: Path) -> dict:+from pathlib import Path..ci-rerun-stamp[hygiene] Пустой файл не в.gitignore. Предлагаю удалить в follow-up после merge (или добавить в.gitignore, если паттерн ретриггера будет повторяться)..opencode/agents/reviewer.md:63-72[consistency] Reviewer имеет deny-правила только дляpipeline-status.pyиspec-status.py(10 правил), но НЕ дляproject-status.py. Vision теперь имеет 15 правил (включая project-status.py). Глобальныйopencode.json:255-259содержит deny дляproject-status.py, поэтому security gap нет, но asymmetry между agent-уровнями стоит выровнять в отдельном PR.Verdict: APPROVE