memory: zonos-gateway repo reconcile + soong Homepage plan (manual entry, option B)

This commit is contained in:
vh
2026-07-18 02:02:44 -07:00
parent 4bdf01001c
commit deae057399
+2 -2
View File
@@ -119,13 +119,13 @@ _As of 2026-07-18 — active work = Zonos2 emotion-tuning + voice-cloning for th
**Open loops for the fresh session:**
- ✅ **yt-voice-clipper yields test CLOSED** (2026-07-18) — job `f3ff746dbae9494d` returned **13 segments / 203.5s** (was 2 pre-fix), `max_gap=1.2` confirmed live; replied verify #3 to yt-voice-clipper-dev (thread `01KXT0T6GYHB61EKJ81PZAMA7W`, msg `01KXT25D…`). All 3 verifies green (A6000 / v0.3.3 / yields). Redeploy done + validated.
- ✅ **Axes sweep DONE + dvalin loop CLOSED** (2026-07-18) — ran the valence×arousal sweep on the 3 calibrated defaults, sent dvalin the graded numbers (thread `01KXT12FN0AS5A3WMKEK06BVPS`, msg `01KXT2ZB8G…`). Result in the `[2026-07-18] axes sweep` Recent-decisions entry below. **Open Qs posed to dvalin** (awaiting reply): (a) strength-ladder at ship cells to find AmericanMale's missing angry sweet spot? (b) emotion-congruent text next, or bake happy/sad/angry canonical first? — monitor armed for the reply.
- ✅ **BAKED — emotion presets shipped as zonos-gateway 0.2.1** (2026-07-18). Operator ear-checked (neutral-text audition inconclusive: "they all sound different, hard to tell" → "call it, provisional, we'll deal with it"), then green-lit bake+docs. Implemented **voice-resolved** emotion presets (`resolve_preset(name, voice)`): `angry`/`happy`/`startled_happy` (+`surprised`/`startled` aliases) resolve to the per-voice measured cell — NOT a global preset (dvalin ruling; BrF named-angry→fear is why). Calibrated for AmF/AmM/BrF; mid-region fallback for Cora+clones. `/v1/dials` exposes `voice_emotion_presets`; `/docs` FastAPI description documents it (the web surface); durable spec at `docs/EMOTION-DIALS-SPEC.md` (moved into vh/zonos-gateway repo — was mirror-only) + README table. 44 tests green; rebuilt + verified live on irv-ml1 (BrF angry→200, Cora surprised→fallback 200). Commit `a92cc40` + tag `v0.2.1` on vh/zonos-gateway clone `~/development/zonos-gateway` (UNPUSHED). Audition tooling: `~/development/zonos-tools/{gen_auditions,axes_sweep,strength_ladder}.py`; audition server was nohup :8901 on nh3-dev (throwaway, tear down). **Ship cells baked (per-voice, exp/cfg1.5, no sliders):**
- ✅ **BAKED — emotion presets shipped as zonos-gateway 0.2.1** (2026-07-18). Operator ear-checked (neutral-text audition inconclusive: "they all sound different, hard to tell" → "call it, provisional, we'll deal with it"), then green-lit bake+docs. Implemented **voice-resolved** emotion presets (`resolve_preset(name, voice)`): `angry`/`happy`/`startled_happy` (+`surprised`/`startled` aliases) resolve to the per-voice measured cell — NOT a global preset (dvalin ruling; BrF named-angry→fear is why). Calibrated for AmF/AmM/BrF; mid-region fallback for Cora+clones. `/v1/dials` exposes `voice_emotion_presets`; `/docs` FastAPI description documents it (the web surface); durable spec at `docs/EMOTION-DIALS-SPEC.md` (moved into vh/zonos-gateway repo — was mirror-only) + README table. 44 tests green; rebuilt + verified live on irv-ml1 (BrF angry→200, Cora surprised→fallback 200). PUSHED to gitea `vh/zonos-gateway` main `8f1885b` + tag `v0.2.1`. ⚠️ **Repo-hygiene gotcha (fixed 2026-07-18):** the local clone `~/development/zonos-gateway` and gitea had TWO UNRELATED git histories (no merge-base) — gitea held the voice-wav commits, local held the code+bake, no remote wired. Reconciled onto gitea's lineage (reset local→origin/main, overlaid the 7 bake files, `uv lock`, committed, pushed); voices stay tracked. Local now shares gitea's lineage + has origin wired. Deployed irv-ml1 tree still non-git (CI-wire follow-up open). Audition tooling: `~/development/zonos-tools/{gen_auditions,axes_sweep,strength_ladder}.py`; audition server was nohup :8901 on nh3-dev (throwaway, tear down). **Ship cells baked (per-voice, exp/cfg1.5, no sliders):**
- **angry** — BritishFemale v-0.4/a+0.8 str1.0 (0.99/id0.725, proxy fear-CLEAN); AmericanFemale v-0.4/a+1.0 str1.0 (0.53/id0.685); AmericanMale **two-tier** (no single ship cell) → soft v-0.6/a+0.8 str1.0 (0.23/id0.654) / drama v-0.6/a+0.8 str1.2 (1.0/id0.616, clean).
- **startled-happy** (="surprised" product alias; never set surprised slider) — AmF v+0.6/a+0.8, AmM v+0.3/a+1.0, BrF v+0.6/a+1.0 (all happy~1.0, id 0.74-0.80).
- **happy** — axes-preferred (same cells as startled-happy; +0.15 id over named-happy); named-happy = fallback. **sad** = unchanged (named exp cfg1.5, not re-tested on these 3).
- dvalin ruling: store as **per-voice dial tables, NOT a global preset** (BrF named-angry→fear is the exhibit). Bake provisional + ear-spot-check 1 clip/cell.
- Follow-ups: emotion-congruent-text pass (validates intensity, may rescue sad id); clone-char voices map to nearest-default table or 1-row confirm. Tools: `~/development/zonos-tools/{axes_sweep,strength_ladder}.py` (scoring env: `uv run --with resemblyzer --with funasr --with "numpy<2" --with soundfile --with requests --with "setuptools<80" --with torchaudio`; run ON irv-ml1 — localhost:8890 + REFDIR).
- **soong-lab containerize cutover on corviduo-dev — AUTHORIZED/slotted** (2026-07-18, operator "slot the soong"; soong-dev thread `01KXT3A6C3908TA4V9THV3AMH7`). In-repo half landed (soong-lab `0e49391`: Dockerfile/compose/`.gitea/workflows/build-and-push.yml`/`docs/DEPLOY.md` = source-of-truth checklist). My side to drive: (1) creds — internal Gitea PyPI read (`bifrost[reference-server]==1.1.0`, BuildKit secret `id=gitea_token`) + container-registry push; **source via claude-bot service account first** (migrate-off-personal-creds), vh fallback only on scope gap; (2) confirm a Gitea Actions runner for the tag/manual build; (3) propose a quiet cutover WINDOW to vh. HARD: migrate `/data/library` (incl. Sindra) + `/data/portraits` into volumes BEFORE first container run; verify Bifrost callback path (`SOONG_LAB_BIFROST_ENDPOINT_URL`, proxy→container + WT host-allowlist) + `/api/version` + one live Soong tool-call round-trip BEFORE retiring `soong-lab-studio.service` + the webhook git-pull deploy. Not started (queued behind Zonos ear-check). ⚠️ corviduo-dev = WT-team-managed, data-affecting → coordinate. [[reference_corviduo_dev_emergency_ops]] [[reference_claude_bot_gitea_creds]]
- **soong-lab containerize cutover on corviduo-dev — AUTHORIZED/slotted** (2026-07-18, operator "slot the soong"; soong-dev thread `01KXT3A6C3908TA4V9THV3AMH7`). In-repo half landed (soong-lab `0e49391`: Dockerfile/compose/`.gitea/workflows/build-and-push.yml`/`docs/DEPLOY.md` = source-of-truth checklist). My side to drive: (1) creds — internal Gitea PyPI read (`bifrost[reference-server]==1.1.0`, BuildKit secret `id=gitea_token`) + container-registry push; **source via claude-bot service account first** (migrate-off-personal-creds), vh fallback only on scope gap; (2) confirm a Gitea Actions runner for the tag/manual build; (3) propose a quiet cutover WINDOW to vh. HARD: migrate `/data/library` (incl. Sindra) + `/data/portraits` into volumes BEFORE first container run; verify Bifrost callback path (`SOONG_LAB_BIFROST_ENDPOINT_URL`, proxy→container + WT host-allowlist) + `/api/version` + one live Soong tool-call round-trip BEFORE retiring `soong-lab-studio.service` + the webhook git-pull deploy. Not started (queued behind Zonos ear-check). **Post-cutover: add a Homepage entry — manual `services.yaml`, NOT docker labels** (operator chose "B" 2026-07-18). Homepage runs on **esh-docker-vm** (`/opt/docker/conf/homepage/`), docker-label auto-discovery only covers the 5 endpoints in its `docker.yaml` (esh-vm-docker, ana-docker, ana-ml2, nh3-docker, irv-ml1) — **corviduo-dev is NOT watched**, so labels alone won't surface it. Add a manual entry (href + `siteMonitor` ping at the live soong-lab URL, icon, description) in a MANUAL group (Apps/Creative/Infra — NOT the AI tab, which is auto-discovery-only and warns against manual entries → double-up). Rejected option A (expose corviduo-dev docker :2375 + label) as too much for one tile on a WT-managed host. ⚠️ corviduo-dev = WT-team-managed, data-affecting → coordinate. [[reference_corviduo_dev_emergency_ops]] [[reference_claude_bot_gitea_creds]]
- **althing monitor ARMED this session** (handle `infra-ops`, wake-listener; herald up). Re-arm after each fire (dies on /clear). Open watch: worldtree-dev (#368 memory-leak forensics done; #363 research-wing ingest PARKED).
- **eshpfi commits UNPUSHED** — the zonos-gateway capture + memory (`14a0004`..`438cd35`) are committed; push is the operator's call. `stacks/heretic2-charrp-reasoning/` still UNTRACKED; `graphify-out/GRAPH_REPORT.md` modified.
- **irv-ml1 3090 oversubscription** (kokoro `:8193` + vibevoicefusion `:9527` idle-pinned; zonos engine :1920 also on 3090) — carried; operator declined to fix.