Technical decisions about algorithms, architecture, data and execution, checked against documentation and commit history.
2026-08-18 · 122de1e32c · Documented change
Recognition speed did not justify lost accuracy
- Before
- The decision log records a trial of tiny/base recognition models to reduce latency.
- After
- The selectable recognition models are small and medium.
Faster recognition did not compensate for the accuracy loss recorded during the trial.
2026-08-18 · 122de1e32c · Documented change
Pitch presets did not make distinct character voices
- Before
- Pitch/rate transforms were offered as named character presets.
- After
- Those presets were removed in favour of a catalogue of actual synthesized voices.
Changing pitch and rate did not produce distinct character identities; actual voice models became the selection unit.
2026-08-18 · 122de1e32c · Documented change
Settings resets must not destroy credentials
- Before
- API credentials lived in settings state, and tests could touch the real user data directory.
- After
- A separate SQLite key registry and forced test data-directory isolation separate those lifetimes.
Credentials and disposable settings/test state need different lifetimes and storage boundaries.
2026-08-18 · 122de1e32c · Documented change
Interruptible playback replaced fragile completion polling
- Before
- A convenience playback call was polled through its stream status.
- After
- The application writes short chunks to an output stream and can abort playback on interruption.
Completion polling could fail on some devices. Chunked playback gives the loop an explicit abort path.