fix(mcp): add required projects key to Serena config #91

Merged
slaid098 merged 1 commit from fix/mcp/serena-projects-key into main 2026-08-16 20:44:06 +03:00
Owner

Что сделано

  • В docker/serena_config.yml добавлен обязательный ключ projects: [] — без него serena-agent 1.7.0 падает с SerenaConfigError: projects key not found in Serena configuration и MCP-сервер не стартует в opencode.
  • Добавлен trusted_project_path_patterns: [/root/workspace/**] — glob-паттерн, чтобы все текущие и будущие проекты в /root/workspace/ были доверенными (влияет на применение activation_command и ls_specific_settings из project.yml).
  • Существующие ключи (excluded_tools с 6 memory-инструментами, gui_log_window: False, web_dashboard_open_on_launch: False) сохранены без изменений.

Почему

MCP-сервер Serena не стартует в opencode: фатальная ошибка "projects key not found in Serena configuration" (SerenaConfigError из serena/config/serena_config.py:1064), в логах opencode "server unavailable key=serena type=local status=failed". Ключ projects обязателен для serena-agent 1.7.0 — жёсткая проверка без fallback. Шаблон пакета serena_config.template.yml содержит projects: [] и trusted_project_path_patterns: [].

Watch out

  • --project-from-cwd авто-регистрирует проект из cwd независимо от списков projects/trusted_project_path_patterns — поведение не меняется.
  • Проект вне /root/workspace/ → не доверенный: activation_command/ls_specific_settings не применяются, но сервер стартует.
  • Для применения фикса нужна пересборка образа (docker compose up -d --build) и рестарт opencode.

Pending

—

Closes #89

## Что сделано - В `docker/serena_config.yml` добавлен обязательный ключ `projects: []` — без него serena-agent 1.7.0 падает с `SerenaConfigError: projects key not found in Serena configuration` и MCP-сервер не стартует в opencode. - Добавлен `trusted_project_path_patterns: [/root/workspace/**]` — glob-паттерн, чтобы все текущие и будущие проекты в `/root/workspace/` были доверенными (влияет на применение `activation_command` и `ls_specific_settings` из project.yml). - Существующие ключи (`excluded_tools` с 6 memory-инструментами, `gui_log_window: False`, `web_dashboard_open_on_launch: False`) сохранены без изменений. ## Почему MCP-сервер Serena не стартует в opencode: фатальная ошибка "`projects` key not found in Serena configuration" (SerenaConfigError из serena/config/serena_config.py:1064), в логах opencode "server unavailable key=serena type=local status=failed". Ключ `projects` обязателен для serena-agent 1.7.0 — жёсткая проверка без fallback. Шаблон пакета `serena_config.template.yml` содержит `projects: []` и `trusted_project_path_patterns: []`. ## Watch out - `--project-from-cwd` авто-регистрирует проект из cwd независимо от списков `projects`/`trusted_project_path_patterns` — поведение не меняется. - Проект вне `/root/workspace/` → не доверенный: `activation_command`/`ls_specific_settings` не применяются, но сервер стартует. - Для применения фикса нужна пересборка образа (`docker compose up -d --build`) и рестарт opencode. ## Pending — Closes #89
fix(mcp): add required projects key to Serena config
All checks were successful
CI (always) / bootstrap (pull_request) Successful in 4s
CI / bootstrap (pull_request) Successful in 6s
CI / complexity (pull_request) Successful in 34s
CI / typecheck (pull_request) Successful in 35s
CI / lint (pull_request) Successful in 35s
CI / test (3.13) (pull_request) Successful in 1m46s
8e8cadf279
Author
Owner

Code Review Summary

Минимальный и корректный фикс: в docker/serena_config.yml добавлены обязательный ключ projects: [] и trusted_project_path_patterns: [/root/workspace/**], существующие ключи (excluded_tools с 6 memory-инструментами, gui_log_window, web_dashboard_open_on_launch) сохранены без изменений. Соответствует шаблону пакета serena_config.template.yml и закрывает issue #89 (сервер Serena не стартовал с SerenaConfigError: projects key not found).

Positives

  • Точечный фикс 3 строк, без побочных изменений — существующие ключи не тронуты.
  • PR body полный: Что сделано / Почему / Watch out (включая нюанс --project-from-cwd и необходимость пересборки образа) / Pending.
  • Путь /root/workspace/** консистентен с окружением контейнера: Dockerfile:50 (WORKDIR) и docker-compose.yml:44 (volume mount ./app_data/workspaces:/root/workspace).

Suggestions (info, not blocking)

  • docker/serena_config.yml:2 [info] trusted_project_path_patterns захардкожен на /root/workspace/** — это осознанно для Docker-baked конфига (путь фиксирован в образе), но если когда-нибудь появится второй mount-путь, паттерн придётся расширять. Сейчас — ок.

Cross-file impact проверен: единственный reader файла — Dockerfile:22 (COPY, без парсинга ключей); известная связь excluded_tools ↔ opencode.json (serena_*: false) не затронута; оракулы/валидаторы этот файл не читают. CI green.

Verdict: APPROVE

## Code Review Summary Минимальный и корректный фикс: в `docker/serena_config.yml` добавлены обязательный ключ `projects: []` и `trusted_project_path_patterns: [/root/workspace/**]`, существующие ключи (`excluded_tools` с 6 memory-инструментами, `gui_log_window`, `web_dashboard_open_on_launch`) сохранены без изменений. Соответствует шаблону пакета `serena_config.template.yml` и закрывает issue #89 (сервер Serena не стартовал с `SerenaConfigError: projects key not found`). ### Positives - Точечный фикс 3 строк, без побочных изменений — существующие ключи не тронуты. - PR body полный: Что сделано / Почему / Watch out (включая нюанс `--project-from-cwd` и необходимость пересборки образа) / Pending. - Путь `/root/workspace/**` консистентен с окружением контейнера: `Dockerfile:50` (WORKDIR) и `docker-compose.yml:44` (volume mount `./app_data/workspaces:/root/workspace`). ### Suggestions (info, not blocking) - **docker/serena_config.yml:2** [info] `trusted_project_path_patterns` захардкожен на `/root/workspace/**` — это осознанно для Docker-baked конфига (путь фиксирован в образе), но если когда-нибудь появится второй mount-путь, паттерн придётся расширять. Сейчас — ок. Cross-file impact проверен: единственный reader файла — `Dockerfile:22` (COPY, без парсинга ключей); известная связь `excluded_tools` ↔ `opencode.json` (`serena_*: false`) не затронута; оракулы/валидаторы этот файл не читают. CI green. ### Verdict: APPROVE
slaid098 deleted branch fix/mcp/serena-projects-key 2026-08-16 20:44:06 +03:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
slaid098/opencode-config!91
No description provided.