Compare commits

...

3 Commits

Author SHA1 Message Date
Gitea Actions
e90d154b83 chore: bump sidecar version to 1.0.13 [skip ci] 2026-04-11 03:09:45 +00:00
Developer
fa749b571d Fix cloud-only detection: check for cloud device presence, not exclusivity
All checks were successful
Tests / Python Backend Tests (push) Successful in 5s
Tests / Frontend Tests (push) Successful in 8s
Tests / Rust Sidecar Tests (push) Successful in 2m3s
The compute-devices endpoint always includes "auto" alongside "cloud",
so checking every() never matched. Use some() to detect cloud sidecar.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 20:06:50 -07:00
Developer
ef188e1f67 Fix managed mode WebSocket URL when server_url uses https://
All checks were successful
Tests / Python Backend Tests (push) Successful in 5s
Tests / Frontend Tests (push) Successful in 7s
Tests / Rust Sidecar Tests (push) Successful in 2m21s
The URL builder was prepending wss:// to the full https:// URL, producing
an invalid wss://https://... URL. Now properly converts https→wss and
http→ws before appending the /ws/transcribe path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 20:03:58 -07:00
3 changed files with 8 additions and 4 deletions

View File

@@ -320,9 +320,13 @@ class DeepgramTranscriptionEngine:
def _build_ws_url_and_headers(self):
"""Return ``(url, headers)`` depending on the current mode."""
if self.mode == "managed":
# Ensure the server URL uses wss:// and append the path
# Convert HTTP(S) URLs to WS(S) for WebSocket connection
url = self.server_url.rstrip("/")
if not url.startswith("ws://") and not url.startswith("wss://"):
if url.startswith("https://"):
url = "wss://" + url[len("https://"):]
elif url.startswith("http://"):
url = "ws://" + url[len("http://"):]
elif not url.startswith("ws://") and not url.startswith("wss://"):
url = f"wss://{url}"
url = f"{url}/ws/transcribe"
return url, {}

View File

@@ -1,6 +1,6 @@
[project]
name = "local-transcription"
version = "1.0.12"
version = "1.0.13"
description = "A standalone desktop application for real-time speech-to-text transcription using Whisper models"
readme = "README.md"
requires-python = ">=3.9"

View File

@@ -48,7 +48,7 @@
let isCloudMode = $derived(remoteMode === "managed" || remoteMode === "byok");
let isCloudOnly = $derived(
computeDevices.length > 0 && computeDevices.every(d => d.id === "cloud")
computeDevices.some(d => d.id === "cloud")
);
// Room creation / join state