rpi: код бота — только в ruzzy/astra-bot; доступ astra к нему, временная копия из infra убрана
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
bba3858894
commit
0a6d728851
+2
-3
@@ -59,8 +59,8 @@ OneDrive на внешний HDD. Мониторится с fr1 через pushg
|
||||
- **Агенту разрешено пушить в `main` `ruzzy/infra` напрямую** (решение пользователя 2026-10-11, перекрывает правило из `CLAUDE.md` только для него): любые изменения сервера он обязан внести в `servers/rpi.md`/`stacks/` и запушить в том же прогоне, конфликты — `pull --rebase` без `--force`, неразрешимые — отдать пользователю. Источник инструкций — `codex/AGENTS.md` в `ruzzy/astra-bot`.
|
||||
- Конфиг `~astra/.codex/config.toml`: `approval_policy=on-request`, `sandbox_mode=workspace-write`; инструкции агенту — `~astra/.codex/AGENTS.md` (паспорт, правила infra, что не трогать).
|
||||
- **astra-bot** (`astra-bot.service`, user `astra`): `/opt/astra-bot/bot.py` ⇄ `codex app-server` (JSON-RPC stdio) ⇄ Telegram long polling. Подтверждения команд/правок — кнопками в чате. Конфиг `/etc/astra-bot.env` (root 600): `TG_TOKEN`, `TG_ALLOWED_IDS=607015`. Тред Codex на чат — `~astra/.local/state/astra-bot.json`. Бот лежит в `/opt` под root, а не в `~/infra`, чтобы агент не правил свой код без `sudo`.
|
||||
- **Приём вложений исправлен 2026-10-11** (раньше бот читал только `text`, фото и подписи молча пропадали): установленный `bot.py` сохранён в `stacks/astra-bot/`, загружается при перезапуске службы. Фото и JPEG/PNG/WebP-документы до 20 МиБ скачиваются через Telegram `getFile` в `~astra/.local/share/astra-bot/incoming/` (файлы 600, UUID), передаются Codex как `localImage`; подпись и источник пересылки — текстом. Пересланные `/stop` и другие команды читаются как цитата. Во время работы сообщения ставятся в очередь процесса, альбомы читаются отдельными сообщениями в одном треде. Проверка — 16 unit-тестов; реальную доставку входящего фото надо проверить повторной отправкой после перезапуска.
|
||||
- ⚠️ **Временный источник правки бота — infra:** Gitea отклоняет доступ ключа astra к `ruzzy/astra-bot`; копия устанавливаемого кода и тесты сохранены в `stacks/astra-bot/`, основной репозиторий пока не обновлён. Резервная копия прежнего кода — `/opt/astra-bot/bot.py.bak-20261011-incoming`. Перезапуск проверяет отдельный `restart-check.py` и сообщает готовность в Telegram, поскольку сам перезапуск завершает текущий Codex-сеанс.
|
||||
- **Приём вложений исправлен 2026-10-11** (раньше бот читал только `text`, фото и подписи молча пропадали): код — `ruzzy/astra-bot`. Фото и JPEG/PNG/WebP-документы до 20 МиБ скачиваются через Telegram `getFile` в `~astra/.local/share/astra-bot/incoming/` (файлы 600, UUID), передаются Codex как `localImage`; подпись и источник пересылки — текстом. Пересланные `/stop` и другие команды читаются как цитата. Во время работы сообщения ставятся в очередь процесса, альбомы читаются отдельными сообщениями в одном треде. Проверка — 16 unit-тестов; реальную доставку входящего фото надо проверить повторной отправкой после перезапуска.
|
||||
- Код бота с доработкой Astra перенесён в `ruzzy/astra-bot` (`f9f6c39`, совпадает с установленным `/opt/astra-bot/bot.py`); временная копия `stacks/astra-bot/` удалена 2026-10-11. У astra теперь deploy-ключ с записью и в `astra-bot` (`~astra/.ssh/gitea_astra_bot`, Gitea id 11, алиас `gitea-astra-bot` — отдельный, т.к. Gitea берёт первый подошедший ключ, а deploy-ключ привязан к одному репо), клон `~astra/astra-bot`. Резервная копия прежнего кода — `/opt/astra-bot/bot.py.bak-20261011-incoming`.
|
||||
- ⚠️ **Почему не штатный Codex Remote из ChatGPT:** телефон к безголовому Linux не сопрягается — официально хостом может быть только macOS/Windows; `codex remote-control pair` выдаёт код, но и QR, и ручной ввод дают «Pair Failed», до демона попытка даже не доходит (проверено с debug-логом 2026-10-11). Рабочая альтернатива — ChatGPT Desktop на Mac → SSH-хост `rpi-astra`, но тогда Mac должен быть включён.
|
||||
- `/boot/firmware/cmdline.txt`: добавлен `cfg80211.ieee80211_regdom=RU` (бэкап `.bak-20261011`) — только чтобы `/etc/profile.d/wifi-check.sh` не печатал в stdout login-shell предупреждение про rfkill: оно ломало бы stdio-протоколы (Codex app-server по SSH). Wi-Fi не используется.
|
||||
- Рабочая копия `~astra/infra` (клон `ruzzy/infra`), git identity `Astra (rpi) <astra@rpi.ruzzy.dev>`, deploy-ключ `~astra/.ssh/gitea_infra` (**запись**, Gitea id 10), host key Gitea (RSA) закреплён и сверен с Mac. Автопулла нет — агент делает `git pull` сам.
|
||||
@@ -77,5 +77,4 @@ OneDrive на внешний HDD. Мониторится с fr1 через pushg
|
||||
- Пробное восстановление бэкапа серверов — раз в квартал (следующее ~январь 2027), см. `stacks/server-backup/README.md`.
|
||||
- Через неделю снять SMART и посчитать реальный прирост Start_Stop/Load_Cycle — прогноз ресурса пока оценочный.
|
||||
|
||||
- ⏳ Дать astra доступ к `ruzzy/astra-bot` и перенести исправление приёма изображений из `stacks/astra-bot/` в основной репозиторий бота.
|
||||
- ⏳ Определить хранение входящих фото: сейчас автоматически не удаляются ради ссылок в старых тредах; очередь сообщений только в памяти и теряется при перезапуске.
|
||||
|
||||
Reference in New Issue
Block a user