Skip to content

Latest commit

 

History

History
40 lines (30 loc) · 1.36 KB

ai-timestamp-strings.md

File metadata and controls

40 lines (30 loc) · 1.36 KB

Milestone: leftover AI / timestamps / TTS language keys must be strings

Status: Shipped
PR: #105
Depends on: milestones/image-generation-strings.md (PR #104), milestones/tts-empty-audio.md (PR #99), milestones/multi-host-ai-hardening.md

Problem

tts.model / image_generation.model are already strings at config load. These sibling keys were not:

  1. ai.provider / base_url / api_key_env — a YAML list was str()’d ("['openai']") into normalize_provider.
  2. timestamps.engine — a list became "['local']", then resolve_engine raised unknown-engine only when timestamps ran.
  3. tts.language — a list was str()’d into xAI TTS/STT language.

Goal

Fail closed at Config.from_yaml. Missing keys still use defaults (ai.provider openai, timestamps.engine local, Grok language en).

Done when

  • Present ai.provider / base_url / api_key_env must be non-empty YAML strings.
  • Present timestamps.engine must be a non-empty YAML string.
  • Present tts.language must be a non-empty YAML string.
  • Tests for list values of those keys.
  • ruff check src/ tests/
  • pytest tests/
  • docgen benchmark (no clock change)

Out of scope

  • Unknown timestamps.engine values still fail at resolve_engine.
  • manim.font / manim.quality string typing is separate.