BackendConfigScreen missing LOCAL_WHISPER card — only 3 of 4 backends render despite source defining 4 in priorityOrder default #144
Labels
No labels
blocked:children
blocked:needs-decision
blocked:needs-human
blocked:verify-failed
bug
deferred
enhancement
feature-request
in-progress
needs-decompose
needs-triage
quickfix
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/transcriber#144
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug
The Backend Configuration screen (
Manage → Backend Configuration) is missing the LOCAL_WHISPER card from the backend priority list. Only 3 backends render: Android SpeechRecognizer, FireOS Voice Service, Cloud API. LOCAL_WHISPER does not appear.Reproduced
com.voicetranscriberv1.0 from93b7fd1pm clear com.voicetranscriber(verified default-config state): still 3 cards, no LOCAL_WHISPERSource code expectation
app/src/main/java/com/voicetranscriber/service/SpeechBackend.kt:62-67defines the defaultpriorityOrderas 4 entries:BackendConfig.load()at line 138-162 returns either the saved order or the default. Afterpm clear, the prefs are empty soorderis empty andload()returnsBackendConfig(settings = settings)— which uses the data class default of all 4. The screen should render 4 cards.Models screen proves the type exists
The Models screen (
Manage → Models) does correctly list Whisper models for download (Tiny, Tiny (English), Base) and renders an "Active model: No model installed" empty state. The LOCAL_WHISPER backend type is fully wired in code:SpeechBackend.kt:20—LOCAL_WHISPER("local_whisper")enum entryTranscriptionService.kt:343— handlerBackendConfigScreen.kt:546— display name "Local Whisper"BackendConfigScreen.kt:553— description "On-device whisper.cpp model"But none of these reach the priority list UI.
Impact
Suspected cause
Either (a) bytecode in the installed APK differs from the source tree (the source HAS 4 backends but the compiled APK has 3), or (b) the
itemsIndexed(priorityOrder, key = { _, backend -> backend })in BackendConfigScreen.kt:194 is dropping LOCAL_WHISPER at runtime, or (c) the encrypted prefs on this device had a saved order from a prior install that excluded LOCAL_WHISPER — but this was not reproducible afterpm clear, so (c) is ruled out.Suggested fix
BackendConfig.default.priorityOrder.size == 4AND that the screen renders 4 cards.Reported by Hermes on 2026-09-10 during smoke testing of v1.0 (build from
93b7fd1) on Fire HD KFTRWI.Fix landed in
f2d2ff6(fix(service): render all 4 backend cards on BackendConfigScreen (closes #144)), merged viad34cbf3.Push recovered by watcher after kilo-gsd exited PARTIAL (non-fast-forward against remote tip
6e8e6a4from #143). Merge of origin/main into local carried the #144 fix forward; push completed.Refs: #143