Files
ratatoskr-go/.serena/memories/tech_stack.md
ki.sagidullin 7c7afa6875
Some checks failed
CI / test (pull_request) Failing after 41s
CI / build-and-package (amd64, linux) (pull_request) Successful in 50s
CI / build-and-package (amd64, windows) (pull_request) Successful in 39s
chore: onboard Serena — add .serena with project memories
Сохраняем онбоардинг-память проекта (core, tech_stack, conventions,
suggested_commands, task_completion) в .serena и коммитим служебную
директорию, чтобы она была доступна на сервере. Директория НЕ исключена
в .gitignore (локально исключаются только cache и project.local.yml).
2026-08-17 22:48:53 +05:00

1.9 KiB
Raw Blame History

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).

Сборка / 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.