Документировать API и сервис агента-кодера

This commit is contained in:
AidarKC
2026-05-24 08:04:44 +03:00
parent aa2644d812
commit 4b371e142d
53 changed files with 4317 additions and 18 deletions
@@ -0,0 +1,18 @@
# SHiNE-agent-bot-coder: очередь, voice, codex, systemd
- краткое описание фичи:
Добавлен новый сервис `SHiNE-agent-bot-coder` (Java), который обрабатывает сообщения от `@AidarKC`, ведёт JSONL-историю, использует файловую очередь, распознаёт voice через OpenAI, вызывает Codex CLI и поддерживает запуск как `systemd`-сервис.
- что именно проверять:
1. Бот принимает текст от `@AidarKC`, ставит задачу в очередь и отправляет ответ от Codex.
2. Бот принимает voice, отправляет текст распознавания и затем ответ от Codex.
3. Одновременные сообщения обрабатываются строго по одному (без параллельных запусков Codex).
4. После рестарта сервиса незавершённая активная задача повторно уходит в обработку.
5. Команда `/new` архивирует текущую историю и создаёт новую.
6. `systemd`-сервис стартует и автоматически перезапускается.
- ожидаемый результат:
Все пункты выше отрабатывают без потери сообщений, с корректным обновлением `data/queue.jsonl`, `data/state.json` и `data/history/*.jsonl`.
- статус:
`pending`
@@ -0,0 +1,22 @@
# Агент-бот coder: устранение дублей и зависаний
- краткое описание фичи:
- добавлен lock-файл `data/app.lock`, чтобы гарантировать единственный инстанс бота;
- доработано завершение worker/codex при stop/restart, чтобы не было ложных retry после штатной остановки;
- синхронизирован systemd-профиль под `--user` для `ai`;
- улучшена отправка промежуточных статусов по событиям `codex --json`.
- что проверять:
- при запущенном сервисе повторный запуск jar вручную завершается сразу с сообщением про занятый lock;
- команда `/status` отвечает один раз (без дублей);
- тестовая текстовая задача от `@AidarKC` обрабатывается и возвращает ответ;
- при `/stop` активная задача завершается без последующего спама retry-ошибками;
- в логах нет `409 Conflict` из-за второго poller после чистого перезапуска.
- ожидаемый результат:
- одновременно работает только один процесс бота;
- бот не дублирует ответы;
- очередь не застревает на interrupted после штатного stop/restart.
- статус:
- pending
@@ -0,0 +1,21 @@
# Python-обвязка Telegram → Codex (упрощённый сервис)
- краткое описание фичи:
- добавлен новый упрощённый сервис `SHiNE-agent-bot-coder/py_bot_service.py`;
- сервис работает через long-polling Telegram, принимает только текст, ведёт историю в `JSONL`;
- добавлены команды `/status`, `/queue`, `/stop`, `/cancel`, `/new`, `/help`;
- systemd unit переключён на запуск Python-сервиса.
- что проверять:
- `systemctl --user status shine-agent-bot-coder` показывает `active (running)`;
- бот отвечает на `/status` одним сообщением без дублей;
- тестовый текстовый запрос получает финальный ответ от Codex;
- `/stop` корректно останавливает текущую задачу;
- `/new` переносит текущую историю в `data/history/archive`.
- ожидаемый результат:
- стабильная обработка текстовых задач без зависаний и двойной обработки;
- только один инстанс сервиса (через lock `data/py_app.lock`).
- статус:
- pending