Skip to content

Commit 87becea

Browse files
authored
Merge pull request #23 from joe223/dev
Dev
2 parents 6a1a82c + 72a9f22 commit 87becea

76 files changed

Lines changed: 786 additions & 228 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,14 @@
22

33
All notable changes to the desktop application will be documented in this file.
44

5-
## Unreleased
5+
## v0.6.4 (2026-06-02)
6+
7+
### Bug Fixes
8+
9+
- Make Windows shortcuts usable across platforms (4b238f4)
10+
- Keep tray window reachable from dock (b53ced4)
11+
12+
## v0.6.3 (2026-05-25)
613

714
### Features
815

apps/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ariatype/desktop",
3-
"version": "0.6.3",
3+
"version": "0.6.4",
44
"license": "AGPL-3.0-only",
55
"description": "AriaType Desktop Application",
66
"type": "module",

apps/desktop/src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/desktop/src-tauri/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ariatype"
3-
version = "0.6.3"
3+
version = "0.6.4"
44
description = "AriaType - Voice to Text Application"
55
authors = ["AriaType Team"]
66
edition = "2021"
@@ -79,7 +79,7 @@ objc2-core-graphics = "0.3"
7979

8080
[target.'cfg(target_os = "windows")'.dependencies]
8181
enigo = { version = "0.6", default-features = false }
82-
winapi = { version = "0.3", features = ["winuser", "libloaderapi", "processthreadsapi"] }
82+
winapi = { version = "0.3", features = ["winuser", "libloaderapi", "processthreadsapi", "errhandlingapi"] }
8383
uiautomation = { version = "0.25", default-features = false, features = ["input", "pattern"] }
8484

8585
[target.'cfg(target_os = "linux")'.dependencies]
Binary file not shown.

apps/desktop/src-tauri/gen/schemas/acl-manifests.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"default":{"identifier":"default","description":"Default capability for AriaType","local":true,"windows":["main","pill","toast"],"permissions":["core:default","core:webview:allow-create-webview-window","core:window:default","core:window:allow-create","core:window:allow-close","core:window:allow-show","core:window:allow-hide","core:window:allow-minimize","core:window:allow-maximize","core:window:allow-toggle-maximize","core:window:allow-set-focus","core:window:allow-set-position","core:window:allow-set-size","core:window:allow-set-always-on-top","core:window:allow-set-decorations","core:window:allow-set-skip-taskbar","core:window:allow-start-dragging","core:window:allow-center","core:event:default","core:event:allow-emit","core:event:allow-emit-to","core:event:allow-listen","core:event:allow-unlisten","store:default","store:allow-get","store:allow-set","store:allow-save","store:allow-load","clipboard-manager:default","clipboard-manager:allow-read-text","clipboard-manager:allow-write-text","shell:default","shell:allow-open","process:default","process:allow-restart","aptabase:allow-track-event"]},"e2e":{"identifier":"e2e","description":"E2E testing capability (playwright plugin)","local":true,"windows":["main","pill","toast"],"permissions":["playwright:default"]}}
1+
{"default":{"identifier":"default","description":"Default capability for AriaType","local":true,"windows":["main","pill","toast"],"permissions":["core:default","core:webview:allow-create-webview-window","core:window:default","core:window:allow-create","core:window:allow-close","core:window:allow-show","core:window:allow-hide","core:window:allow-minimize","core:window:allow-maximize","core:window:allow-toggle-maximize","core:window:allow-set-focus","core:window:allow-set-position","core:window:allow-set-size","core:window:allow-set-always-on-top","core:window:allow-set-decorations","core:window:allow-set-skip-taskbar","core:window:allow-start-dragging","core:window:allow-center","core:event:default","core:event:allow-emit","core:event:allow-emit-to","core:event:allow-listen","core:event:allow-unlisten","store:default","store:allow-get","store:allow-set","store:allow-save","store:allow-load","clipboard-manager:default","clipboard-manager:allow-read-text","clipboard-manager:allow-write-text","shell:default","shell:allow-open","process:default","process:allow-restart","aptabase:allow-track-event"]}}

