Skip to content

Show loading spinner while model initializes#116

Open
rakendd wants to merge 1 commit intoStarmel:masterfrom
rakendd:fix/show-spinner-during-model-loading
Open

Show loading spinner while model initializes#116
rakendd wants to merge 1 commit intoStarmel:masterfrom
rakendd:fix/show-spinner-during-model-loading

Conversation

@rakendd
Copy link
Copy Markdown

@rakendd rakendd commented Mar 4, 2026

Summary

  • The record button is silently disabled while the Whisper model loads (isLoading=true), but shows no visual feedback — it looks like a normal clickable button
  • This causes confusion for users, especially with larger models like large-v3-turbo (1.5GB) which take ~30 seconds to load
  • Fix: add viewModel.transcriptionService.isLoading to the spinner condition so the loading indicator is shown during model initialization

Change

One-line change in ContentView.swift:

// Before:
if viewModel.state == .decoding || viewModel.state == .connecting {

// After:
if viewModel.state == .decoding || viewModel.state == .connecting || viewModel.transcriptionService.isLoading {

Test plan

  • Launch app with a large model (e.g., large-v3-turbo)
  • Verify spinner appears on the record button while model loads
  • Verify spinner disappears and button becomes clickable once model is ready
  • Verify normal recording/transcription flow still works

The record button was silently disabled during model loading
(isLoading=true) with no visual feedback, making it appear broken.
This adds the isLoading state to the spinner condition so users
can see the model is still initializing.
@Starmel
Copy link
Copy Markdown
Owner

Starmel commented Mar 5, 2026

The app displays a model loading indicator. What is the purpose of the progress bar on the button, which is blocked during loading and while the loading indicator is already displayed on the screen?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants