diff --git a/src-tauri/src/commands/session_manager.rs b/src-tauri/src/commands/session_manager.rs index 434cd4265..f08b9fbc0 100644 --- a/src-tauri/src/commands/session_manager.rs +++ b/src-tauri/src/commands/session_manager.rs @@ -24,6 +24,40 @@ pub async fn get_session_messages( .map_err(|e| format!("Failed to load session messages: {e}"))? } +/// 在用户选定的终端里恢复一个会话。 +/// +/// # 安全边界:`command` 是刻意不加校验的 +/// +/// 本命令接受 renderer 传来的任意字符串并最终交给 shell。多份外部审计把这一点 +/// 报成"IPC 任意命令执行",这里明确记录为**已知并接受的风险**,而不是待修缺陷。 +/// +/// 依据是本应用把 renderer 当作可信边界。支撑这一判断的是以下事实,全部逐条 +/// 核实过(2026-07): +/// +/// 1. 全库仅一处 `dangerouslySetInnerHTML`(`ProviderIcon.tsx`),其入参是图标 +/// **名字**,经 `hasIcon()` 把关后从手工维护的构建期注册表取 SVG——用户与 +/// 深链接都只能给名字,给不了标记内容 +/// 2. 前端无 `eval` / `new Function` +/// 3. `tauri.conf.json` 的 `frontendDist` 指向打包产物,webview 不加载任何远程 +/// 源;界面里也没有 `