收口桌面壳托盘注册诊断日志
桌面托盘注册失败日志改为固定标签 桌面壳配置检查拒绝托盘注册错误详情回退 同步宿主壳方案和共享决策记录
This commit is contained in:
@@ -3423,6 +3423,10 @@ if (
|
||||
throw new Error('desktop deep-link diagnostics must not log plugin error details');
|
||||
}
|
||||
|
||||
if (app.includes('desktop tray registration failed: {error}')) {
|
||||
throw new Error('desktop tray registration diagnostics must not log Tauri error details');
|
||||
}
|
||||
|
||||
if (
|
||||
desktopShellLifecycleSource.includes(
|
||||
'desktop host event failed for app.lifecycle.{label}: {error}',
|
||||
|
||||
@@ -67,8 +67,8 @@ pub(crate) fn run() {
|
||||
register_desktop_app_menu(app)?;
|
||||
let tray_registered = match register_desktop_tray(app) {
|
||||
Ok(()) => true,
|
||||
Err(error) => {
|
||||
eprintln!("desktop tray registration failed: {error}");
|
||||
Err(_error) => {
|
||||
eprintln!("desktop tray registration failed");
|
||||
false
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2942,6 +2942,7 @@
|
||||
|
||||
- 背景:桌面壳应用菜单、托盘菜单和单实例唤醒是生产用户恢复、刷新和导航主窗口的宿主入口;如果这些动作失败仍被 `let _ = ...` 静默忽略,用户会看到菜单、托盘或二次启动无反应且无法排查。
|
||||
- 决策:应用菜单显示、后退、前进、刷新主窗口,托盘显示、刷新主窗口,以及单实例唤醒主窗口动作失败必须走统一桌面宿主事件日志;配置检查拒绝这些入口继续对主窗口动作使用 `let _ = ...` 静默吞错。
|
||||
- 2026-06-21 调整:托盘注册失败日志只记录 `desktop tray registration failed` 固定标签,不输出 Tauri tray 插件错误详情;配置检查拒绝重新拼接 `: {error}`。
|
||||
- 影响范围:`apps/desktop-shell/src-tauri/src/app.rs`、`apps/desktop-shell/src-tauri/src/shell/menu.rs`、`apps/desktop-shell/src-tauri/src/shell/tray.rs`、`apps/desktop-shell/scripts/check-config.mjs`、宿主壳方案文档。
|
||||
- 验证方式:`cargo test --manifest-path apps/desktop-shell/src-tauri/Cargo.toml`、`npm run desktop-shell:typecheck`、`npm run check:native-shells`、`npm run check:encoding`、`git diff --check`。
|
||||
|
||||
|
||||
@@ -214,6 +214,7 @@ Tauri 壳同样只负责桌面宿主能力,不承接玩法业务。
|
||||
- 桌面深链只作为宿主启动 / 唤醒入口处理,不进入 HostBridge capability,也不把 deep-link 插件 command 授权给 H5。Tauri 只注册 `genarrative` scheme,并接受同源 `https://app.genarrative.world` URL;壳层会把目标路径归一为带 `native_app`、`tauri_desktop` 和真实 capability 清单的同源 H5 URL,外域、明文协议和危险协议直接丢弃。`navigation.openNativePage` 的同源主动跳转也必须复用同一宿主上下文补写逻辑,避免新页面按普通浏览器运行态启动。
|
||||
- 桌面窗口状态持久化属于宿主壳自有体验,不进入 HostBridge capability,也不开放窗口状态插件 command 给 H5。Tauri 壳只保存主窗口大小、位置和最大化状态,不保存可见性、全屏或装饰状态,避免托盘隐藏窗口后下次启动被恢复成隐藏状态;`shell/window_state.rs` 必须保留 Rust 单测证明这组 flags 边界。
|
||||
- 桌面壳外链打开、WebView 新窗口外链接管、托盘关闭前生命周期注入和窗口隐藏都属于用户可见宿主动作;这些动作失败必须走统一桌面宿主事件日志,配置检查拒绝 `let _ = ...` 静默吞错。
|
||||
- 桌面壳托盘注册失败只允许记录 `desktop tray registration failed` 固定标签,不把 Tauri tray 插件错误详情写入可分发桌面壳 stderr;托盘不可用时主窗口关闭仍按无托盘路径退出。
|
||||
|
||||
桌面 release 和 dev 模式:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user