Architectural Shifts
The big 2.0 changes are structural. Here's what moved and why each shift matters.
At a glance
- One-shot subprocess → managed TTS Server.
- Worker loop → orchestrator.
- Engine-ID branches → plugin manifests.
- Raw-file checks → validated artifacts.
From one-shot subprocess to a managed TTS Server
Synthesis runs in a long-lived, supervised process with a watchdog, instead of being spun up ad hoc. Engines can crash and restart without losing app state.
From a worker loop to an orchestrator
Scheduling, progress, and recovery are centralized. The orchestrator owns the queue and reconciliation rather than a single loop doing everything.
From engine-ID branches to plugin manifests
Behavior is declared, not hard-coded. What an engine supports comes from its manifest, so adding an engine doesn't mean adding special cases across the app.
From raw-file checks to validated artifacts
Completion is judged by validated artifact metadata. A file existing is no longer mistaken for finished work. See Artifacts, Reuse & Recovery.