fix(opencode): агенты — в <worktree>/.opencode/agent, OPENCODE_CONFIG_DIR больше не выставляем
OPENCODE_CONFIG_DIR в opencode v1.18.18 перенаправляет Global.Path.config (global.ts: config = OPENCODE_CONFIG_DIR ?? ~/.config/opencode), из-за чего глобальный конфиг (модель/провайдеры, напр. tokentool) не загружался и opencode уходил в fallback-модель. Агенты открывались, т.к. OPENCODE_CONFIG_DIR дополнительно сканируется как каталог для agent/*.md. Теперь агенты распаковываются в <worktree>/.opencode/agent/*.md, где opencode находит их через project-каталог .opencode (paths.ts, cwd=worktree). Глобальный конфиг не трогаем вовсе. - internal/opencode: удалены Server.ConfigDir/Pool.ConfigDir и env OPENCODE_CONFIG_DIR - internal/config: удалено поле OpenCodeCfg.ConfigDir (config_dir) - internal/app: ensureAgentsDir пишет в <worktree>/.opencode/agent - internal/agents: WriteTo(dir) → dir/agent/*.md - README/config.yaml.example/memory обновлены
This commit is contained in:
@@ -100,7 +100,6 @@ telegram:
|
||||
chat_id: "..." # TG_CHAT_ID (обязательно, если enabled)
|
||||
opencode:
|
||||
bin: "opencode"
|
||||
config_dir: "./agents" # каталог, куда распаковываются встроенные агенты
|
||||
paths:
|
||||
db: "./ratatoskr.db" # дефолт; резолвится от каталога бинаря (не от cwd)
|
||||
worktree: "./worktrees" # то же правило «всё рядом с .exe»
|
||||
@@ -144,8 +143,10 @@ update:
|
||||
глобального конфига (`~/.config/opencode/opencode.jsonc`). Наш код конфиг
|
||||
opencode не читает.
|
||||
- **Свой агент.** При создании сессии в `POST /api/session` передаётся имя
|
||||
встроенного агента ratatoskr (analyst/dev/reviewer/chat/postmortem), который
|
||||
распаковывается в каталог `OPENCODE_CONFIG_DIR` (см. `internal/agents`).
|
||||
встроенного агента ratatoskr (analyst/dev/reviewer/chat/postmortem). Агенты
|
||||
распаковываются в `<worktree>/.opencode/agent/*.md`, где opencode находит
|
||||
их через project-каталог `.opencode` (см. `internal/agents`); глобальный
|
||||
конфиг при этом не трогается.
|
||||
- **Поллинг вердикта.** Промпт отправляется неблокирующе (`POST .../prompt` →
|
||||
durable admit), вердикт собирается из новых assistant-сообщений
|
||||
(`GET .../message`); завершение ответа — сессия ушла из активных дренажей
|
||||
|
||||
Reference in New Issue
Block a user