docs: add wizard telegram bot cutover plan

This commit is contained in:
Alexander Whitestone
2026-03-29 13:28:00 -04:00
parent 2d48b38b1e
commit 85cde7b623
2 changed files with 161 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
#!/usr/bin/env bash
set -euo pipefail
if [ "$#" -ne 2 ]; then
echo "usage: $0 <ezra_bot_token> <bezalel_bot_token>" >&2
exit 1
fi
EZRA_TOKEN="$1"
BEZALEL_TOKEN="$2"
GROUP_ID='-1003664764329'
GROUP_NAME='Timmy Time'
ALLOWED='7635059073'
ssh root@143.198.27.163 "python3 - <<'PY'
from pathlib import Path
p = Path('/root/wizards/ezra/home/.env')
text = p.read_text() if p.exists() else ''
lines = [line for line in text.splitlines() if not line.startswith('TELEGRAM_')]
lines += [
'TELEGRAM_BOT_TOKEN=${EZRA_TOKEN}',
'TELEGRAM_HOME_CHANNEL=${GROUP_ID}',
'TELEGRAM_HOME_CHANNEL_NAME=${GROUP_NAME}',
'TELEGRAM_ALLOWED_USERS=${ALLOWED}',
]
p.write_text('\n'.join(lines) + '\n')
PY
systemctl restart hermes-ezra.service openclaw-ezra.service"
ssh root@67.205.155.108 "python3 - <<'PY'
from pathlib import Path
p = Path('/root/wizards/bezalel/home/.env')
text = p.read_text() if p.exists() else ''
lines = [line for line in text.splitlines() if not line.startswith('TELEGRAM_')]
lines += [
'TELEGRAM_BOT_TOKEN=${BEZALEL_TOKEN}',
'TELEGRAM_HOME_CHANNEL=${GROUP_ID}',
'TELEGRAM_HOME_CHANNEL_NAME=${GROUP_NAME}',
'TELEGRAM_ALLOWED_USERS=${ALLOWED}',
]
p.write_text('\n'.join(lines) + '\n')
PY
systemctl restart hermes-bezalel.service"
echo 'Wizard Telegram bot tokens installed and services restarted.'

View File

@@ -0,0 +1,116 @@
# Wizard Telegram Bot Cutover
Purpose:
Finish the last mile for Ezra and Bezalel entering the `Timmy Time` Telegram group as distinct bots.
## Current truth
Done:
- Ezra house exists on `143.198.27.163`
- Bezalel house exists on `67.205.155.108`
- both Hermes API health endpoints answered locally
- Timmy Time Telegram home channel is known:
- group id: `-1003664764329`
- name: `Timmy Time`
Blocked:
- new bot creation still requires BotFather through Alexander's real Telegram user session
- there is no console-provable BotFather automation path available from the harness yet
## Recommended bot identities
### Ezra bot
- display name: `Ezra`
- preferred username candidate: `HermesEzraBot`
- fallback username candidates:
- `HermesEzraWizardBot`
- `EzraTimmyBot`
### Bezalel bot
- display name: `Bezalel`
- preferred username candidate: `HermesBezalelBot`
- fallback username candidates:
- `HermesBezalelWizardBot`
- `BezalelTimmyBot`
## BotFather sequence
Run this from Alexander's Telegram user account with `@BotFather`.
For Ezra:
1. `/newbot`
2. name: `Ezra`
3. username: try `HermesEzraBot`
4. save returned token securely
For Bezalel:
1. `/newbot`
2. name: `Bezalel`
3. username: try `HermesBezalelBot`
4. save returned token securely
Optional cleanup:
- `/setdescription`
- `/setabouttext`
- `/setuserpic`
Suggested about text:
- Ezra: `Archivist wizard house under Timmy's sovereignty.`
- Bezalel: `Artificer wizard house under Timmy's sovereignty.`
## Required group step
After creation, add both bots to the `Timmy Time` group and grant permission to post.
## Wire-up targets
### Ezra host
- host: `143.198.27.163`
- hermes home: `/root/wizards/ezra/home/.env`
- service: `hermes-ezra.service`
- openclaw sidecar: `openclaw-ezra.service`
### Bezalel host
- host: `67.205.155.108`
- hermes home: `/root/wizards/bezalel/home/.env`
- service: `hermes-bezalel.service`
## Environment entries to add
### Ezra
```env
TELEGRAM_BOT_TOKEN=<ezra token>
TELEGRAM_HOME_CHANNEL=-1003664764329
TELEGRAM_HOME_CHANNEL_NAME=Timmy Time
TELEGRAM_ALLOWED_USERS=7635059073
```
### Bezalel
```env
TELEGRAM_BOT_TOKEN=<bezalel token>
TELEGRAM_HOME_CHANNEL=-1003664764329
TELEGRAM_HOME_CHANNEL_NAME=Timmy Time
TELEGRAM_ALLOWED_USERS=7635059073
```
## Restart commands
### Ezra
```bash
ssh root@143.198.27.163 'systemctl restart hermes-ezra.service openclaw-ezra.service'
```
### Bezalel
```bash
ssh root@67.205.155.108 'systemctl restart hermes-bezalel.service'
```
## Acceptance proof
The cutover is complete only when all are true:
1. Ezra bot is visible in the group
2. Bezalel bot is visible in the group
3. Timmy bot is present in the group
4. Alexander posts one message in the group
5. Timmy, Ezra, and Bezalel each reply as distinct bots
6. logs or API output prove each reply came from the correct house