chore: initialize qiming workspace repository

This commit is contained in:
Codex
2026-05-29 14:22:48 +08:00
commit bfd67a0f2c
10750 changed files with 1885711 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
# Code Review: get_lanproxy_bin_path 修改
## 变更概要
- **文件**: `crates/agent-tauri-client/src-tauri/src/lib.rs`
- **函数**: `get_lanproxy_bin_path`
- **目的**: 修复「未找到 qiming-lanproxy-aarch64-apple-darwin 可执行文件」——使 lanproxy 作为 Tauri sidecar 在应用包内可被正确解析。
---
## 优点
1. **逻辑清晰**
先按 sidecar 基名(与 `app.shell().sidecar("qiming-lanproxy")` 一致)解析,再按带 target triple 的文件名回退,兼顾打包与开发两种场景。
2. **与 Tauri 行为一致**
`tauri-plugin-shell``relative_command_path` 使用 `base_dir.join(program)`,即与主程序同目录下的基名;优先用基名查找与官方 sidecar 用法一致。
3. **跨平台处理正确**
- 非 Windows: `qiming-lanproxy`
- Windows: `qiming-lanproxy.exe`
`resolve_bundled_bin_path` 直接使用传入的 `bin_name`,不自动加 `.exe`,此处区分是合理的。
4. **注释到位**
文档注释说明了「sidecar 随包集成、无需安装」以及两步查找顺序,便于后续维护。
5. **无多余依赖**
未引入新依赖,仅调整查找顺序与命名策略。
---
## 潜在问题与建议
### 1. Linux ARM 的 triple 与仓库文件不一致(既有问题)
- **代码**: `target_arch = "arm"` 时使用 `qiming-lanproxy-arm-unknown-linux-gnueabi`
- **仓库**: `binaries/` 中实际存在的是 `qiming-lanproxy-arm-unknown-linux-gnueabihf`(以及 `armv5te` / `armv7` 等)。
- **影响**: 在 Linux ARMgnueabihf开发态会先失败基名再失败 triple仍报「未找到」。
- **建议**: 将 `arm` 分支改为 `qiming-lanproxy-arm-unknown-linux-gnueabihf`,或在回退逻辑中增加对 gnueabi/gnueabihf 的尝试(若需兼容多种 ARM 变体)。
### 2. 错误信息未体现「已尝试两种命名」
- 当前:两次都失败时,错误仅来自第二次 `resolve_bundled_bin_path(app, bin_name)`,例如「未找到 qiming-lanproxy-aarch64-apple-darwin 可执行文件」。
- 建议(可选):在两次都失败时统一返回更明确的信息,例如:
「未找到 qiming-lanproxy 可执行文件(已尝试 sidecar 基名与当前平台 triple 名)」
便于区分「完全找不到」与「只找不到 triple 名」的情况。
### 3. 未知平台时的重复尝试
- `#[cfg(not(any(target_os = "macos", target_os = "linux", target_os = "windows")))]``bin_name = "qiming-lanproxy"`,与 `SIDECAR_BASE_NAME`(非 Windows相同会再调用一次 `resolve_bundled_bin_path(app, "qiming-lanproxy")`
- 影响:仅多一次相同查找,无功能错误;可视为无害冗余,若追求简洁可在该分支直接 `return resolve_bundled_bin_path(...)` 避免重复。
---
## 结论
- 修改方向正确,能解决「打包后/开发态下按 sidecar 基名或 triple 名找到 lanproxy」的需求。
- 建议顺带修复 Linux ARM 的 triple 与 `binaries/` 中实际文件名一致gnueabihf其余为可选优化。