docs: add wizard telegram bot cutover plan
This commit is contained in:
45
scripts/wire_wizard_telegram_bots.sh
Executable file
45
scripts/wire_wizard_telegram_bots.sh
Executable 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.'
|
||||
116
specs/wizard-telegram-bot-cutover.md
Normal file
116
specs/wizard-telegram-bot-cutover.md
Normal 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
|
||||
Reference in New Issue
Block a user