apps/desktop/src-tauri/gen/schemas/desktop-schema.json

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2444,24 +2444,6 @@
24442444
"const": "core:window:deny-unminimize",
24452445
"markdownDescription": "Denies the unminimize command without any pre-configured scope."
24462446
},
2447-
{
2448-
"description": "Default permissions for the Playwright testing plugin\n#### This default permission set includes:\n\n- `allow-pw-result`",
2449-
"type": "string",
2450-
"const": "playwright:default",
2451-
"markdownDescription": "Default permissions for the Playwright testing plugin\n#### This default permission set includes:\n\n- `allow-pw-result`"
2452-
},
2453-
{
2454-
"description": "Enables the pw_result command without any pre-configured scope.",
2455-
"type": "string",
2456-
"const": "playwright:allow-pw-result",
2457-
"markdownDescription": "Enables the pw_result command without any pre-configured scope."
2458-
},
2459-
{
2460-
"description": "Denies the pw_result command without any pre-configured scope.",
2461-
"type": "string",
2462-
"const": "playwright:deny-pw-result",
2463-
"markdownDescription": "Denies the pw_result command without any pre-configured scope."
2464-
},
24652447
{
24662448
"description": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`",
24672449
"type": "string",

apps/desktop/src-tauri/gen/schemas/macOS-schema.json

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2444,24 +2444,6 @@
24442444
"const": "core:window:deny-unminimize",
24452445
"markdownDescription": "Denies the unminimize command without any pre-configured scope."
24462446
},
2447-
{
2448-
"description": "Default permissions for the Playwright testing plugin\n#### This default permission set includes:\n\n- `allow-pw-result`",
2449-
"type": "string",
2450-
"const": "playwright:default",
2451-
"markdownDescription": "Default permissions for the Playwright testing plugin\n#### This default permission set includes:\n\n- `allow-pw-result`"
2452-
},
2453-
{
2454-
"description": "Enables the pw_result command without any pre-configured scope.",
2455-
"type": "string",
2456-
"const": "playwright:allow-pw-result",
2457-
"markdownDescription": "Enables the pw_result command without any pre-configured scope."
2458-
},
2459-
{
2460-
"description": "Denies the pw_result command without any pre-configured scope.",
2461-
"type": "string",
2462-
"const": "playwright:deny-pw-result",
2463-
"markdownDescription": "Denies the pw_result command without any pre-configured scope."
2464-
},
24652447
{
24662448
"description": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`",
24672449
"type": "string",

apps/desktop/src-tauri/src/commands/model.rs

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,39 @@ use std::time::Instant;
1111
use tauri::{AppHandle, Emitter, State};
1212
use tracing::{error, info, instrument, warn};
1313

14+
#[cfg(feature = "e2e-testing")]
15+
fn e2e_fast_model_download_enabled() -> bool {
16+
std::env::var("ARIATYPE_E2E_FAST_MODEL_DOWNLOAD").as_deref() == Ok("1")
17+
}
18+
19+
#[cfg(not(feature = "e2e-testing"))]
20+
fn e2e_fast_model_download_enabled() -> bool {
21+
false
22+
}
23+
24+
fn mark_e2e_configured_model_downloaded(models: &mut [ModelInfo], state: &State<'_, AppState>) {
25+
if !e2e_fast_model_download_enabled() {
26+
return;
27+
}
28+
29+
let configured_model = {
30+
let settings = state.settings.lock();
31+
settings.model.clone()
32+
};
33+
34+
for model in models {
35+
if model.name == configured_model {
36+
model.downloaded = true;
37+
}
38+
}
39+
}
40+
1441
// Legacy command for backward compatibility - returns all engines
1542
#[tauri::command]
1643
pub fn get_models(state: State<'_, AppState>) -> Vec<ModelInfo> {
17-
state.engine_manager.get_all_models()
44+
let mut models = state.engine_manager.get_all_models();
45+
mark_e2e_configured_model_downloaded(&mut models, &state);
46+
models
1847
}
1948

2049
// New command supporting multiple engines
@@ -24,12 +53,18 @@ pub fn get_models_for_engine(
2453
state: State<'_, AppState>,
2554
) -> Result<Vec<ModelInfo>, String> {
2655
let engine_type: EngineType = engine.parse()?;
27-
Ok(state.engine_manager.get_models(engine_type))
56+
let mut models = state.engine_manager.get_models(engine_type);
57+
mark_e2e_configured_model_downloaded(&mut models, &state);
58+
Ok(models)
2859
}
2960

3061
// Legacy command for backward compatibility (Whisper only)
3162
#[tauri::command]
3263
pub fn is_model_downloaded(model_name: String, state: State<'_, AppState>) -> bool {
64+
if e2e_fast_model_download_enabled() {
65+
return true;
66+
}
67+
3368
let engine_type =
3469
crate::stt_engine::UnifiedEngineManager::get_engine_by_model_name(&model_name)
3570
.unwrap_or(EngineType::Whisper); // fallback to Whisper if unknown
@@ -46,6 +81,10 @@ pub fn is_model_downloaded_for_engine(
4681
model_name: String,
4782
state: State<'_, AppState>,
4883
) -> Result<bool, String> {
84+
if e2e_fast_model_download_enabled() {
85+
return Ok(true);
86+
}
87+
4988
let engine_type: EngineType = engine.parse()?;
5089
Ok(state
5190
.engine_manager
@@ -90,6 +129,28 @@ pub async fn download_model(
90129
crate::stt_engine::UnifiedEngineManager::get_engine_by_model_name(&model_name)
91130
.ok_or_else(|| format!("Unknown model: {}", model_name))?;
92131

132+
if e2e_fast_model_download_enabled() {
133+
info!(
134+
model = %model_name,
135+
engine = ?engine_type,
136+
"model_download_ready-e2e_fast_path"
137+
);
138+
139+
if let Err(e) = app.emit(
140+
EventName::MODEL_DOWNLOAD_PROGRESS,
141+
serde_json::json!({
142+
"model": model_name,
143+
"downloaded": 1,
144+
"total": 1,
145+
"progress": 100,
146+
}),
147+
) {
148+
warn!(error = %e, model = %model_name, "model_download_progress_emit_failed-e2e_fast_path");
149+
}
150+
151+
return Ok(());
152+
}
153+
93154
let cancel_flag = {
94155
let mut downloading = state.downloading_models.lock();
95156
if downloading.contains(&model_name) {

0 commit comments

Comments
 (0)