memory: archive 13 settled 2026-05-30/31 entries (Recent 7 + Tried 6) to archival-memory.md

This commit is contained in:
vh
2026-06-03 10:49:09 -07:00
parent 23f2b63884
commit 9090fb59d7
2 changed files with 103 additions and 88 deletions
+101
View File
@@ -193,6 +193,61 @@ _Entries moved out of persistent-memory.md to keep the active file scannable. Re
parsing for Kokoro /dev/captioned_speech multi-line responses. parsing for Kokoro /dev/captioned_speech multi-line responses.
_Archived 2026-06-01._ _Archived 2026-06-01._
- `[2026-05-31]` Dia2 deployed as **two fixed-model instances**
(`dia2-2b` :8200, `dia2-1b` :8202) from `local/dia:v2`, retiring
legacy Dia 1.6B; catalog `dia` entry **removed → dia2-2b + dia2-1b**
(breaking for asset-engine). Rationale: the devnen wrapper is
single-model and IGNORES the OpenAI `model` field (verified on its live
OpenAPI), so the only way to offer both Dia2 models as real per-request
asset-engine choices is one fixed endpoint per model. `3139e81`
(deploy), `db15638` (catalog swap).
_Archived 2026-06-03._
- `[2026-05-31]` Both dia2 catalog entries route to the wrapper's richer
**`/tts`** endpoint (not `/v1/audio/speech`) to expose the full control
surface (cfg_scale/temperature/top_p/cfg_filter_top_k/voice_mode/clone);
all defaults sourced from the wrapper's `CustomTTSRequest` Pydantic
blessed values. Voice default is `voice_mode: clone` +
`clone_reference_filename: Abigail.wav` so a stable (non-random-gender)
voice is the out-of-box behavior. `55602b7`, `5c47843`.
_Archived 2026-06-03._
- `[2026-05-31]` Zonos REST adapter (`stacks/zonos/adapter/`,
`local/zonos-api`) — thin OpenAI-ish `/v1/audio/speech` FastAPI in front
of the Gradio-only Zonos SDK; JSON-envelope `{audio, audio_format,
seed}` (Zonos is the fleet's first seedable TTS). Port 8203 (moved off
8201 — collided with csm). Built; NOT deployed (stack down for VRAM).
Also fixed the upstream image's missing CMD (`71df6f7`). `81efa8d`.
_Archived 2026-06-03._
- `[2026-05-31]` Catalog schema regenerated: added `CatalogLifecycle` +
`reproducibility.seed_field` (`b7b2130`). Resolves the stale-schema
hand-off; catalog now validates clean. (asset_engine `catalog.py`
Pydantic already supported both — schema file was just behind.)
_Archived 2026-06-03._
- `[2026-05-31]` TTS bench expanded with `stacks/{dia,zonos,csm}`
(`666f7f3` dia+zonos, `a4b8c2a` csm). The bench already had Fish
S2-Pro / Chatterbox-Turbo / IndexTTS-2 / CosyVoice3 / Kokoro /
VibeVoice / Qwen3-TTS / Kyutai. (csm since removed 2026-06-01.)
_Archived 2026-06-03._
- `[2026-05-31]` Remote browser/iPad/Vision-Pro driver seat for the
agent-fleet zellij session `Claude` stood up on nh3-dev (ttyd behind
Caddy, network-gated). Out of this repo — full architecture + the
HTTP2/OSC52/Safari-auth gotchas in auto-memory `reference_ttyd_fleet_seat`.
_Archived 2026-06-03._
- `[2026-05-30]` esh-docker-vm NFS boot-ordering fix:
`playbooks/fix-esh-nfs-boot-ordering.yaml` (`c0458d9`, + `53157b1`
drop-in filename-collision fix) adds `_netdev,nofail` to the four
10.0.50.50 NFS mounts + a docker `After=remote-fs.target` drop-in —
resolves paperless `Exited(255)` on reboot. traefik also gained
`restart: unless-stopped`. Full incident → auto-memory
`incident_esh_docker_nfs_boot_race`.
_Archived 2026-06-03._
## Tried and abandoned (archived) ## Tried and abandoned (archived)
- `[2026-04-30]` task-board workflow with - `[2026-04-30]` task-board workflow with
@@ -431,3 +486,49 @@ _Entries moved out of persistent-memory.md to keep the active file scannable. Re
- `[2026-05-27]` `head -c N` piped after a streaming curl SIGPIPEs the curl, - `[2026-05-27]` `head -c N` piped after a streaming curl SIGPIPEs the curl,
killing the request early. Use file-write + separate read. killing the request early. Use file-write + separate read.
_Archived 2026-06-01._ _Archived 2026-06-01._
- `[2026-05-31]` Building the dia2-capable image surfaced THREE upstream
packaging quirks: (1) `pip install -e nari-labs/dia2` fails — no PEP 660
`build_editable` hook; (2) plain `pip install` builds an empty
`UNKNOWN-0.0.0` wheel (base setuptools 59.6 < dia2's required ≥70); (3)
`--no-deps` leaves `transformers`/`sphn`/`whisper-timestamped` missing. Fix
(`local/dia:v2`): copy the pure-python `dia2/` package into site-packages +
install ONLY those 3 deps; base torch/numpy already satisfy Dia2.
_Archived 2026-06-03._
- `[2026-05-31]` Dia2 predefined voices (43, baked at `/app/voices`) are NOT
reachable from the `/tts` clone path — it resolves `clone_reference_filename`
against the reference_audio dir ONLY. The OpenAI `/v1/audio/speech` `voice`
param auto-resolves them (separate code path), which masked the gap. Fix:
stage `/app/voices/*` into `/worktank/dia/reference_audio`. Lesson: verify on
the endpoint the catalog ACTUALLY targets.
_Archived 2026-06-03._
- `[2026-05-31]` `voice_mode=clone` with an empty `clone_reference_filename`
→ asset-engine serializes it as the literal string `"undefined"` → `/tts`
404. First observed on dia2; worked around in the catalog (default the field
to a real voice). **[2026-06-01] root cause found** — the Kokoro voice-blend
widget reading Shoelace `.value` before hydration (see Current state); the
real fix is asset-engine-side and is escalated.
_Archived 2026-06-03._
- `[2026-05-31]` asset-engine `services.schema.json` is DERIVED (regen from the
Pydantic model via `dump_schema.py`) and had DRIFTED — rejected the
`lifecycle` field 12/14 services use. RESOLVED: regenerated with
`CatalogLifecycle` + `reproducibility.seed_field` (`b7b2130`). Lesson:
hand-editing `services.yaml` shape without regenerating re-introduces drift.
_Archived 2026-06-03._
- `[2026-05-31]` ttyd-over-TLS forces HTTP/2 (kills ttyd's terminal WebSocket
→ blank screen); Safari/WebKit never sends HTTP basic-auth on WS upgrades.
Both solved for the fleet seat (Caddy forces HTTP/1.1; auth → network-gating)
— detail in auto-memory `reference_ttyd_fleet_seat`.
_Archived 2026-06-03._
- `[2026-05-30]` esh-docker-vm: `hard` NFS mounts from 10.0.50.50 froze a
container worker in UNKILLABLE D-state when the NAS stalled — only a host
reboot clears it. Separately, `fstab defaults` (no `_netdev`) made NFS-bind
containers `Exited(255)` on reboot. → auto-memory
`incident_esh_docker_nfs_boot_race`.
_Archived 2026-06-03._
+2 -88
View File
@@ -335,54 +335,7 @@ _As of 2026-06-03:_
schema field once they read it. Tracked: althing msg schema field once they read it. Tracked: althing msg
`01KT2K2SY9N7AY69R9V0B4RXSW` to asset-engine-dev. `01KT2K2SY9N7AY69R9V0B4RXSW` to asset-engine-dev.
- `[2026-05-31]` Dia2 deployed as **two fixed-model instances** _32 older entries archived to archival-memory.md._
(`dia2-2b` :8200, `dia2-1b` :8202) from `local/dia:v2`, retiring
legacy Dia 1.6B; catalog `dia` entry **removed → dia2-2b + dia2-1b**
(breaking for asset-engine). Rationale: the devnen wrapper is
single-model and IGNORES the OpenAI `model` field (verified on its live
OpenAPI), so the only way to offer both Dia2 models as real per-request
asset-engine choices is one fixed endpoint per model. `3139e81`
(deploy), `db15638` (catalog swap).
- `[2026-05-31]` Both dia2 catalog entries route to the wrapper's richer
**`/tts`** endpoint (not `/v1/audio/speech`) to expose the full control
surface (cfg_scale/temperature/top_p/cfg_filter_top_k/voice_mode/clone);
all defaults sourced from the wrapper's `CustomTTSRequest` Pydantic
blessed values. Voice default is `voice_mode: clone` +
`clone_reference_filename: Abigail.wav` so a stable (non-random-gender)
voice is the out-of-box behavior. `55602b7`, `5c47843`.
- `[2026-05-31]` Zonos REST adapter (`stacks/zonos/adapter/`,
`local/zonos-api`) — thin OpenAI-ish `/v1/audio/speech` FastAPI in front
of the Gradio-only Zonos SDK; JSON-envelope `{audio, audio_format,
seed}` (Zonos is the fleet's first seedable TTS). Port 8203 (moved off
8201 — collided with csm). Built; NOT deployed (stack down for VRAM).
Also fixed the upstream image's missing CMD (`71df6f7`). `81efa8d`.
- `[2026-05-31]` Catalog schema regenerated: added `CatalogLifecycle` +
`reproducibility.seed_field` (`b7b2130`). Resolves the stale-schema
hand-off; catalog now validates clean. (asset_engine `catalog.py`
Pydantic already supported both — schema file was just behind.)
- `[2026-05-31]` TTS bench expanded with `stacks/{dia,zonos,csm}`
(`666f7f3` dia+zonos, `a4b8c2a` csm). The bench already had Fish
S2-Pro / Chatterbox-Turbo / IndexTTS-2 / CosyVoice3 / Kokoro /
VibeVoice / Qwen3-TTS / Kyutai. (csm since removed 2026-06-01.)
- `[2026-05-31]` Remote browser/iPad/Vision-Pro driver seat for the
agent-fleet zellij session `Claude` stood up on nh3-dev (ttyd behind
Caddy, network-gated). Out of this repo — full architecture + the
HTTP2/OSC52/Safari-auth gotchas in auto-memory `reference_ttyd_fleet_seat`.
- `[2026-05-30]` esh-docker-vm NFS boot-ordering fix:
`playbooks/fix-esh-nfs-boot-ordering.yaml` (`c0458d9`, + `53157b1`
drop-in filename-collision fix) adds `_netdev,nofail` to the four
10.0.50.50 NFS mounts + a docker `After=remote-fs.target` drop-in —
resolves paperless `Exited(255)` on reboot. traefik also gained
`restart: unless-stopped`. Full incident → auto-memory
`incident_esh_docker_nfs_boot_race`.
_25 older entries archived to archival-memory.md._
## Tried and abandoned ## Tried and abandoned
@@ -493,43 +446,4 @@ _25 older entries archived to archival-memory.md._
same clips gave the correct answer (clone 0.79 to real Imogen, 0.10 to same clips gave the correct answer (clone 0.79 to real Imogen, 0.10 to
default). Use ECAPA, not resemblyzer, for speaker-verification. default). Use ECAPA, not resemblyzer, for speaker-verification.
- `[2026-05-31]` Building the dia2-capable image surfaced THREE upstream _35 older entries archived to archival-memory.md._
packaging quirks: (1) `pip install -e nari-labs/dia2` fails — no PEP 660
`build_editable` hook; (2) plain `pip install` builds an empty
`UNKNOWN-0.0.0` wheel (base setuptools 59.6 < dia2's required ≥70); (3)
`--no-deps` leaves `transformers`/`sphn`/`whisper-timestamped` missing. Fix
(`local/dia:v2`): copy the pure-python `dia2/` package into site-packages +
install ONLY those 3 deps; base torch/numpy already satisfy Dia2.
- `[2026-05-31]` Dia2 predefined voices (43, baked at `/app/voices`) are NOT
reachable from the `/tts` clone path — it resolves `clone_reference_filename`
against the reference_audio dir ONLY. The OpenAI `/v1/audio/speech` `voice`
param auto-resolves them (separate code path), which masked the gap. Fix:
stage `/app/voices/*` into `/worktank/dia/reference_audio`. Lesson: verify on
the endpoint the catalog ACTUALLY targets.
- `[2026-05-31]` `voice_mode=clone` with an empty `clone_reference_filename`
→ asset-engine serializes it as the literal string `"undefined"` → `/tts`
404. First observed on dia2; worked around in the catalog (default the field
to a real voice). **[2026-06-01] root cause found** — the Kokoro voice-blend
widget reading Shoelace `.value` before hydration (see Current state); the
real fix is asset-engine-side and is escalated.
- `[2026-05-31]` asset-engine `services.schema.json` is DERIVED (regen from the
Pydantic model via `dump_schema.py`) and had DRIFTED — rejected the
`lifecycle` field 12/14 services use. RESOLVED: regenerated with
`CatalogLifecycle` + `reproducibility.seed_field` (`b7b2130`). Lesson:
hand-editing `services.yaml` shape without regenerating re-introduces drift.
- `[2026-05-31]` ttyd-over-TLS forces HTTP/2 (kills ttyd's terminal WebSocket
→ blank screen); Safari/WebKit never sends HTTP basic-auth on WS upgrades.
Both solved for the fleet seat (Caddy forces HTTP/1.1; auth → network-gating)
— detail in auto-memory `reference_ttyd_fleet_seat`.
- `[2026-05-30]` esh-docker-vm: `hard` NFS mounts from 10.0.50.50 froze a
container worker in UNKILLABLE D-state when the NAS stalled — only a host
reboot clears it. Separately, `fstab defaults` (no `_netdev`) made NFS-bind
containers `Exited(255)` on reboot. → auto-memory
`incident_esh_docker_nfs_boot_race`.
_29 older entries archived to archival-memory.md._