diff --git a/backend/app_controller.py b/backend/app_controller.py index 84ee02f..d45d1bc 100644 --- a/backend/app_controller.py +++ b/backend/app_controller.py @@ -106,6 +106,12 @@ class AppController: DeviceManager = None self.device_manager = DeviceManager() if DeviceManager else None + self.is_cloud_only = DeviceManager is None + + # If this is the cloud-only sidecar and mode is still "local", + # auto-switch to "byok" so the engine doesn't try to load Whisper. + if self.is_cloud_only and self.config.get('remote.mode', 'local') == 'local': + self.config.set('remote.mode', 'byok') # State self._state = AppState.INITIALIZING @@ -367,7 +373,15 @@ class AppController: self._set_state(AppState.READY, f"Ready | Device: {device_display}") else: - self._set_state(AppState.ERROR, message) + # Cloud sidecar with no API key -- show helpful setup message + # instead of a scary error. The user needs to enter their key. + if self.is_cloud_only: + self._set_state( + AppState.READY, + "Setup needed: Open Settings > Remote Transcription > enter your Deepgram API key" + ) + else: + self._set_state(AppState.ERROR, message) # ── Transcription Control ──────────────────────────────────────