Compare commits

...

3 Commits

Author SHA1 Message Date
Gitea Actions
ad89735822 chore: bump version to 2.0.17 [skip ci] 2026-04-11 02:27:20 +00:00
Developer
f0b5890eba Hide Local (Whisper) mode option when using cloud-only sidecar
All checks were successful
Tests / Python Backend Tests (push) Successful in 6s
Tests / Frontend Tests (push) Successful in 7s
Tests / Rust Sidecar Tests (push) Successful in 2m3s
- Expose is_cloud_only flag in /api/status response
- Add isCloudOnly to backend store state
- Conditionally hide Local (Whisper) radio button in Settings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 19:24:01 -07:00
Developer
8df1ab9817 Remove macOS signing config until Apple Developer verification completes
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 2m0s
hardenedRuntime triggers code signing which fails without a valid certificate.
Entitlements.plist and Info.plist remain for when signing is re-enabled.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 19:21:20 -07:00
7 changed files with 16 additions and 9 deletions

View File

@@ -682,6 +682,7 @@ class AppController:
"transcription_count": len(self.transcriptions), "transcription_count": len(self.transcriptions),
"remote_mode": remote_mode, "remote_mode": remote_mode,
"server_sync_enabled": self.config.get('server_sync.enabled', False), "server_sync_enabled": self.config.get('server_sync.enabled', False),
"is_cloud_only": self.is_cloud_only,
} }
def get_audio_devices(self) -> list[dict]: def get_audio_devices(self) -> list[dict]:

View File

@@ -1,7 +1,7 @@
{ {
"name": "local-transcription", "name": "local-transcription",
"private": true, "private": true,
"version": "2.0.16", "version": "2.0.17",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite dev", "dev": "vite dev",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "local-transcription" name = "local-transcription"
version = "2.0.16" version = "2.0.17"
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"

View File

@@ -1,6 +1,6 @@
{ {
"productName": "Local Transcription", "productName": "Local Transcription",
"version": "2.0.16", "version": "2.0.17",
"identifier": "net.anhonesthost.local-transcription", "identifier": "net.anhonesthost.local-transcription",
"build": { "build": {
"frontendDist": "../dist", "frontendDist": "../dist",
@@ -34,10 +34,6 @@
"icons/icon.ico", "icons/icon.ico",
"icons/icon.png" "icons/icon.png"
], ],
"macOS": {
"entitlements": "Entitlements.plist",
"hardenedRuntime": true
},
"windows": { "windows": {
"digestAlgorithm": "sha256" "digestAlgorithm": "sha256"
} }

View File

@@ -453,6 +453,7 @@
/> />
Managed Service Managed Service
</label> </label>
{#if !backendStore.isCloudOnly}
<label> <label>
<input <input
type="radio" type="radio"
@@ -462,6 +463,7 @@
/> />
Local (Whisper) Local (Whisper)
</label> </label>
{/if}
</div> </div>
{#if remoteMode === "byok"} {#if remoteMode === "byok"}
<div class="field"> <div class="field">

View File

@@ -19,6 +19,7 @@ interface BackendState {
wsConnection: WebSocket | null; wsConnection: WebSocket | null;
version: string; version: string;
lastError: string; lastError: string;
isCloudOnly: boolean;
} }
let state = $state<BackendState>({ let state = $state<BackendState>({
@@ -30,6 +31,7 @@ let state = $state<BackendState>({
wsConnection: null, wsConnection: null,
version: "1.4.0", version: "1.4.0",
lastError: "", lastError: "",
isCloudOnly: false,
}); });
let reconnectTimer: ReturnType<typeof setTimeout> | null = null; let reconnectTimer: ReturnType<typeof setTimeout> | null = null;
@@ -72,6 +74,9 @@ async function pollStatus() {
if (data.version) { if (data.version) {
state.version = data.version; state.version = data.version;
} }
if (data.is_cloud_only !== undefined) {
state.isCloudOnly = data.is_cloud_only;
}
} }
} catch { } catch {
// API not ready yet, will retry // API not ready yet, will retry
@@ -285,6 +290,9 @@ export const backendStore = {
get lastError() { get lastError() {
return state.lastError; return state.lastError;
}, },
get isCloudOnly() {
return state.isCloudOnly;
},
get apiBaseUrl() { get apiBaseUrl() {
return `http://localhost:${state.port}`; return `http://localhost:${state.port}`;
}, },

View File

@@ -1,7 +1,7 @@
"""Version information for Local Transcription.""" """Version information for Local Transcription."""
__version__ = "2.0.16" __version__ = "2.0.17"
__version_info__ = (2, 0, 16) __version_info__ = (2, 0, 17)
# Version history: # Version history:
# 1.4.0 - Auto-update feature: # 1.4.0 - Auto-update feature: