A macOS-first desktop workbench for launching applications, managing isolated accounts, and controlling system settings.
以 macOS 为主的桌面工作台,重点解决应用启动、隔离账号管理和系统设置三个高频场景。
Bench 基于 Tauri v2、React 和 Rust。版本号由 release-please 自动维护,以 GitHub Releases 与 package.json 为准;当前正在进行 2.0 发布前收口,已经实现但尚未完成目标平台真机验收的能力会明确标记为待验证,不以“可以编译”代替跨平台支持。产品定位与功能闭环的完整分析见功能定位与功能闭环。
Quick Launch 和 App Manager 共用同一份后端应用清单,避免扫描结果、分类和更新状态互相漂移。
- 快速启动:搜索、分类、拖拽排序、用户覆盖和虚拟化应用网格;图标按可见项加载。
- 跨平台清单:macOS 识别
.app、bundle 与安装来源;Windows 识别传统 EXE/MSI、Registry、Start Apps 和 AUMID。 - 可靠启动:前端只提交稳定
appId,由 Rust 后端解析.app、EXE 或 AUMID 启动目标,不接受 renderer 传入任意可执行路径。 - 应用管理:检查更新、升级、卸载、批量操作、取消与逐项结果;provider 明确区分
ok / partial / unsupported / failed。 - 安全更新:破坏性操作要求可验证的 receipt、package ID 或 ProductCode;下载和替换流程包含 HTTPS、签名/哈希、身份、架构、资源上限与恢复检查。
当前状态:macOS 和 Windows 核心代码已经接线,正式发布前仍需完成两平台真实应用 fixture、启动 smoke 和 500+ 应用性能验收。
文档:Quick Launch · App Manager
Account Manager 面向需要在同一站点维护多个隔离登录态的场景。
- 账号级隔离:每个账号使用独立 WebView data directory/data store,避免 Cookie 和浏览器状态串号。
- 加密持久化:主密钥保存在 macOS Keychain 或 Windows Credential Manager;密码和 Session 使用 AES-256-GCM 加密。
- Session 恢复:保存 HttpOnly Cookie、canonical expiry、精确 origin 的 localStorage/sessionStorage,以及受限、可校验的 IndexedDB schema 与记录;恢复后必须经过真实 probe 才能标记 Ready。
- 认证检测:支持 HTTP、WebView 和 Hybrid probe,具备账号级 single-flight、并发上限、瞬态重试预算和结构化 partial 结果。
- 外部登录代理:支持
bench-auth://Deep Link、一次性后端 ticket、精确 callback/state/origin 校验和冷/热启动有界队列;原始敏感 URL 不进入前端 store。 - 能力声明:后端逐项返回
supported / partial / unsupported / failed,前端据此禁用具体操作并显示原因。
当前限制:macOS/Windows Keyring、WebView、Session 恢复和 Deep Link 仍需按文档做真机验收;Windows 登录 WebView 网络代理明确为 unsupported,失败时不会退回共享系统浏览器或静默直连。Tauri 当前不提供 Cookie partition key,因此 partitioned Cookie 不会降级进入 HTTP probe。
文档:Account Manager · 双平台验收方法
System Settings 是面向 macOS 14+ 的受控设置中心,不尝试复制整个系统设置应用。
- 显示与 Dock:Dock、菜单栏、显示和低电量相关设置。
- Finder 与截图:隐藏文件、路径栏、状态栏、扩展名、截图格式/阴影/缩略图/保存位置。
- 键盘与快捷操作:键盘行为、常用系统面板和受控系统动作。
- 锁屏、睡眠与网络:锁屏、防睡眠、Firewall、SSH、屏幕共享、AirDrop 等能力。
- 默认浏览器与应用授权:canonical 默认浏览器读取/设置、Gatekeeper/quarantine 授权流程。
- 可靠写入:读取当前值、执行受控 adapter、重新读取并比对目标值;读取失败显示 unknown/error,不伪装成“关闭”。
该模块只面向 macOS。新增设置必须先验证系统版本、权限、真实控制接口和可逆性;Finder、截图、网络、Dock 与默认浏览器仍保留目标版本真机 read-after-write/权限拒绝回归。
文档:System Settings · 技术设计
- Command Center:把常用命令/脚本保存为卡片一键运行(
shell/shellAdmin/copy/open),支持拖拽排序、导入导出、运行中终止;macOS/Windows 双平台。 - Network Probe:网络诊断急救箱——本机体检、「上不了网」诊断、traceroute/MTR、站点延迟、测速、安全与发现工具;Post-MVP 能力按波次交付。
- Dev Toolbox:端口管理、环境检测、Token 计算等开发工具的聚合 Tab。
- Clean Space:macOS 存储概览与受控清理(开发项目/自定义目录/清理记录),带路径白名单、逐项结果和真实释放量。
- Hardware Compare:硬件规格查询与对比。
- Terminology:可搜索、可固定的行业术语与关联站点库。
- 全局能力:中英文切换、浅色/深色/系统主题、菜单栏托盘、防睡眠和签名校验的应用内更新。
| 能力 | macOS 14+ | Windows 11 | 说明 |
|---|---|---|---|
| Quick Launch / App Manager | 待真机验收 | 待真机验收 | 核心实现完成;fixture、启动与更新/卸载 smoke 未完成 |
| Account Manager | 待真机验收 | 待真机验收 | capability gate 已实现;Windows WebView proxy 不支持 |
| System Settings | 支持,待版本回归 | 不适用 | macOS 专属系统 adapter |
| Command Center | 支持 | 支持 | Windows 提权命令无输出且不可终止(已知限制) |
| Network Probe | 支持 | 能力降级 | 按能力矩阵降级,见模块 roadmap |
| Dev Toolbox | 支持 | 部分支持 | 以各子模块的 capability 为准 |
| Clean Space / Hardware | 支持 | 不适用 | 2.0 维持 macOS-only |
| Terminology | 支持 | 支持 | 纯前端与本地持久化 |
2.0 正式目标是 macOS 14+(Apple Silicon/Intel)和 Windows 11 x64;Linux 不受支持,也不进入 CI/CD、构建或发布流程。剩余步骤与停止条件见2.0 最终路线图。
构建产物发布在 GitHub Releases。当前没有 Apple Developer Program 或 Windows Authenticode 证书:
- macOS 包使用 ad-hoc 签名,首次安装可能需要在“系统设置 → 隐私与安全性”中手动允许。
- Windows 安装包未做 Authenticode 签名,系统可能显示 Unknown Publisher。
- Release 应同时提供
OS-SIGNING-NOTICE.txt和SHA256SUMS;应用内 updater 仍独立使用 Tauri minisign 校验。
不要把 updater 签名理解为操作系统代码签名。正式 Apple notarization 和 Windows Authenticode 会在取得开发者证书后启用。
- Node.js
>=24 - pnpm
11.8.0(以package.json#packageManager为准) - Rust stable
- macOS:Xcode Command Line Tools
- Windows:Visual C++ Build Tools 与 WebView2 Runtime
corepack enable
pnpm install
pnpm run devpnpm run lint:fe # TypeScript、i18n、文档一致性
pnpm run test:critical # 核心功能回归
pnpm run test # 前端 + Rust 全量测试
pnpm run build # 当前平台 Tauri bundleGit hooks 会在安装依赖时配置;也可以显式运行 pnpm run hooks:install。开发服务器地址为 http://localhost:1420。
- Tauri v2、Rust 2021
- React 19、TypeScript 6、Vite 8
- Tailwind CSS 4、shadcn/ui、Lucide
- Zustand、Wouter、i18next
- Vitest、Testing Library
- 人类文档入口:docs/README.md
- 产品定位与功能闭环:docs/functional-positioning-and-closed-loop.md
- 架构与禁止模式:docs/ARCHITECTURE.md
- 编码规范:docs/coding-standards.md
- 开发流程:docs/development-workflow.md
- 当前发布目标:docs/ROADMAP.md
- AI 操作入口:AGENTS.md
提交代码前至少运行:
pnpm run lint:fe
pnpm run test:critical
pnpm run clippy:be