60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# Leo Disposable Test Agent
|
|
|
|
## Working Target
|
|
|
|
Run a second Leo Telegram transport against `https://leo.livingip.xyz/api/agents/leo/chat` without touching the production `@TeleoHumanBot` token or `teleo-agent@leo` service.
|
|
|
|
## Why
|
|
|
|
Production Leo is currently blocked by a Telegram `getUpdates` conflict from an unseen consumer. A disposable bot avoids that conflict by using a separate Telegram bot token and service instance.
|
|
|
|
## Secret Boundary
|
|
|
|
Do not commit the bot token. Store it only on the VPS as:
|
|
|
|
```text
|
|
/opt/teleo-eval/secrets/leo-test-telegram-bot-token
|
|
```
|
|
|
|
The file should be readable by the `teleo` runtime user and should not be printed in logs.
|
|
|
|
## Boot
|
|
|
|
After syncing this branch or PR to the VPS:
|
|
|
|
```sh
|
|
sudo -u teleo /opt/teleo-eval/pipeline/.venv/bin/python3 \
|
|
/opt/teleo-eval/telegram/agent_runner.py --agent leo-test --validate
|
|
|
|
sudo systemctl start teleo-agent@leo-test
|
|
sudo systemctl is-active teleo-agent@leo-test
|
|
```
|
|
|
|
Then DM the disposable Telegram bot from a user account. Do not post into public groups for this canary.
|
|
|
|
## Evidence
|
|
|
|
Collect sanitized logs only:
|
|
|
|
```sh
|
|
journalctl -u teleo-agent@leo-test --since "10 minutes ago" --no-pager
|
|
```
|
|
|
|
Retained proof should say:
|
|
|
|
- bot token value was not printed;
|
|
- production `teleo-agent@leo` was not stopped;
|
|
- disposable service name was `teleo-agent@leo-test`;
|
|
- public HTTP Leo route responded through the Telegram transport;
|
|
- no paid x402 spend was attempted unless separately authorized.
|
|
|
|
## Tear Down
|
|
|
|
```sh
|
|
sudo systemctl stop teleo-agent@leo-test
|
|
sudo systemctl is-active teleo-agent@leo-test || true
|
|
```
|
|
|
|
## Slack Note
|
|
|
|
Slack is the preferred long-term internal transport, but this repository does not yet include a Slack bot transport. A Slack canary should be a separate PR with a Socket Mode or Events API adapter and separate `leo-slack-*` secret files.
|