- client.go: эндпоинты /api/* (create+model, prompt-admit, message, active, interrupt) - runner.go: неблокирующий prompt + поллинг новых assistant-сообщений; завершение = сессия ушла из активных дренажей + стабильное финальное сообщение - config.go: чтение top-level model из opencode.jsonc (JSONC-стрип) + хардпин в сессию - server.go: healthcheck /api/health, MinVersion=1.18.18, понятная ошибка для старого бинаря - класс O5 WARN: устойчивость к v1-конфигу провайдера (npm/options игнорируются v2) - README: раздел интеграции, минимальная версия opencode, предупреждения - .serena: актуализация памяти (core, tech_stack)
2.1 KiB
2.1 KiB
tech_stack
Язык / рантайм
- Go 1.25.0 (go.mod
go 1.25.0). Модульgithub.com/kamelion/ratatoskr-go. - Сборка: статический бинарь,
CGO_ENABLED=0. Локальный Go-тулчейн на хосте:export PATH=/opt/data/.local/go/bin:$PATH(go1.25.0 linux/amd64).
Основные зависимости (go.mod)
gopkg.in/yaml.v3 v3.0.1— парсинг config.yaml.modernc.org/sqlite v1.56.0— SQLite без CGO (чистый Go).- (indirect) google/uuid, go-humanize, mattn/go-isatty, x/sys, modernc.org/libc/mathutil/memory.
Внешние процессы
- opencode (opencode.ai) — внешний процесс для субагентов (analyst/dev/reviewer).
Управляется через internal/opencode (Runner, LiveRegistry). Настраивается в конфиге
(opencode.bin / config / config_dir / hard_timeout / idle_timeout / poll_ms).
Требуемая версия opencode: >= 1.18.18 (v2 HTTP API
/api/*; хардпин model из конфига —internal/opencode/config.go, классы O1/O5). Подробно —mem:core.
Сборка / Makefile
make build— go build -ldflags="-s -w -X main.version=commit- -X main.updateToken=..." -o ratatoskr ./cmd/ratatoskr/.make test— go test ./... -v -count=1 -timeout 120s.make vet— go vet ./...make fmt— go fmt ./...make run— build + ./ratatoskr -config config.yaml.make cross— кросс-сборка linux/amd64 + windows/amd64 (ratatoskr-windows-amd64.exe — Windows-машина Камиля).- GIT_SHA вшивается в main.version; UPDATE_TOKEN — в main.updateToken (секрет только у CI).
CI (.gitea/workflows/ci.yaml)
- Job
test: go test ./... + go vet ./.... - Job
build-and-package(matrix linux/amd64+windows/amd64): собирает и публикует в Gitea Packages наmainв версиюcommit-<sha7>/+ companion-файлы.version/.sha256. - Секреты: TC_GITEA_TOKEN (write:packages), TC_UPDATE_TOKEN (read:package), GIT_MAIN_URL.