# Leo Test Deploy Readiness ## Working Target Confirm the VPS is ready to boot the disposable `teleo-agent@leo-test` service without touching production Leo, sending Telegram/Slack messages, resetting services, or reading token contents. ## Why PR #5 added `telegram/agents/leo-test.yaml`, but the VPS deploy source can lag behind GitHub. The readiness check keeps the next live step explicit: source reconciliation first, token file second, service validation and boot third. ## Command Run on the VPS: ```sh /opt/teleo-eval/workspaces/deploy-infra/deploy/check-leo-test-deploy-readiness.sh ``` The checker is read-only. It prints `key=value` rows and exits non-zero until all required state is present. By default it does not fetch or update Git refs. To explicitly refresh `github/main` before checking, run: ```sh FETCH_GITHUB_MAIN=1 /opt/teleo-eval/workspaces/deploy-infra/deploy/check-leo-test-deploy-readiness.sh ``` ## Expected Blockers Before Reconciliation The checker treats PR #5's merge commit as a required ancestor of `github/main`, not as the exact current tip. This keeps the readiness check stable after follow-up merges such as this checker itself. The current blocker set should include: - `teleo_auto_deploy_exec_start_expected`: systemd still points at the legacy `/opt/teleo-eval/workspaces/deploy/ops/auto-deploy.sh` path. - `runtime_leo_test_config`: runtime Telegram path does not yet have `agents/leo-test.yaml`. - `pipeline_leo_test_config`: pipeline Telegram mirror does not yet have `agents/leo-test.yaml`. - `leo_test_token_file`: `/opt/teleo-eval/secrets/leo-test-telegram-bot-token` is absent. ## Ready State The checker returns: ```text status=ready_for_leo_test_validate_and_boot ``` only after: - deploy-infra can read GitHub main at or after the expected PR #5 merge commit; - GitHub main contains `telegram/agents/leo-test.yaml`; - systemd points auto-deploy at the reviewed deploy-infra script; - runtime and pipeline Telegram paths contain `agents/leo-test.yaml`; - the separate disposable test bot token file exists. ## Next Live Step After Ready After readiness passes, validate without sending a message: ```sh sudo -u teleo /opt/teleo-eval/pipeline/.venv/bin/python3 \ /opt/teleo-eval/telegram/agent_runner.py --agent leo-test --validate ``` Only after that should `teleo-agent@leo-test` be started for a private, explicitly authorized disposable bot DM test.