From 87fae9b82c2314ceb11175a9c085bf4d58d4b544 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 15 Aug 2026 11:26:34 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B4=D0=B5=D1=84=D0=BE=D0=BB=D1=82?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D0=BF=D1=83=D1=82=D0=B8=20=E2=80=94=20./w?= =?UTF-8?q?orktrees=20=D0=B8=20./ratatoskr.db=20(=D0=BD=D0=B5=D0=B7=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=20=D0=BE=D1=82=20=D0=9E?= =?UTF-8?q?=D0=A1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yaml.example | 30 +++++++++++++++--------------- internal/config/config_test.go | 4 ++-- internal/config/types.go | 4 ++-- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/config.yaml.example b/config.yaml.example index 57e39d1..bbb27c3 100644 --- a/config.yaml.example +++ b/config.yaml.example @@ -1,20 +1,20 @@ -# ratatoskr-go пример конфигурации -# Копировать в config.yaml и заполнить переменные. +# ratatoskr-go пример конфигурации. +# Можно не указывать поля, у которых есть дефолт (см. internal/config/types.go). +# Обязательно: telegram.token + telegram.chat_id telegram: - token: "${TG_TOKEN}" # токен Telegram бота (обязательно) - chat_id: "${TG_CHAT_ID}" # ID чата, куда бот отвечает (обязательно) + token: "${TG_TOKEN}" # токен Telegram бота (обязательно) + chat_id: "${TG_CHAT_ID}" # ID чата (обязательно) -opencode: - bin: "opencode" # путь к opencode CLI - config: "${OPENCODE_CONFIG:-}" # путь к opencode config.json - hard_timeout: "20m" # максимальное время работы opencode - idle_timeout: "2m" # таймаут без вывода - db_path: "" # путь к opencode БД (пусто = авто) +# Всё ниже — опционально, показаны дефолты: +# opencode: +# bin: "opencode" +# hard_timeout: "20m" +# idle_timeout: "2m" -chat: - poll_interval: "30s" # частота long-poll Telegram +# chat: +# poll_interval: "30s" -paths: - worktree: "/opt/data/ratatoskr/worktrees" # рабочие директории субагентов - db: "/opt/data/ratatoskr/ratatoskr.db" # путь к SQLite-БД \ No newline at end of file +# paths: +# worktree: "./worktrees" +# db: "./ratatoskr.db" # или через env RATATOSKR_DB \ No newline at end of file diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 1a34159..287c721 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -75,8 +75,8 @@ telegram: if cfg.OpenCode.IdleTimeout.Duration() != 2*time.Minute { t.Errorf("idle timeout = %v", cfg.OpenCode.IdleTimeout) } - if cfg.Paths.Worktree != "/opt/data/ratatoskr/worktrees" { - t.Errorf("worktree = %q", cfg.Paths.Worktree) + if cfg.Paths.Worktree != "./worktrees" { + t.Errorf("worktree = %q, want ./worktrees", cfg.Paths.Worktree) } } diff --git a/internal/config/types.go b/internal/config/types.go index 45ac3f8..2cc3186 100644 --- a/internal/config/types.go +++ b/internal/config/types.go @@ -59,8 +59,8 @@ type ChatCfg struct { } type PathsCfg struct { - Worktree string `yaml:"worktree" default:"/opt/data/ratatoskr/worktrees"` - DB string `yaml:"db" default:"/opt/data/ratatoskr/ratatoskr.db" env:"RATATOSKR_DB"` + Worktree string `yaml:"worktree" default:"./worktrees"` + DB string `yaml:"db" default:"./ratatoskr.db" env:"RATATOSKR_DB"` } // Validate проверяет обязательные поля. Возвращает C1 MissingField