diff --git a/reports/production/2026-03-29-wizard-houses-launch-report.md b/reports/production/2026-03-29-wizard-houses-launch-report.md new file mode 100644 index 0000000..b45baf7 --- /dev/null +++ b/reports/production/2026-03-29-wizard-houses-launch-report.md @@ -0,0 +1,205 @@ +# Wizard Houses Launch Report — 2026-03-29 + +Purpose: +Record the first real launch of the Ezra and Bezalel wizard houses, with exact world-state proof, current blockers, and the remaining cutover path. + +## Summary + +Delivered: +- Ezra house launched on the Hermes VPS +- Bezalel house launched on the TestBed VPS +- Ezra configured as a Hermes house with an OpenClaw sidecar shell +- Bezalel configured as a pure Hermes forge house +- canon, house charters, and deployment doctrine committed into `timmy-home` + +Not yet complete: +- acceptance criteria requiring four-way Telegram discussion are still blocked on BotFather bot creation through Alexander's real Telegram user session +- live model-response proof from each wizard house is not yet considered final-world-state complete +- Ezra's OpenClaw sidecar is installed and wired, but not yet accepted as fully proven for the Telegram scenario + +## Branch / repo proof + +Repo: +- `Timmy_Foundation/timmy-home` + +Branch: +- `alexander/wizard-houses-ezra-bezalel` + +Key commits on this branch: +- `2d48b38` — `docs: define and launch Ezra and Bezalel houses` +- `85cde7b` — `docs: add wizard telegram bot cutover plan` + +These commits contain: +- `specs/timmy-ezra-bezalel-canon-sheet.md` +- `specs/hermes-ezra-house-charter.md` +- `specs/hermes-bezalel-house-charter.md` +- `specs/wizard-vps-houses-deployment.md` +- `specs/wizard-telegram-bot-cutover.md` +- `scripts/wire_wizard_telegram_bots.sh` + +## Host allocation + +### Ezra +- host name: `Hermes` +- public IP: `143.198.27.163` +- role: repo / architecture / Gitea wizard house + +### Bezalel +- host name: `TestBed` +- public IP: `67.205.155.108` +- role: forge / test / optimization wizard house + +## Filesystem layout proof + +### Ezra host +Observed directories: +- `/root/wizards/ezra/hermes-agent` +- `/root/wizards/ezra/home` +- `/root/wizards/ezra/openclaw-workspace` +- `/root/.openclaw-ezra` + +### Bezalel host +Observed directories: +- `/root/wizards/bezalel/hermes-agent` +- `/root/wizards/bezalel/home` + +## Service proof + +### Ezra services +Installed: +- `hermes-ezra.service` +- `openclaw-ezra.service` + +Observed command: +```bash +ssh root@143.198.27.163 'systemctl is-active hermes-ezra.service openclaw-ezra.service' +``` + +Observed output during verification: +```text +active +activating +``` + +Interpretation: +- Hermes Ezra was active +- OpenClaw Ezra was still in activation during the check, so the sidecar is not yet treated as final-proven complete + +### Bezalel service +Installed: +- `hermes-bezalel.service` + +Observed command: +```bash +ssh root@67.205.155.108 'systemctl is-active hermes-bezalel.service' +``` + +Observed output: +```text +active +``` + +## Hermes API health proof + +### Ezra +Observed command: +```bash +ssh root@143.198.27.163 'curl -s http://127.0.0.1:8643/health' +``` + +Observed output: +```json +{"status": "ok", "platform": "hermes-agent"} +``` + +### Bezalel +Observed command: +```bash +ssh root@67.205.155.108 'curl -s http://127.0.0.1:8644/health' +``` + +Observed output: +```json +{"status": "ok", "platform": "hermes-agent"} +``` + +Interpretation: +- both Hermes houses responded on their dedicated local API ports +- this is strong infrastructure proof that the houses are alive as services + +## Canon and charter proof + +The repo now defines the intended law of the houses: +- local Timmy remains sovereign control plane +- Ezra is the Claude-Hermes archivist house +- Bezalel is the Codex-Hermes artificer house +- OpenClaw may be Ezra's robe, not Ezra's bones +- Bezalel remains closer to the forge with no sidecar shell by default + +These decisions are captured in: +- `specs/timmy-ezra-bezalel-canon-sheet.md` +- `specs/hermes-ezra-house-charter.md` +- `specs/hermes-bezalel-house-charter.md` +- `decisions.md` + +## Telegram cutover proof / blocker + +Known group: +- `Timmy Time` +- chat id: `-1003664764329` + +Known current bot: +- existing Timmy bot token already configured in the local house + +Prepared artifact: +- `specs/wizard-telegram-bot-cutover.md` +- `scripts/wire_wizard_telegram_bots.sh` + +What is blocked: +- creating **new** Telegram bots for Ezra and Bezalel still requires `@BotFather` +- from the harness, there is not yet a console-provable path into Alexander's real Telegram user session to create those bots honestly +- because of that, the final acceptance criteria are pending a human BotFather step + +## Honest status on live model proof + +I attempted direct wizard-chat verification, but do not count it as final proof yet. + +Observed failure modes included: +- missing or non-exported Anthropic auth in ad hoc Ezra shell checks +- missing authentication header for ad hoc Bezalel OpenRouter checks + +Interpretation: +- the houses are launched and healthy at the Hermes API layer +- provider-auth/runtime proof still needs one focused hardening pass before declaring the houses fully operational for live conversation + +## Remaining work + +1. Create Ezra bot in BotFather +2. Create Bezalel bot in BotFather +3. Add both to the `Timmy Time` Telegram group +4. Run `scripts/wire_wizard_telegram_bots.sh ` +5. Restart Ezra/Bezalel services +6. Prove distinct replies from: + - Alexander + - Timmy + - Ezra + - Bezalel +7. Tighten provider-auth proof so both houses can answer directly with console-provable success + +## Verdict + +This launch is real and worth keeping. + +What is complete: +- named houses exist +- doctrine exists +- services exist +- health endpoints answered +- Gitea-tracked artifacts exist + +What is not complete: +- Telegram BotFather cutover +- four-way acceptance chat +- final live-model proof for both wizard houses + +This report should be used as the review artifact for Alexander's evaluation in Gitea.