Follow-through on #34 (the frank-tts-engine iGPU cutover). The runtime landed there; this makes the documentation and the unit's own comments true about it.
What changed
serverAppConfigs-docs/Dankclaw/Frank TTS Engine.md — Facts rows now describe the device shape (--device Vulkan0, RADV ICD in the image, 1.7 GiB host RSS because the weights ride the device); a fourth law (the card is shared with frank-dragoon, rollback is QWENTTS_DEVICE=); a deploy record for the cutover including the glslc configure gate; two new troubleshooting rows for "loader without ICD" and "dragoon slows while TTS speaks". The arm A/B prose keeps the argument and drops the CPU-era figures, which are dead weight per the purpose test.
serverAppConfigs-docs/Dankclaw/Frank TTS.md — "Where the engine computes" answers iGPU + co-tenancy, and states the NPU verdict rather than re-litigating it.
dankclaw/voiceservice/quadlet/frank-tts-engine.container — comment correction: the unit claimed GroupAdd=keep-groups is what grants render permission. Measured on this host the render nodes are world-writable via the udev rule and the container has no supplementary groups at all (id inside it shows only its own group, while tts-server still holds renderD129), so keep-groups stays as belt-and-braces and the comment says so. The RSS note now matches the device shape.
report/tts-npu-spike-verdict-2026-10-19.md — §5 records gate 2 (contention) as measured after the cutover with both tenants live, and the change surface is corrected to what actually ran: the build stage needs glslc (libvulkan-dev, spirv-headers, glslc) — the earlier text predicted libvulkan-dev glslang-dev, and glslang-tools does not ship a glslc that find_package(Vulkan COMPONENTS glslc REQUIRED) accepts.
index.md regenerated (one description changed).
Gates — ./tests/run.sh: 451/451. Docs-only, so the planner makes this a no-op deploy; no service restarts.
Follow-through on #34 (the `frank-tts-engine` iGPU cutover). The runtime landed there; this makes the documentation and the unit's own comments true about it.
**What changed**
- **`serverAppConfigs-docs/Dankclaw/Frank TTS Engine.md`** — Facts rows now describe the device shape (`--device Vulkan0`, RADV ICD in the image, 1.7 GiB host RSS because the weights ride the device); a **fourth law** (the card is shared with [[frank-dragoon]], rollback is `QWENTTS_DEVICE=`); a deploy record for the cutover including the `glslc` configure gate; two new troubleshooting rows for "loader without ICD" and "dragoon slows while TTS speaks". The arm A/B prose keeps the *argument* and drops the CPU-era figures, which are dead weight per the purpose test.
- **`serverAppConfigs-docs/Dankclaw/Frank TTS.md`** — "Where the engine computes" answers iGPU + co-tenancy, and states the NPU verdict rather than re-litigating it.
- **`dankclaw/voiceservice/quadlet/frank-tts-engine.container`** — comment correction: the unit claimed `GroupAdd=keep-groups` is what grants render permission. Measured on this host the render nodes are world-writable via the udev rule and the container has no supplementary groups at all (`id` inside it shows only its own group, while `tts-server` still holds `renderD129`), so keep-groups stays as belt-and-braces and the comment says so. The RSS note now matches the device shape.
- **`report/tts-npu-spike-verdict-2026-10-19.md`** — §5 records gate 2 (contention) as measured *after* the cutover with both tenants live, and the change surface is corrected to what actually ran: the build stage needs **`glslc`** (`libvulkan-dev`, `spirv-headers`, `glslc`) — the earlier text predicted `libvulkan-dev glslang-dev`, and `glslang-tools` does not ship a `glslc` that `find_package(Vulkan COMPONENTS glslc REQUIRED)` accepts.
- `index.md` regenerated (one description changed).
**Gates** — `./tests/run.sh`: 451/451. Docs-only, so the planner makes this a no-op deploy; no service restarts.
Built in worktree `~/.omp/wt/wt-tts-vulkan`.
---
cwd: /home/blank/.omp/wt/wt-20261019-020309-6d1fc1f · session: 01a15566-20a1-739e-9b50-4ef6b041011f
The cutover PR merged the runtime; this carries the surface that has to be
true afterwards.
- Engine page: the shape is now `--device Vulkan0` on the gfx1151 as a
co-tenant beside frank-dragoon; the registry/thread/streaming laws gain a
fourth — the device law — whose numbers stay in the verdict report, and the
deploy record gets the cutover steps including the `glslc` configure gate.
The CPU-era arm/rollback prose keeps the qualitative argument and drops the
dead numbers per the purpose test.
- Endpoint page: "Where the engine computes" now says iGPU + co-tenancy, and
states the NPU verdict in one paragraph instead of a research tour.
- Quadlet comment: it claimed supplementary groups are what grant render
access. On this host the udev rule world-writes the render nodes and the
container's `id` shows no groups at all, so keep-groups is belt-and-braces;
the RSS note now matches the device shape instead of the CPU trial.
- Verdict report: gate 2 (contention) recorded as measured after the cutover,
and the build-stage prediction corrected — the package is `glslc`, not
`libvulkan-dev glslang-dev`.
- index.md regenerated (one description changed).
dank
merged commit 9b9c32005f into main2026-10-19 14:38:33 -07:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Follow-through on #34 (the
frank-tts-engineiGPU cutover). The runtime landed there; this makes the documentation and the unit's own comments true about it.What changed
serverAppConfigs-docs/Dankclaw/Frank TTS Engine.md— Facts rows now describe the device shape (--device Vulkan0, RADV ICD in the image, 1.7 GiB host RSS because the weights ride the device); a fourth law (the card is shared with frank-dragoon, rollback isQWENTTS_DEVICE=); a deploy record for the cutover including theglslcconfigure gate; two new troubleshooting rows for "loader without ICD" and "dragoon slows while TTS speaks". The arm A/B prose keeps the argument and drops the CPU-era figures, which are dead weight per the purpose test.serverAppConfigs-docs/Dankclaw/Frank TTS.md— "Where the engine computes" answers iGPU + co-tenancy, and states the NPU verdict rather than re-litigating it.dankclaw/voiceservice/quadlet/frank-tts-engine.container— comment correction: the unit claimedGroupAdd=keep-groupsis what grants render permission. Measured on this host the render nodes are world-writable via the udev rule and the container has no supplementary groups at all (idinside it shows only its own group, whiletts-serverstill holdsrenderD129), so keep-groups stays as belt-and-braces and the comment says so. The RSS note now matches the device shape.report/tts-npu-spike-verdict-2026-10-19.md— §5 records gate 2 (contention) as measured after the cutover with both tenants live, and the change surface is corrected to what actually ran: the build stage needsglslc(libvulkan-dev,spirv-headers,glslc) — the earlier text predictedlibvulkan-dev glslang-dev, andglslang-toolsdoes not ship aglslcthatfind_package(Vulkan COMPONENTS glslc REQUIRED)accepts.index.mdregenerated (one description changed).Gates —
./tests/run.sh: 451/451. Docs-only, so the planner makes this a no-op deploy; no service restarts.Built in worktree
~/.omp/wt/wt-tts-vulkan.cwd: /home/blank/.omp/wt/wt-20261019-020309-6d1fc1f · session: 01a15566-20a1-739e-9b50-4ef6b041011f