fix: дефолтные пути — ./worktrees и ./ratatoskr.db (независимо от ОС)
All checks were successful
CI / test (push) Successful in 40s
CI / build-and-package (amd64, darwin) (push) Successful in 39s
CI / build-and-package (amd64, linux) (push) Successful in 40s
CI / build-and-package (amd64, windows) (push) Successful in 40s
CI / build-and-package (arm64, darwin) (push) Successful in 42s
CI / build-and-package (arm64, linux) (push) Successful in 45s

This commit is contained in:
Hermes
2026-08-15 11:26:34 +05:00
parent 3298bbcf8a
commit 87fae9b82c
3 changed files with 19 additions and 19 deletions

View File

@@ -1,20 +1,20 @@
# ratatoskr-go пример конфигурации # ratatoskr-go пример конфигурации.
# Копировать в config.yaml и заполнить переменные. # Можно не указывать поля, у которых есть дефолт (см. internal/config/types.go).
# Обязательно: telegram.token + telegram.chat_id
telegram: telegram:
token: "${TG_TOKEN}" # токен Telegram бота (обязательно) token: "${TG_TOKEN}" # токен Telegram бота (обязательно)
chat_id: "${TG_CHAT_ID}" # ID чата, куда бот отвечает (обязательно) chat_id: "${TG_CHAT_ID}" # ID чата (обязательно)
opencode: # Всё ниже — опционально, показаны дефолты:
bin: "opencode" # путь к opencode CLI # opencode:
config: "${OPENCODE_CONFIG:-}" # путь к opencode config.json # bin: "opencode"
hard_timeout: "20m" # максимальное время работы opencode # hard_timeout: "20m"
idle_timeout: "2m" # таймаут без вывода # idle_timeout: "2m"
db_path: "" # путь к opencode БД (пусто = авто)
chat: # chat:
poll_interval: "30s" # частота long-poll Telegram # poll_interval: "30s"
paths: # paths:
worktree: "/opt/data/ratatoskr/worktrees" # рабочие директории субагентов # worktree: "./worktrees"
db: "/opt/data/ratatoskr/ratatoskr.db" # путь к SQLite-БД # db: "./ratatoskr.db" # или через env RATATOSKR_DB

View File

@@ -75,8 +75,8 @@ telegram:
if cfg.OpenCode.IdleTimeout.Duration() != 2*time.Minute { if cfg.OpenCode.IdleTimeout.Duration() != 2*time.Minute {
t.Errorf("idle timeout = %v", cfg.OpenCode.IdleTimeout) t.Errorf("idle timeout = %v", cfg.OpenCode.IdleTimeout)
} }
if cfg.Paths.Worktree != "/opt/data/ratatoskr/worktrees" { if cfg.Paths.Worktree != "./worktrees" {
t.Errorf("worktree = %q", cfg.Paths.Worktree) t.Errorf("worktree = %q, want ./worktrees", cfg.Paths.Worktree)
} }
} }

View File

@@ -59,8 +59,8 @@ type ChatCfg struct {
} }
type PathsCfg struct { type PathsCfg struct {
Worktree string `yaml:"worktree" default:"/opt/data/ratatoskr/worktrees"` Worktree string `yaml:"worktree" default:"./worktrees"`
DB string `yaml:"db" default:"/opt/data/ratatoskr/ratatoskr.db" env:"RATATOSKR_DB"` DB string `yaml:"db" default:"./ratatoskr.db" env:"RATATOSKR_DB"`
} }
// Validate проверяет обязательные поля. Возвращает C1 MissingField // Validate проверяет обязательные поля. Возвращает C1 MissingField