Retire GPU box 192.168.123.14 from TTS and node-report configuration
The box is offline and being reconfigured. Removed the relay helper URL from .env (qwen_tts_helper_url defaults to empty, so local :8881 is now the only backend), dropped the 18881 relay entry from MEANINGFUL_PORTS, and made the node report state plainly that no controller endpoint exists rather than advertising one on a retired host. Also recorded that ModelCoordinator.ensure_qwen_server() already spawns the Qwen server on demand - it checks /health first, so a launchd-owned instance is reused instead of double-spawned.
This commit is contained in:
6
.env
6
.env
@@ -14,9 +14,9 @@ UMBRA_TTS__RETRY_DELAY=2.0
|
||||
UMBRA_TTS__VOICEDESIGN_MODEL=/Volumes/1TB_APL_Storage/UmbraAudio/models/Qwen3-TTS-12Hz-1.7B-VoiceDesign
|
||||
UMBRA_TTS__BASE_MODEL=/Volumes/1TB_APL_Storage/UmbraAudio/models/Qwen3-TTS-12Hz-1.7B-Base
|
||||
UMBRA_TTS__QWEN_TTS_URL=http://localhost:8881
|
||||
# Optional GPU accelerator: relay 127.0.0.1:18881 -> 192.168.123.14:8881.
|
||||
# Helper is tried first when healthy; local server above is the required fallback.
|
||||
UMBRA_TTS__QWEN_TTS_HELPER_URL=http://127.0.0.1:18881
|
||||
# The GPU box (192.168.123.14) is retired and removed from the configuration:
|
||||
# it is offline and being reconfigured, so there is no relay and no helper URL.
|
||||
# Local Qwen3-TTS on 8881 is the only TTS backend.
|
||||
|
||||
# --- LLM ---
|
||||
UMBRA_LLM__PROVIDER=auto
|
||||
|
||||
26
AGENTS.md
26
AGENTS.md
@@ -210,6 +210,32 @@ Each pass has quality gates. Quality is the primary concern; generation speed is
|
||||
- Prefer: stdlib → third-party → custom implementation
|
||||
|
||||
## Current Session Summary
|
||||
### Session: GPU box retired; Qwen TTS boot start; public DNS findings
|
||||
- **GPU box `192.168.123.14` is RETIRED (2026-10-08)** - offline and being reconfigured.
|
||||
Removed from configuration: `.env` no longer sets `UMBRA_TTS__QWEN_TTS_HELPER_URL`
|
||||
(default is `""`, so this is a no-op fallback), `MEANINGFUL_PORTS` lost the `18881`
|
||||
relay entry, and `umbra_node_report.py` now reports `controller_endpoint: None` with a
|
||||
`controller_status` explaining why. `config.py` comment updated. **Local `:8881` is the
|
||||
only TTS backend.** The root relay `/Library/LaunchDaemons/com.umba.qwen-relay.plist` +
|
||||
`qwen_relay.py` still need removing with sudo. Note this also strands the **UmbraTrans
|
||||
controller** (spec 21/22 assume it on that host) - specs 21/22 are now blocked on new
|
||||
controller hosting.
|
||||
- **The web UI already self-heals TTS:** `ModelCoordinator.ensure_qwen_server()`
|
||||
(`model_coordinator.py:238`) spawns `scripts/qwen_tts_server.py` via
|
||||
`Popen(start_new_session=True)` when `/health` fails. It is called only from
|
||||
`switch_to()` (line 293) - i.e. **on demand during pipeline work, NOT at boot or web
|
||||
startup**. It checks `qwen_health()` first, so a launchd-owned instance is reused
|
||||
rather than double-spawned: the two mechanisms are complementary, not conflicting.
|
||||
- **`umbraaudio.bdmurphy.me` TLS: Caddy fails with `internal error` (alert 80)** on the
|
||||
vhost while `bdmurphy.me` itself presents a valid cert. Cause was the missing public A
|
||||
record - with no DNS entry an ACME HTTP-01 challenge cannot validate, so on-demand TLS
|
||||
aborts the handshake. Caddy is at **`192.168.123.5`** (NOT the public IP: port-forwarded
|
||||
from 97.113.1.212). Diagnosing this via the public IP is misleading: the LAN host
|
||||
answers :80 and :443, the public IP does not hairpin from inside the LAN.
|
||||
- Useful negative result: Caddy answers `308 -> https://<Host>/` for **any** hostname,
|
||||
including invented ones, so a redirect Location cannot be used to infer vhost config.
|
||||
Only an SNI handshake (`openssl s_client -servername ...`) distinguishes them.
|
||||
|
||||
|
||||
### Session: Voice-maintenance guard (409) + boot auto-start failure diagnosed
|
||||
- **The banner lied by omission.** `voice_maintenance` was wired into `routes.py` **only**
|
||||
|
||||
@@ -56,7 +56,6 @@ NODE_CONTRACT_VERSION = 1
|
||||
MEANINGFUL_PORTS = {
|
||||
8420: "umbraaudio web UI (FastAPI/HTMX)",
|
||||
8881: "Qwen3-TTS local API",
|
||||
18881: "qwen-relay listener (loopback -> LAN GPU box)",
|
||||
1234: "LM Studio OpenAI-compatible server",
|
||||
5432: "PostgreSQL (control plane, not hosted here)",
|
||||
}
|
||||
@@ -323,8 +322,9 @@ def build_report(project_dir: str | None = None) -> dict[str, Any]:
|
||||
"audio_record_lives_in": "filesystem + *.wav.txt markers",
|
||||
"authentication": "none; active_project is an unsigned browser cookie",
|
||||
"shared_database_present_here": False,
|
||||
"controller_endpoint": "http://192.168.123.14:8442 (Host: umbratrans.bdmurphy.me)",
|
||||
"controller_stage_reached": "0 (reachability verified 2026-10-03)",
|
||||
"controller_endpoint": None,
|
||||
"controller_status": "unavailable: host 192.168.123.14 retired/offline (2026-10-08)",
|
||||
"controller_stage_reached": "0 (was reachable 2026-10-03, before retirement)",
|
||||
"secret_values_reported": False,
|
||||
}
|
||||
return report
|
||||
|
||||
@@ -58,8 +58,9 @@ class TTSConfig(BaseSettings):
|
||||
voicedesign_model: str = "/Volumes/1TB_APL_Storage/UmbraAudio/models/Qwen3-TTS-12Hz-1.7B-VoiceDesign"
|
||||
base_model: str = "/Volumes/1TB_APL_Storage/UmbraAudio/models/Qwen3-TTS-12Hz-1.7B-Base"
|
||||
qwen_tts_url: str = "http://localhost:8881"
|
||||
# Optional GPU accelerator (e.g. http://127.0.0.1:18881 relay to the
|
||||
# 192.168.123.14 box). Tried first when healthy; local always falls back.
|
||||
# Optional second TTS backend, tried first when healthy. The GPU box
|
||||
# (192.168.123.14) that this pointed at is retired, so it is now unset and
|
||||
# local 8881 is the only backend.
|
||||
qwen_tts_helper_url: str = ""
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user