skald/skald-core/src
Sulkta 61f1bdd40a narrate: single-voice prep drops voice tags; GC superseded renders
Two fixes:

- narrate_prep in single-voice mode (empty character roster) was
  still handed the multi-voice directive, so the model invented
  [voice:<slug>] tags from character names in the prose. The
  narrate path neutralised them by falling back to the narrator,
  but it was log spam and a leak of intent. Single-voice now gets
  directive + house-system variants that forbid voice tags
  outright, and the user-prompt task line matches.

- Every narrate run wrote a fresh ~80MB WAV and never reclaimed
  the previous one, so re-renders piled up stale files. A
  successful render now deletes the WAVs of prior renders of the
  same chapter and nulls their output_path. Render history rows
  are kept; only the dead file pointer is cleared. Best-effort —
  cleanup failure never fails the render.
2026-05-15 07:02:10 -07:00
..
authors.rs v0.3 step 1: migration 0004 + authors module + web form panels 2026-05-13 12:01:29 -07:00
config.rs v0.2 scaffold: vendor clawdforge SDK + forge module + Whisper plan 2026-05-13 10:18:56 -07:00
context.rs context: split coverage into prose_coverage + chapter_coverage 2026-05-13 11:18:31 -07:00
db.rs scaffold v0.1: postgres+pgvector inside-container, schema, markdown ingest, CLI 2026-05-13 09:04:28 -07:00
forge.rs narrate: single-voice prep drops voice tags; GC superseded renders 2026-05-15 07:02:10 -07:00
ingest.rs scaffold v0.1: postgres+pgvector inside-container, schema, markdown ingest, CLI 2026-05-13 09:04:28 -07:00
lib.rs narrate: F5-TTS HTTP client + skald narrate CLI 2026-05-13 16:45:04 -07:00
models.rs scaffold v0.1: postgres+pgvector inside-container, schema, markdown ingest, CLI 2026-05-13 09:04:28 -07:00
narrate.rs narrate: body_md_tts column + narrate_prep pass + Kokoro routing 2026-05-13 20:24:38 -07:00