Skip to content

[Latent Audit] P2 · Medium · Engine decision record falsely claims new engines are backend-local #60

Description

@latent-variable

Severity: Medium · stale_docs · confidence high
Location: docs/MODELS.md:50

Impact: Engine work is mis-scoped: the document says adding an engine requires only backend code, a downloader entry, and a selector entry, but current Swift code hardcodes Pocket/Kokoro voice routing and persisted engine handling.

Evidence: The document was last changed on 2026-08-22 and states that the app needs no change beyond the picker. Current code hardcodes engine-specific behavior in AppState.activeVoice and selectVoice (AppState.swift lines 57-82), and Prefs.engine documents only kokoro and pocket (Prefs.swift lines 82-84).

Recommendation: Rewrite the inaccurate future-engine paragraph in docs/MODELS.md to document the required Swift engine-routing, voice-selection, and persisted-preference changes, while preserving the decision rationale.

Cross-validated by: codex — The decision record says, “Adding one is backend-local” and that the app needs “no change beyond the picker.” That is contradicted by AppState.activeVoice and selectVoice, which branch explicitly on "pocket" versus Kokoro, and by Prefs.engine, which persists only "kokoro" | "pocket"; adding another engine requires Swift routing and persistence changes. The document is a load-bearing decision record, so rewrite the inaccurate extension-point paragraph rather than delete the record.

Filed automatically by latent-git-agents (auditor, agent: codex). Dedupe token: latent-audit-fp-376b934c14705167

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Scheduled, not urgentcleanupRemovable code: dead paths, unused deps, tests that cannot fail

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions