Hermes
bd3d825738
feat: множественные репозитории (Repos) и клонирование в воркере
...
CI / test (push) Successful in 46s
CI / build-and-package (amd64, darwin) (push) Successful in 36s
CI / build-and-package (amd64, linux) (push) Successful in 37s
CI / build-and-package (amd64, windows) (push) Successful in 44s
CI / build-and-package (arm64, darwin) (push) Successful in 35s
CI / build-and-package (arm64, linux) (push) Successful in 36s
- Task.Repos []string (XML-колонка repos, обратная совместимость с repo)
- config: блок git {base_url, token}
- аналитик: ответ repos[], шаблон показывает список
- core: propose без repos → возврат в сбор (E1)
- worker вариант A: один dev из общего cwd, prepareRepos клонирует
недостающие репо (git clone), validateRepoName (E3), ErrRepoNotGit (E4)
- ошибки E1-E4 в worker/errors.go
2026-08-16 09:18:15 +05:00
Hermes
7be75fe14f
fix: убран префикс tg:// из chat_id при отправке (chat not found); тесты проверяют ChatID
CI / test (push) Successful in 54s
CI / build-and-package (amd64, darwin) (push) Successful in 45s
CI / build-and-package (amd64, linux) (push) Successful in 46s
CI / build-and-package (amd64, windows) (push) Successful in 46s
CI / build-and-package (arm64, darwin) (push) Successful in 44s
CI / build-and-package (arm64, linux) (push) Successful in 47s
2026-08-16 00:19:49 +05:00
Hermes
005877bfc5
fix: логировать ошибку getUpdates в polling — тишина не пряталась в консоли
CI / test (push) Successful in 46s
CI / build-and-package (amd64, darwin) (push) Successful in 44s
CI / build-and-package (amd64, linux) (push) Successful in 43s
CI / build-and-package (amd64, windows) (push) Successful in 44s
CI / build-and-package (arm64, darwin) (push) Successful in 50s
CI / build-and-package (arm64, linux) (push) Successful in 47s
2026-08-15 23:56:24 +05:00
Hermes
2b761aa0bc
feat: встроенные агенты opencode (analyst, dev) через go:embed, распаковка по умолчанию в ./agents рядом с бинарём
CI / test (push) Successful in 38s
CI / build-and-package (amd64, darwin) (push) Successful in 34s
CI / build-and-package (amd64, linux) (push) Successful in 33s
CI / build-and-package (amd64, windows) (push) Successful in 35s
CI / build-and-package (arm64, darwin) (push) Successful in 35s
CI / build-and-package (arm64, linux) (push) Successful in 34s
2026-08-15 15:41:26 +05:00
Hermes
9e7c95e1d8
feat: opencode.config_dir — каталог с агентами (OPENCODE_CONFIG_DIR)
CI / test (push) Successful in 43s
CI / build-and-package (amd64, darwin) (push) Successful in 40s
CI / build-and-package (amd64, linux) (push) Successful in 39s
CI / build-and-package (amd64, windows) (push) Successful in 41s
CI / build-and-package (arm64, darwin) (push) Successful in 42s
CI / build-and-package (arm64, linux) (push) Successful in 41s
2026-08-15 14:59:10 +05:00
Hermes
87fae9b82c
fix: дефолтные пути — ./worktrees и ./ratatoskr.db (независимо от ОС)
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
2026-08-15 11:26:34 +05:00
Hermes
35fcffe035
config: удалён GiteaCfg (GITEA_URL/GITEA_TOKEN) — нигде не использовался, хранение в локальной SQLite
build-test / build (push) Successful in 33s
2026-08-15 10:07:54 +05:00
Hermes
c72b41b2c5
app: composition root (A1-A4), Run(ctx), handleIncoming (вариант A), фикс config.Load(""), GetActiveTaskByChatID, main.go обновлён
build-test / build (push) Successful in 35s
2026-08-15 09:51:03 +05:00
Hermes
4641090398
worker: добавлен пакет worker (W1-W5, poll-цикл, runTask, промпт, тесты) + SetMaxOpenConns(1) для SQLITE_BUSY
build-test / build (push) Successful in 42s
2026-08-15 09:14:34 +05:00
Hermes
dfe374dd55
internal/analyst: Decider через opencode (A1–A4)
...
build-test / build (push) Successful in 1m15s
- Analyst struct: строит Go-template промпт из history+draft
- opencode.Runner.Run (agent=analyst) → ExtractVerdict → ExtractJSON
- Валидация phase/полей → core.Decision
- A1 DecodeFail, A2 RunError, A3 Validation, A4 NotReady
- MockRunner в тестах (11 тестов, зелёные)
- core.runDecide оборачивает ошибки аналитика в D1 ErrDecideFailed
- allow ready→collecting (фикс для правки готового черновика)
2026-08-15 00:32:49 +05:00
Hermes
2957bf0d63
internal/core: ядро-машина состояний (ProcessTurn поверх storage) + история задач в БД
...
build-test / build (push) Successful in 1m11s
- status = единственный источник истины (collecting/ready как фазы диалога)
- команды /start /cancel /skip /retry N /status N /continue N
- Decider интерфейс (аналитик→opencode, мок для тестов)
- task_history таблица для промпта аналитика
- allow ready→collecting (правка черновика)
2026-08-15 00:27:16 +05:00
Hermes
089e196dbc
internal/storage: SQLite-БД для задач и трассировок (таски + статус-машина, трассы с группировкой по task_id)
build-test / build (push) Successful in 30s
2026-08-14 23:38:57 +05:00
Hermes
cc180d7517
internal/chat/telegram: long-poll Channel (sendMessage, getUpdates, Options→HTML, apiURL заменяем для тестов)
build-test / build (push) Successful in 38s
2026-08-14 23:02:58 +05:00
Hermes
238f00ba36
internal/config: загрузка YAML+env (подстановка ${VAR:-default}, defaults, env override, Validate)
build-test / build (push) Successful in 1m23s
2026-08-14 22:59:23 +05:00
Hermes
c9d69594cc
internal/chat: мультиканальный Router (UserID-сессии, routing, pending Ask/ответ) + Channel интерфейс
build-test / build (push) Successful in 41s
2026-08-14 20:33:04 +05:00
Hermes
4ebafc48d0
internal/opencode: runner (idle/hard timeout, process-group kill, resume-fallback) + verdict/json parsing
build-test / build (push) Successful in 1m21s
2026-08-14 13:29:05 +05:00
Hermes
53cf901707
ratatoskr-go: стартовый каркас (Go-бинарь, CI, structure)
build-test / build (push) Successful in 47s
2026-08-14 08:53:57 +05:00