Compare commits
1 Commits
fix/553-pa
...
fix/506
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c45110ba9b |
@@ -18,8 +18,8 @@ from urllib import request
|
||||
DEFAULT_BASE_URL = "https://forge.alexanderwhitestone.com/api/v1"
|
||||
DEFAULT_OWNER = "Timmy_Foundation"
|
||||
DEFAULT_REPO = "timmy-home"
|
||||
DEFAULT_TOKEN_FILE = Path(os.environ.get("XDG_CONFIG_HOME", Path.home() / ".config")) / "gitea" / "token"
|
||||
DEFAULT_FAILOVER_STATUS = Path(os.environ.get("TIMMY_HOME", Path.home() / ".timmy")) / "failover_status.json"
|
||||
DEFAULT_TOKEN_FILE = Path.home() / ".config" / "gitea" / "token"
|
||||
DEFAULT_FAILOVER_STATUS = Path.home() / ".timmy" / "failover_status.json"
|
||||
DEFAULT_RESTART_STATE_DIR = Path("/var/lib/timmy/restarts")
|
||||
DEFAULT_HEARTBEAT_FILE = Path("/var/lib/timmy/heartbeats/fleet_health.last")
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ from pathlib import Path
|
||||
|
||||
|
||||
def get_token():
|
||||
f = Path(os.environ.get("XDG_CONFIG_HOME", Path.home() / ".config")) / "gitea" / "token"
|
||||
f = Path.home() / ".config" / "gitea" / "token"
|
||||
if f.exists():
|
||||
return f.read_text().strip()
|
||||
return os.environ.get("GITEA_TOKEN", "")
|
||||
|
||||
@@ -15,7 +15,7 @@ from typing import Any, Dict, List
|
||||
|
||||
# Configuration
|
||||
GITEA_BASE = "https://forge.alexanderwhitestone.com/api/v1"
|
||||
TOKEN_PATH = os.path.join(os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), "gitea", "token")
|
||||
TOKEN_PATH = os.path.expanduser("~/.config/gitea/token")
|
||||
ORG = "Timmy_Foundation"
|
||||
REPO = "timmy-home"
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from urllib.request import Request, urlopen
|
||||
|
||||
API_BASE = "https://forge.alexanderwhitestone.com/api/v1"
|
||||
ORG = "Timmy_Foundation"
|
||||
DEFAULT_TOKEN_PATH = os.path.join(os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), "gitea", "token")
|
||||
DEFAULT_TOKEN_PATH = os.path.expanduser("~/.config/gitea/token")
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
|
||||
@@ -27,7 +27,7 @@ from pathlib import Path
|
||||
import re
|
||||
|
||||
GITEA_URL = "https://forge.alexanderwhitestone.com"
|
||||
GITEA_TOKEN_PATH = Path(os.environ.get("XDG_CONFIG_HOME", Path.home() / ".config")) / "gitea" / "token"
|
||||
GITEA_TOKEN_PATH = Path.home() / ".config" / "gitea" / "token"
|
||||
ORG = "Timmy_Foundation"
|
||||
|
||||
REPOS = [
|
||||
|
||||
@@ -12,14 +12,12 @@ from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
TIMMY_HOME = Path(os.environ.get("TIMMY_HOME", Path.home() / ".timmy"))
|
||||
STATUS_FILE = TIMMY_HOME / "failover_status.json"
|
||||
SPEC_FILE = TIMMY_HOME / "fleet_dispatch.json"
|
||||
OUTPUT_FILE = TIMMY_HOME / "dispatch_plan.json"
|
||||
STATUS_FILE = Path.home() / ".timmy" / "failover_status.json"
|
||||
SPEC_FILE = Path.home() / ".timmy" / "fleet_dispatch.json"
|
||||
OUTPUT_FILE = Path.home() / ".timmy" / "dispatch_plan.json"
|
||||
|
||||
|
||||
def load_json(path: Path, default: Any):
|
||||
|
||||
@@ -13,7 +13,7 @@ FLEET = {
|
||||
"bezalel": "167.99.126.228"
|
||||
}
|
||||
|
||||
STATUS_FILE = Path(os.environ.get("TIMMY_HOME", Path.home() / ".timmy")) / "failover_status.json"
|
||||
STATUS_FILE = Path.home() / ".timmy" / "failover_status.json"
|
||||
|
||||
def check_health(host):
|
||||
try:
|
||||
|
||||
@@ -27,7 +27,7 @@ p.write_text('\n'.join(lines) + '\n')
|
||||
PY
|
||||
systemctl restart hermes-ezra.service openclaw-ezra.service"
|
||||
|
||||
ssh root@67.205.155.108 "python3 - <<'PY'
|
||||
ssh root@167.99.126.228 "python3 - <<'PY'
|
||||
from pathlib import Path
|
||||
p = Path('/root/wizards/bezalel/home/.env')
|
||||
text = p.read_text() if p.exists() else ''
|
||||
@@ -42,4 +42,7 @@ p.write_text('\n'.join(lines) + '\n')
|
||||
PY
|
||||
systemctl restart hermes-bezalel.service"
|
||||
|
||||
# Note: Bezalel migrated to Allegro VPS (167.99.126.228) after original TestBed VPS
|
||||
# (67.205.155.108) became unreachable on 2026-04-04. See #506.
|
||||
|
||||
echo 'Wizard Telegram bot tokens installed and services restarted.'
|
||||
|
||||
@@ -7,7 +7,7 @@ Finish the last mile for Ezra and Bezalel entering the `Timmy Time` Telegram gro
|
||||
|
||||
Done:
|
||||
- Ezra house exists on `143.198.27.163`
|
||||
- Bezalel house exists on `67.205.155.108`
|
||||
- Bezalel house exists on `167.99.126.228` (shared with Allegro after TestBed VPS at 67.205.155.108 died 2026-04-04)
|
||||
- both Hermes API health endpoints answered locally
|
||||
- Timmy Time Telegram home channel is known:
|
||||
- group id: `-1003664764329`
|
||||
@@ -71,7 +71,7 @@ After creation, add both bots to the `Timmy Time` group and grant permission to
|
||||
- openclaw sidecar: `openclaw-ezra.service`
|
||||
|
||||
### Bezalel host
|
||||
- host: `67.205.155.108`
|
||||
- host: `167.99.126.228` (shared with Allegro; original TestBed VPS 67.205.155.108 dead since 2026-04-04)
|
||||
- hermes home: `/root/wizards/bezalel/home/.env`
|
||||
- service: `hermes-bezalel.service`
|
||||
|
||||
@@ -102,9 +102,11 @@ ssh root@143.198.27.163 'systemctl restart hermes-ezra.service openclaw-ezra.ser
|
||||
|
||||
### Bezalel
|
||||
```bash
|
||||
ssh root@67.205.155.108 'systemctl restart hermes-bezalel.service'
|
||||
ssh root@167.99.126.228 'systemctl restart hermes-bezalel.service'
|
||||
```
|
||||
|
||||
> Note: Bezalel shares the Allegro VPS after the original TestBed VPS (67.205.155.108) became unreachable on 2026-04-04. See #506.
|
||||
|
||||
## Acceptance proof
|
||||
|
||||
The cutover is complete only when all are true:
|
||||
|
||||
@@ -10,9 +10,12 @@ This document records the first concrete house layout for Ezra and Bezalel.
|
||||
- Role: repo / Gitea / architecture wizard house
|
||||
|
||||
### Bezalel host
|
||||
- VPS: TestBed
|
||||
- Public IP: `67.205.155.108`
|
||||
- VPS: TestBed (DEPRECATED — original VPS at 67.205.155.108 unreachable since 2026-04-04)
|
||||
- Public IP: `167.99.126.228` (shared with Allegro VPS)
|
||||
- Role: forge / test / optimization wizard house
|
||||
- Migration: Bezalel services colocated with Allegro after TestBed VPS failure
|
||||
|
||||
> Note: The original TestBed VPS (67.205.155.108) is dead. Bezalel was migrated to share the Allegro VPS (167.99.126.228) to restore CI testbed and wizard house functionality. See #506.
|
||||
|
||||
## Directory layout
|
||||
|
||||
|
||||
@@ -351,7 +351,7 @@ houses:
|
||||
role: archivist
|
||||
|
||||
bezalel:
|
||||
endpoint: http://67.205.155.108:8643
|
||||
endpoint: http://167.99.126.228:8643 # Shared with Allegro after TestBed VPS death (was 67.205.155.108)
|
||||
role: artificer
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user