Compare commits
5 Commits
sidecar-v1
...
v2.0.7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b7387f9c6 | ||
|
|
293362baa1 | ||
|
|
41f50dedec | ||
|
|
d8b7811153 | ||
|
|
ec8922672c |
@@ -106,6 +106,12 @@ class AppController:
|
|||||||
DeviceManager = None
|
DeviceManager = None
|
||||||
|
|
||||||
self.device_manager = DeviceManager() if DeviceManager else 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
|
# State
|
||||||
self._state = AppState.INITIALIZING
|
self._state = AppState.INITIALIZING
|
||||||
@@ -300,8 +306,17 @@ class AppController:
|
|||||||
# Lazy-import heavy local transcription dependencies
|
# Lazy-import heavy local transcription dependencies
|
||||||
global RealtimeTranscriptionEngine
|
global RealtimeTranscriptionEngine
|
||||||
if RealtimeTranscriptionEngine is None:
|
if RealtimeTranscriptionEngine is None:
|
||||||
from client.transcription_engine_realtime import RealtimeTranscriptionEngine as _RTE
|
try:
|
||||||
RealtimeTranscriptionEngine = _RTE
|
from client.transcription_engine_realtime import RealtimeTranscriptionEngine as _RTE
|
||||||
|
RealtimeTranscriptionEngine = _RTE
|
||||||
|
except ImportError:
|
||||||
|
# Cloud-only sidecar -- local engine not available
|
||||||
|
self._set_state(
|
||||||
|
AppState.ERROR,
|
||||||
|
"Local transcription not available in this build. "
|
||||||
|
"Please switch to Cloud (Deepgram) mode in Settings."
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
if self.device_manager:
|
if self.device_manager:
|
||||||
self.device_manager.set_device(device_config)
|
self.device_manager.set_device(device_config)
|
||||||
@@ -358,7 +373,15 @@ class AppController:
|
|||||||
|
|
||||||
self._set_state(AppState.READY, f"Ready | Device: {device_display}")
|
self._set_state(AppState.READY, f"Ready | Device: {device_display}")
|
||||||
else:
|
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 ──────────────────────────────────────
|
# ── Transcription Control ──────────────────────────────────────
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "local-transcription",
|
"name": "local-transcription",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2.0.6",
|
"version": "2.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "local-transcription"
|
name = "local-transcription"
|
||||||
version = "2.0.6"
|
version = "2.0.7"
|
||||||
description = "Real-time speech-to-text transcription for streamers"
|
description = "Real-time speech-to-text transcription for streamers"
|
||||||
authors = ["Local Transcription Contributors"]
|
authors = ["Local Transcription Contributors"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"productName": "Local Transcription",
|
"productName": "Local Transcription",
|
||||||
"version": "2.0.6",
|
"version": "2.0.7",
|
||||||
"identifier": "net.anhonesthost.local-transcription",
|
"identifier": "net.anhonesthost.local-transcription",
|
||||||
"build": {
|
"build": {
|
||||||
"frontendDist": "../dist",
|
"frontendDist": "../dist",
|
||||||
|
|||||||
@@ -17,6 +17,9 @@
|
|||||||
} else {
|
} else {
|
||||||
await backendStore.apiPost("/api/start");
|
await backendStore.apiPost("/api/start");
|
||||||
}
|
}
|
||||||
|
// Poll status to update UI immediately instead of waiting
|
||||||
|
// for WebSocket broadcast (which can be delayed or missed)
|
||||||
|
await backendStore.pollStatus();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Failed to toggle transcription:", err);
|
console.error("Failed to toggle transcription:", err);
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -36,11 +36,12 @@
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// Listen for progress events from the Tauri backend
|
// Listen for progress events from the Tauri backend
|
||||||
unlisten = await listen<{ progress: number; message: string }>(
|
unlisten = await listen<{ downloaded: number; total: number; phase: string; message: string }>(
|
||||||
"sidecar-download-progress",
|
"sidecar-download-progress",
|
||||||
(event) => {
|
(event) => {
|
||||||
progress = event.payload.progress;
|
const { downloaded, total, message } = event.payload;
|
||||||
progressMessage = event.payload.message;
|
progress = total > 0 ? (downloaded / total) * 100 : 0;
|
||||||
|
progressMessage = message;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -302,6 +302,7 @@ export const backendStore = {
|
|||||||
setPort,
|
setPort,
|
||||||
connect: connectWebSocket,
|
connect: connectWebSocket,
|
||||||
disconnect,
|
disconnect,
|
||||||
|
pollStatus,
|
||||||
apiUrl,
|
apiUrl,
|
||||||
apiFetch,
|
apiFetch,
|
||||||
apiGet,
|
apiGet,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""Version information for Local Transcription."""
|
"""Version information for Local Transcription."""
|
||||||
|
|
||||||
__version__ = "2.0.6"
|
__version__ = "2.0.7"
|
||||||
__version_info__ = (2, 0, 6)
|
__version_info__ = (2, 0, 7)
|
||||||
|
|
||||||
# Version history:
|
# Version history:
|
||||||
# 1.4.0 - Auto-update feature:
|
# 1.4.0 - Auto-update feature:
|
||||||
|
|||||||
Reference in New Issue
Block a user