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

Closed
opened 2026-08-16 20:31:16 +03:00 by slaid098 · 0 comments
Owner

Контекст

Зачем: MCP-сервер Serena (serena-agent 1.7.0, символьная навигация) не стартует в opencode — сервер падает с фатальной ошибкой "projects key not found in Serena configuration" (SerenaConfigError из serena/config/serena_config.py:1064). В логах opencode: "server unavailable key=serena type=local status=failed".
Контекст: файл /root/.serena/serena_config.yml запекается в Docker-образ из docker/serena_config.yml в репо (добавлен коммитом 8c02012 "feat(mcp): add Serena MCP server with Docker-baked config (#73)") и содержит только excluded_tools, gui_log_window, web_dashboard_open_on_launch. Ключ projects обязателен для serena-agent 1.7.0 — жёсткая проверка без fallback. Шаблон пакета serena_config.template.yml содержит projects: [] и trusted_project_path_patterns: [].

Задача

  1. В docker/serena_config.yml добавить обязательный ключ projects: []
  2. Добавить trusted_project_path_patterns: [/root/workspace/**] — glob-паттерн, чтобы все текущие и будущие проекты в /root/workspace/ были доверенными (влияет на применение activation_command и ls_specific_settings из project.yml; сам --project-from-cwd работает независимо от списков)
  3. Сохранить существующие ключи без изменений: excluded_tools (6 memory-инструментов), gui_log_window: False, web_dashboard_open_on_launch: False

Контракты

  • Сервер serena стартует в opencode: MCP initialize OK, без ошибки про projects
  • --project-from-cwd авто-регистрирует проект из cwd независимо от списков projects/trusted_project_path_patterns
  • trusted_project_path_patterns влияет только на применение activation_command/ls_specific_settings из project.yml

Инварианты

  • Ключ projects обязателен для serena-agent 1.7.0 — не удалять, не делать fallback
  • Существующие ключи (excluded_tools, gui_log_window, web_dashboard_open_on_launch) сохраняются без изменений
  • Паттерн /root/workspace/** — glob-паттерн, не точный путь

Граничные случаи

  • Проект вне /root/workspace/ → не доверенный: activation_command/ls_specific_settings не применяются, но сервер стартует (--project-from-cwd работает)
  • Пустой projects: [] — валиден для serena-agent 1.7.0 (как в serena_config.template.yml)

Влияние на связанные компоненты

  • docker/serena_config.yml — единственный файл изменений
  • opencode.json (команда запуска serena) — без изменений
  • browser (puppeteer) MCP — без изменений

Вне scope

  • ❌ Не трогать browser (puppeteer) MCP
  • ❌ Не менять команду запуска serena в opencode.json
  • ❌ Не добавлять проекты вручную в projects

Критерии приемки

  • docker/serena_config.yml содержит projects: [] и trusted_project_path_patterns: [/root/workspace/**], остальные ключи сохранены
  • После пересборки образа (docker compose up -d --build) и рестарта opencode сервер serena активен (MCP initialize OK), в логах нет "projects key not found"
## Контекст Зачем: MCP-сервер Serena (serena-agent 1.7.0, символьная навигация) не стартует в opencode — сервер падает с фатальной ошибкой "`projects` key not found in Serena configuration" (SerenaConfigError из serena/config/serena_config.py:1064). В логах opencode: "server unavailable key=serena type=local status=failed". Контекст: файл /root/.serena/serena_config.yml запекается в Docker-образ из docker/serena_config.yml в репо (добавлен коммитом 8c02012 "feat(mcp): add Serena MCP server with Docker-baked config (#73)") и содержит только excluded_tools, gui_log_window, web_dashboard_open_on_launch. Ключ `projects` обязателен для serena-agent 1.7.0 — жёсткая проверка без fallback. Шаблон пакета serena_config.template.yml содержит projects: [] и trusted_project_path_patterns: []. ## Задача 1. В docker/serena_config.yml добавить обязательный ключ `projects: []` 2. Добавить `trusted_project_path_patterns: [/root/workspace/**]` — glob-паттерн, чтобы все текущие и будущие проекты в /root/workspace/ были доверенными (влияет на применение activation_command и ls_specific_settings из project.yml; сам --project-from-cwd работает независимо от списков) 3. Сохранить существующие ключи без изменений: excluded_tools (6 memory-инструментов), gui_log_window: False, web_dashboard_open_on_launch: False ## Контракты - Сервер serena стартует в opencode: MCP initialize OK, без ошибки про projects - --project-from-cwd авто-регистрирует проект из cwd независимо от списков projects/trusted_project_path_patterns - trusted_project_path_patterns влияет только на применение activation_command/ls_specific_settings из project.yml ## Инварианты - Ключ `projects` обязателен для serena-agent 1.7.0 — не удалять, не делать fallback - Существующие ключи (excluded_tools, gui_log_window, web_dashboard_open_on_launch) сохраняются без изменений - Паттерн /root/workspace/** — glob-паттерн, не точный путь ## Граничные случаи - Проект вне /root/workspace/ → не доверенный: activation_command/ls_specific_settings не применяются, но сервер стартует (--project-from-cwd работает) - Пустой projects: [] — валиден для serena-agent 1.7.0 (как в serena_config.template.yml) ## Влияние на связанные компоненты - docker/serena_config.yml — единственный файл изменений - opencode.json (команда запуска serena) — без изменений - browser (puppeteer) MCP — без изменений ## Вне scope - ❌ Не трогать browser (puppeteer) MCP - ❌ Не менять команду запуска serena в opencode.json - ❌ Не добавлять проекты вручную в projects ## Критерии приемки - [ ] docker/serena_config.yml содержит projects: [] и trusted_project_path_patterns: [/root/workspace/**], остальные ключи сохранены - [ ] После пересборки образа (docker compose up -d --build) и рестарта opencode сервер serena активен (MCP initialize OK), в логах нет "projects key not found"
Sign in to join this conversation.
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#89
No description provided.