feat: Pro 买断门禁、SFTP 精简与批量多机改造

新增 entitlement/license IPC 与 Waffo 一次性结账服务骨架,挂载 AI/转发/代理/串口/广播/批量导入导出门禁;批量执行改为结果矩阵并复用连接池,SFTP 工具栏图标化并去掉已连接条,同时完善跨平台本地终端与窗口配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Logan.LiandCursor committed 2026-08-07 11:38:30 +08:00
1 parent 101d2164b4
commit fea6d8db04
72 files changed
+3307 -396

No files matched your search

+17 -3
View File
@@ -1,14 +1,19 @@
use std::path::PathBuf;
use std::path::{Path, PathBuf};
pub(super) fn expand_home(value: &str) -> PathBuf {
if value == "~" {
return dirs::home_dir().unwrap_or_else(|| PathBuf::from(value));
}
if let Some(relative) = value.strip_prefix("~/") {
let relative = value
.strip_prefix("~/")
.or_else(|| value.strip_prefix("~\\"));
if let Some(relative) = relative {
if let Some(home) = dirs::home_dir() {
return home.join(relative);
return home.join(Path::new(relative));
}
}
PathBuf::from(value)
}
@@ -20,4 +25,13 @@ mod tests {
fn leaves_absolute_paths_unchanged() {
assert_eq!(expand_home("/tmp/key"), PathBuf::from("/tmp/key"));
}
#[test]
fn expands_unix_and_windows_home_prefixes() {
if let Some(home) = dirs::home_dir() {
assert_eq!(expand_home("~/a/b"), home.join("a/b"));
assert_eq!(expand_home("~\\a\\b"), home.join(Path::new("a\\b")));
assert_eq!(expand_home("~"), home);
}
}
}