diff --git a/openless-all/app/src-tauri/src/asr/frame.rs b/openless-all/app/src-tauri/src/asr/frame.rs index 8f0825a5..0eeb9d53 100644 --- a/openless-all/app/src-tauri/src/asr/frame.rs +++ b/openless-all/app/src-tauri/src/asr/frame.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! 火山引擎大模型流式 ASR 二进制帧编解码。 //! //! 帧结构通常为:4 字节 header + 可选 sequence + 4 字节大端 payload size + payload。 diff --git a/openless-all/app/src-tauri/src/asr/local/cache.rs b/openless-all/app/src-tauri/src/asr/local/cache.rs index e580801b..7076fd1e 100644 --- a/openless-all/app/src-tauri/src/asr/local/cache.rs +++ b/openless-all/app/src-tauri/src/asr/local/cache.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_imports, unused_variables))] //! 本地 Qwen3-ASR 引擎缓存。 //! //! 用途:避免每次 dictation 都重加载 1.2GB+ 模型。引擎一次 load 后驻留在内存, diff --git a/openless-all/app/src-tauri/src/asr/local/download.rs b/openless-all/app/src-tauri/src/asr/local/download.rs index 0733f9bf..81f4f04d 100644 --- a/openless-all/app/src-tauri/src/asr/local/download.rs +++ b/openless-all/app/src-tauri/src/asr/local/download.rs @@ -566,7 +566,7 @@ pub(crate) async fn download_one( // 1. 计算 chunk 计划 let chunks: Vec<(usize, u64, u64)> = chunk_plan(total_size); - let total_chunks = chunks.len(); + let _total_chunks = chunks.len(); // 2. 读已完成的 chunk 索引 let done_set = read_idx(&idx_path); diff --git a/openless-all/app/src-tauri/src/asr/local/foundry_provider.rs b/openless-all/app/src-tauri/src/asr/local/foundry_provider.rs index 1e2ac7db..c8f26495 100644 --- a/openless-all/app/src-tauri/src/asr/local/foundry_provider.rs +++ b/openless-all/app/src-tauri/src/asr/local/foundry_provider.rs @@ -1,4 +1,4 @@ -#![allow(dead_code)] // Task 6 接入 coordinator 后这些路径会变成运行时路径。 +#![allow(dead_code, unused_variables)] // Task 6 接入 coordinator 后这些路径会变成运行时路径。 #[cfg(target_os = "windows")] use std::fs::{self, OpenOptions}; diff --git a/openless-all/app/src-tauri/src/asr/local/foundry_runtime.rs b/openless-all/app/src-tauri/src/asr/local/foundry_runtime.rs index 2afecd03..75380dfe 100644 --- a/openless-all/app/src-tauri/src/asr/local/foundry_runtime.rs +++ b/openless-all/app/src-tauri/src/asr/local/foundry_runtime.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] #[cfg(target_os = "windows")] #[allow(dead_code)] mod imp { diff --git a/openless-all/app/src-tauri/src/asr/local/sherpa.rs b/openless-all/app/src-tauri/src/asr/local/sherpa.rs index 8354a4fd..ac078dbc 100644 --- a/openless-all/app/src-tauri/src/asr/local/sherpa.rs +++ b/openless-all/app/src-tauri/src/asr/local/sherpa.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] //! Windows sherpa-onnx 本地 ASR 的常量、catalog 与事件载荷。 //! //! 当前 catalog 覆盖 Windows offline batch 模型和实验 online streaming 模型; diff --git a/openless-all/app/src-tauri/src/asr/local/sherpa_download.rs b/openless-all/app/src-tauri/src/asr/local/sherpa_download.rs index ab916dcc..ad8d0a19 100644 --- a/openless-all/app/src-tauri/src/asr/local/sherpa_download.rs +++ b/openless-all/app/src-tauri/src/asr/local/sherpa_download.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] use std::collections::HashMap; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicBool, AtomicU64, Ordering}; diff --git a/openless-all/app/src-tauri/src/asr/local/sherpa_provider.rs b/openless-all/app/src-tauri/src/asr/local/sherpa_provider.rs index 7cd48e21..06016197 100644 --- a/openless-all/app/src-tauri/src/asr/local/sherpa_provider.rs +++ b/openless-all/app/src-tauri/src/asr/local/sherpa_provider.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] //! sherpa-onnx 本地 ASR provider(Windows offline batch + online streaming)。 //! //! 形状与 `foundry_provider.rs` 对齐: diff --git a/openless-all/app/src-tauri/src/asr/local/sherpa_runtime.rs b/openless-all/app/src-tauri/src/asr/local/sherpa_runtime.rs index af24da3d..ec56538c 100644 --- a/openless-all/app/src-tauri/src/asr/local/sherpa_runtime.rs +++ b/openless-all/app/src-tauri/src/asr/local/sherpa_runtime.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] //! sherpa-onnx 本地 ASR runtime(Windows offline batch + online streaming)。 //! //! 设计与 `foundry_runtime.rs` 对齐:runtime 是模型/会话/生命周期的单一持有者, diff --git a/openless-all/app/src-tauri/src/asr/local/test_run.rs b/openless-all/app/src-tauri/src/asr/local/test_run.rs index 07759394..322aa49c 100644 --- a/openless-all/app/src-tauri/src/asr/local/test_run.rs +++ b/openless-all/app/src-tauri/src/asr/local/test_run.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! 本地 Qwen3-ASR 一键"加载 + 测试"实现。 //! //! 流程: @@ -17,7 +18,9 @@ use std::time::Instant; use anyhow::Result; use serde::Serialize; -use super::models::{model_dir, ModelId}; +use super::models::ModelId; +#[cfg(target_os = "macos")] +use super::models::model_dir; /// 内嵌测试音频。原始文件 `vendor/qwen-asr/samples/test_speech.wav` /// 内容:"Hello. This is a test of the Voxtrail speech-to-text system." diff --git a/openless-all/app/src-tauri/src/asr/volcengine.rs b/openless-all/app/src-tauri/src/asr/volcengine.rs index ee8fb609..101cd15a 100644 --- a/openless-all/app/src-tauri/src/asr/volcengine.rs +++ b/openless-all/app/src-tauri/src/asr/volcengine.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! Volcengine SAUC bigmodel streaming ASR client. //! //! Direct port of the Swift `VolcengineStreamingASR`. Battle-tested protocol diff --git a/openless-all/app/src-tauri/src/commands.rs b/openless-all/app/src-tauri/src/commands.rs index a31cbb1d..10deede9 100644 --- a/openless-all/app/src-tauri/src/commands.rs +++ b/openless-all/app/src-tauri/src/commands.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! Tauri command surface — every IPC entry the React UI invokes lives here. use std::sync::Arc; diff --git a/openless-all/app/src-tauri/src/coordinator.rs b/openless-all/app/src-tauri/src/coordinator.rs index b31cd1cf..9a6edb2e 100644 --- a/openless-all/app/src-tauri/src/coordinator.rs +++ b/openless-all/app/src-tauri/src/coordinator.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_imports, unused_variables))] //! Dictation coordinator. //! //! Mirrors the Swift `DictationCoordinator` state machine. Single owner of @@ -5081,6 +5082,8 @@ fn emit_capsule( { return; } + #[cfg(not(target_os = "linux"))] + { // 三平台统一:Done / Cancelled / Error 状态保留 ~1.5s toast // (schedule_capsule_idle 之后会回 Idle 隐藏)。 @@ -5119,6 +5122,7 @@ fn emit_capsule( hide_capsule_window_if_present(); let _ = window.hide(); } + } }); let _ = app.emit_to("capsule", "capsule:state", payload); diff --git a/openless-all/app/src-tauri/src/hotkey.rs b/openless-all/app/src-tauri/src/hotkey.rs index 180d72c7..eaeb675e 100644 --- a/openless-all/app/src-tauri/src/hotkey.rs +++ b/openless-all/app/src-tauri/src/hotkey.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code))] //! 全局热键监听:发送按下 / 抬起 / 取消三类边沿事件。 //! //! - macOS:原生 CGEventTap(core-foundation + core-graphics FFI),与 Swift diff --git a/openless-all/app/src-tauri/src/insertion.rs b/openless-all/app/src-tauri/src/insertion.rs index b5ca39b4..2d8c454b 100644 --- a/openless-all/app/src-tauri/src/insertion.rs +++ b/openless-all/app/src-tauri/src/insertion.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! 跨平台光标位置文本插入。 //! //! 通用步骤:先写剪贴板(模拟失败时用户能手动粘贴)→ 模拟粘贴快捷键。 @@ -57,6 +58,7 @@ impl TextInserter { } } } + #[cfg(not(target_os = "linux"))] insert_with_clipboard_restore(text, restore_clipboard_after_paste, paste_shortcut) } @@ -89,8 +91,8 @@ impl TextInserter { pub fn insert( &self, text: &str, - _restore_clipboard_after_paste: bool, - _paste_shortcut: PasteShortcut, + restore_clipboard_after_paste: bool, + paste_shortcut: PasteShortcut, ) -> InsertStatus { if text.is_empty() { return InsertStatus::CopiedFallback; diff --git a/openless-all/app/src-tauri/src/lib.rs b/openless-all/app/src-tauri/src/lib.rs index bb368eb2..5679745e 100644 --- a/openless-all/app/src-tauri/src/lib.rs +++ b/openless-all/app/src-tauri/src/lib.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_imports, unused_variables))] //! OpenLess Tauri backend. //! //! Modules mirror the original Swift libraries (one purpose per file): diff --git a/openless-all/app/src-tauri/src/linux_fcitx.rs b/openless-all/app/src-tauri/src/linux_fcitx.rs index 2b9b3b9e..b3811c67 100644 --- a/openless-all/app/src-tauri/src/linux_fcitx.rs +++ b/openless-all/app/src-tauri/src/linux_fcitx.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! Linux fcitx5 插件 DBus 客户端。 //! //! 封装对 `org.fcitx.Fcitx.OpenLess1` 接口的调用, diff --git a/openless-all/app/src-tauri/src/permissions.rs b/openless-all/app/src-tauri/src/permissions.rs index 04af3df4..ef1452d4 100644 --- a/openless-all/app/src-tauri/src/permissions.rs +++ b/openless-all/app/src-tauri/src/permissions.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! 系统权限请求 / 检查(macOS / Windows)。 //! //! 与 Swift `Sources/OpenLessHotkey/AccessibilityPermission.swift` + diff --git a/openless-all/app/src-tauri/src/persistence.rs b/openless-all/app/src-tauri/src/persistence.rs index 2e91fcd6..df4ba8eb 100644 --- a/openless-all/app/src-tauri/src/persistence.rs +++ b/openless-all/app/src-tauri/src/persistence.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! Local persistence: history JSON, user preferences JSON, vocab JSON, and //! platform-backed credentials vault. //! diff --git a/openless-all/app/src-tauri/src/polish.rs b/openless-all/app/src-tauri/src/polish.rs index 1b152f90..05c87fa9 100644 --- a/openless-all/app/src-tauri/src/polish.rs +++ b/openless-all/app/src-tauri/src/polish.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! OpenAI-compatible chat completions client + polish prompts. //! //! 提示词在 `prompts` 模块中维护:使用 `# 角色 / # 任务 / # 通用规则 / # 输出 / # 示例` diff --git a/openless-all/app/src-tauri/src/selection.rs b/openless-all/app/src-tauri/src/selection.rs index 53a0b8c7..0c4da6c1 100644 --- a/openless-all/app/src-tauri/src/selection.rs +++ b/openless-all/app/src-tauri/src/selection.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_imports, unused_variables))] //! 跨平台「划词捕获」工具:在用户触发 QA 快捷键时尝试拿到当前前台 app 的选区文本。 //! //! 三级 fallback: diff --git a/openless-all/app/src-tauri/src/types.rs b/openless-all/app/src-tauri/src/types.rs index f64f054e..623eac66 100644 --- a/openless-all/app/src-tauri/src/types.rs +++ b/openless-all/app/src-tauri/src/types.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! Shared value types crossing the IPC boundary. use serde::{Deserialize, Serialize}; diff --git a/openless-all/app/src-tauri/src/unicode_keystroke.rs b/openless-all/app/src-tauri/src/unicode_keystroke.rs index 849d3f92..d22fd00f 100644 --- a/openless-all/app/src-tauri/src/unicode_keystroke.rs +++ b/openless-all/app/src-tauri/src/unicode_keystroke.rs @@ -1,3 +1,4 @@ +#![cfg_attr(target_os = "linux", allow(dead_code, unused_variables))] //! 跨平台 Unicode keystroke 合成(流式输入用)。 //! //! 公开 API 三件套: diff --git a/openless-all/app/src-tauri/src/windows_ime_ipc.rs b/openless-all/app/src-tauri/src/windows_ime_ipc.rs index 69555b04..921b1560 100644 --- a/openless-all/app/src-tauri/src/windows_ime_ipc.rs +++ b/openless-all/app/src-tauri/src/windows_ime_ipc.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] use std::time::Duration; use crate::windows_ime_protocol::ImeSubmitStatus; diff --git a/openless-all/app/src-tauri/src/windows_ime_profile.rs b/openless-all/app/src-tauri/src/windows_ime_profile.rs index f7f08bf2..8ec380f2 100644 --- a/openless-all/app/src-tauri/src/windows_ime_profile.rs +++ b/openless-all/app/src-tauri/src/windows_ime_profile.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] pub const OPENLESS_TSF_LANG_ID: u16 = 0x0804; pub const OPENLESS_TEXT_SERVICE_CLSID_BRACED: &str = "{6B9F3F4F-5EE7-42D6-9C61-9F80B03A5D7D}"; pub const OPENLESS_PROFILE_GUID_BRACED: &str = "{9B5F5E04-23F6-47DA-9A26-D221F6C3F02E}"; diff --git a/openless-all/app/src-tauri/src/windows_ime_protocol.rs b/openless-all/app/src-tauri/src/windows_ime_protocol.rs index be9a8786..15c8f397 100644 --- a/openless-all/app/src-tauri/src/windows_ime_protocol.rs +++ b/openless-all/app/src-tauri/src/windows_ime_protocol.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] use serde::{Deserialize, Serialize}; pub const OPENLESS_IME_PROTOCOL_VERSION: u32 = 1; diff --git a/openless-all/app/src-tauri/src/windows_ime_session.rs b/openless-all/app/src-tauri/src/windows_ime_session.rs index 8c82798a..e3aa6412 100644 --- a/openless-all/app/src-tauri/src/windows_ime_session.rs +++ b/openless-all/app/src-tauri/src/windows_ime_session.rs @@ -1,3 +1,4 @@ +#![allow(dead_code, unused_imports, unused_variables)] use crate::types::InsertStatus; use crate::windows_ime_ipc::{ImeSubmitRequest, WindowsImeIpcServer}; use crate::windows_ime_profile::{