PR #15 retired the trial's 6.2–8.0 s cold / 0.5 ms restore ladder — but it had six more homes the first pass missed. Comments, unit lore and docs only: no behavior change, no cfhash move, no image rebuild.
Re-keyed to the measured claim (deployed container, 2026-10-18, empty registry): first synthesis 1 883 ms, the requests after it 1 226–1 283 ms → the warm pass buys ~0.6 s, and the reason it exists at all — which none of the pages led with — is that the registry is memory-only, so without the hook every voice name is a 400 until somebody synthesizes.
File
What changed
frank-tts-engine.container
"COLD-VOICE LAW" → registry law with the measured numbers; the serial-warm comment (~6-8 s each → two syntheses, ~5 s)
`frank-tts.container]
the "5.5 s cold decode" ordering note
scripts/frank-tts-engine.env
the law paragraph and the WARM_TEXT sizing note
scripts/frank-tts.env
the backend table's reason for the boot warm
Frank TTS.md
troubleshooting row: "first request takes ~5.5 s" → the symptom that is true (≈0.6 s, or 400 for every name) with the commands
Research/Local TTS and Voice Cloning.md
consequences paragraph (the law bullet there was already annotated in #15)
tests/frank_tts_engine.bats
one comment about what an early exit costs
The trial's dated worklog entry stays as written — a record is a record — and the new bullet points at it.
./tests/run.sh → 444/444.
PR #15 retired the trial's `6.2–8.0 s cold / 0.5 ms restore` ladder — but it had six more homes the first pass missed. Comments, unit lore and docs only: no behavior change, no `cfhash` move, no image rebuild.
**Re-keyed to the measured claim** (deployed container, 2026-10-18, empty registry): first synthesis 1 883 ms, the requests after it 1 226–1 283 ms → the warm pass buys ~**0.6 s**, and the reason it exists at all — which none of the pages led with — is that the registry is memory-only, so without the hook every voice name is a **400** until somebody synthesizes.
| File | What changed |
|---|---|
| `frank-tts-engine.container` | "COLD-VOICE LAW" → registry law with the measured numbers; the serial-warm comment (~6-8 s each → two syntheses, ~5 s) |
| `frank-tts.container\] | the "5.5 s cold decode" ordering note |
| `scripts/frank-tts-engine.env` | the law paragraph and the `WARM_TEXT` sizing note |
| `scripts/frank-tts.env` | the backend table's reason for the boot warm |
| `Frank TTS.md` | troubleshooting row: "first request takes ~5.5 s" → the symptom that is true (≈0.6 s, or 400 for every name) with the commands |
| `Research/Local TTS and Voice Cloning.md` | consequences paragraph (the law bullet there was already annotated in #15) |
| `tests/frank_tts_engine.bats` | one comment about what an early exit costs |
The trial's dated worklog entry stays as written — a record is a record — and the new bullet points at it.
`./tests/run.sh` → **444/444**.
PR #15 corrected the engine's page, the research brief's law bullet and the
warmer's header, but the retired ladder had six more homes: both quadlet files
("6.2-8.0 s… 0.5 ms", "~6-8 s each", "paying the 5.5 s cold decode"),
`scripts/frank-tts-engine.env` (the whole law paragraph and the WARM_TEXT note),
`scripts/frank-tts.env`, the [[Frank TTS]] troubleshooting row that told an
operator to expect ~5.5 s, the research brief's consequences paragraph, and one
test comment.
All re-keyed to what was measured on the deployed container 2026-10-18: the
first synthesis of a freshly registered voice costs 1,883 ms against 1,226-1,283
ms afterwards, so the warm pass buys about 0.6 s — and the reason it exists at
all, which the pages never led with, is that the registry is memory-only: without
the hook every voice name is a 400 until somebody synthesizes. The trial's dated
worklog entry stays as written; the correction points at it.
No behavior change: comments, unit lore and docs only, so no cfhash move and no
image rebuild.
dank
merged commit d2ce6693da into main2026-10-18 18:59:13 -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.
PR #15 retired the trial's
6.2–8.0 s cold / 0.5 ms restoreladder — but it had six more homes the first pass missed. Comments, unit lore and docs only: no behavior change, nocfhashmove, no image rebuild.Re-keyed to the measured claim (deployed container, 2026-10-18, empty registry): first synthesis 1 883 ms, the requests after it 1 226–1 283 ms → the warm pass buys ~0.6 s, and the reason it exists at all — which none of the pages led with — is that the registry is memory-only, so without the hook every voice name is a 400 until somebody synthesizes.
frank-tts-engine.containerscripts/frank-tts-engine.envWARM_TEXTsizing notescripts/frank-tts.envFrank TTS.mdResearch/Local TTS and Voice Cloning.mdtests/frank_tts_engine.batsThe trial's dated worklog entry stays as written — a record is a record — and the new bullet points at it.
./tests/run.sh→ 444/444.