Skip to content

工作台差异化与交接路线 ​

更新:2026-10-09。用户进一步将工作台定位为软件准备、工具入口与开发环境管理,当前优先路线见个人环境工作台。本文件保留此前交接方向及宿主实验的记录;交接 P0 / P1 不再是默认开发顺序。已有总览决策见 ADR 0010,接口证据见工作台调研。下列复选项区分已经落盘的基础能力与尚未完成的流程;未勾选项不构成已交付承诺。

核心工作流 ​

Craft Hub 回答三个相连的问题:哪些工作需要我处理,关联哪个项目,以及带着哪些上下文交给哪个工具。价值应体现在减少重复查询和补充上下文,而不是拥有更多启动按钮。

text
Provider 的真实工作项
  → 精确来源与身份
  → 用户确认的本机项目、目标与能力上下文
  → 预览 / 复制 / 经验证的外部接收
  → 返回摘要
  → 审阅 Provider 原生状态动作

Raycast 负责快捷搜索、热键与打开工具;Orca 或其他编码工作台负责会话、终端、worktree 和代码审阅。Craft Hub 保留跨来源总览、项目能力、上下文审阅、业务动作及其验证。工作项仍由 Provider 持有,路线待办记录在本文件,不创建第二个任务系统。

当前状态 ​

能力状态实际边界
默认 /overview、工具分组与项目收藏已实现workbench.home 保存在 OS 设置目录;不只是浏览器存储
真实“我的工作”预览已实现各来源的无需确认的全局 work-items.list;精确账号筛选、终态过滤、失败隔离;返回数据的部分预览
项目与插件入口、业务操作已实现使用已有公开合同与受审阅的动作;不改写 Provider 权威
事项 / 项目上下文准备与外部启动已实现首版选本机项目、补充目标、预览 / 复制;启动 Raycast 或 Orca;网页回退;始终报告 contextTransferred: false
工作项与项目的持久关系、完整上下文收集待做 P0当前手选项目不是已建立准确关联
可观察的上下文接收、返回摘要与真实闭环待做 P1目标端打开成功不是接收或执行证明
可定制布局、更多外部适配器待做 P2基于已验证需求再扩展,不先复制启动器或 IDE

旧 Codex SDK 路径仍是迁移兼容流程:它会在本机执行后再打开客户端。新的外部入口不应悄悄复用该执行路径。移除 task/session/delivery 后端前,必须迁移其现有调用者,遵守 ADR 0009。

已完成基础 ​

当前切片:显式准备与启动 ​

验收例:打开一个真实来源的工作项,选择一个本机项目,补充目标,检查并复制文本,然后打开 Orca。Craft Hub 展示“已请求打开;请在目标工具确认并粘贴上下文”,不显示“任务已派发”。应用不存在时能打开网站,草稿不丢失,也不更改该工作项状态。

验证记录(2026-10-09):全量 159 个测试文件、867 项测试通过;lint、公开边界、TypeScript / Vue 类型检查和全量构建通过。使用隔离的 QA 数据目录与 Sample Project,在 macOS Electron 中实际点击工具入口并确认 Raycast 1.104.31、Orca 1.4.222 窗口;项目交接文本补充目标后复制成功。浏览器显示“浏览器模式 · 打开网站”。Provider 事项与多来源隔离通过组件测试;尚未跑真实业务 Provider 的执行与回写闭环,该项保留在 P1。Raycast 配置命令只做格式、安全和启动参数测试,没有执行用户的扩展命令。

P0:使事项与项目上下文准确 ​

验收:两个真实来源存在相同 ID 的事项时,选择后仍定位正确;账号缺失不能冒充“我的”;同一仓库的多个本机候选不被静默选择;来源失败或分页未完成时,用户能辨认结果范围。

P1:验证交接接收与返回 ​

验收:原工作项可追溯到确认的项目和实际外部接收;关闭目标工具或取消操作不会显示完成;返回时仍能找到同一来源并独立审阅状态更改。CLI 存在、协议注册或系统 open 成功,都不能独自满足这一验收。

P2:体验与分发 ​

分发前置评估:包体与桌面宿主 ​

2026-10-09 的初始本机审计:当前定位以总览和外部交接为主,应把小包体作为分发要求。推荐验证本地服务与 Web 工作台作为主入口,Electron 保持兼容;独立原生窗口通过可选 Tauri 宿主验证。下列初始目录测量与后续完整产物测量分别记录;默认桌面入口仍为 Electron。

当前对象本机目录磁盘占用解释
apps/web/dist约 12 MiB完整 Web 构建,包含高亮语言和终端等按需资源,不等于首页加载量
apps/desktop/dist约 96 KiB自有主进程代码,不包含依赖
Electron 44.0.0 的 Electron.app约 287 MiB安装的未压缩运行时,不是下载包
Codex CLI 0.149.1 的 darwin-arm64 依赖目录约 269 MiB现有 SDK 执行路径使用的本机依赖,不是新总览所必需的 UI

测量采用 du -sh,这些目录不能直接相加推算最终安装包。旧社区 arm64 ZIP 约 251 MiB(文件日期 2026-09-02),不是当前源码的重新打包结果。打包脚本部署生产依赖,并额外复制 Web 资源;runtime 包也带 Web 资源;后续实际打包确认 ASAR 对相同内容共用 offset,不能将两个目录的磁盘占用视为重复的安装包 payload。

Electron 分发包含 Chromium 与 Node.js。官方介绍 Tauri 使用系统 WebView,能够避免随应用分发 Chromium。官方架构 但现有 runtime 依赖 Node 的文件系统、进程、监听、原生模块与动态 Host Plugin;保留行为仍需 Node sidecar 或后端迁移。Tauri 官方支持外部二进制和Node sidecar,不能据此承诺整个 Craft Hub 只需几 MiB。

验收:比较覆盖同一条真实工作流的产物,包含所需 sidecar 和运行时;证明常用操作无需回退到旧 Electron 后,再决定默认分发。用户数据和已授权集成保持可迁移、可回滚;包体下降不以隐藏依赖或损坏旧执行调用者为代价。

2026-10-09:瘦身与 Tauri 验证实现 ​

本轮 Electron 对照使用同一源码快照、依赖和 macOS arm64 架构,测量 .app 内普通文件逻辑字节总数(包括 app.asar.unpacked)与 ditto ZIP;不是旧版本的下载包,也不是仅 ASAR 的大小。

同功能 Electron 产物优化前优化后减少
完整 .app697,361,591 B(665.06 MiB)635,011,200 B(605.59 MiB)59.46 MiB,8.94%
ZIP267,023,660 B(254.65 MiB)251,532,789 B(239.88 MiB)14.77 MiB,5.80%

新增可选 apps/tauri 试验:复用 Vue 界面与共享 Node runtime,应用自带 Node 和当前架构 PTY,不依赖用户安装 Node,不携带内置 Codex SDK / CLI。试验使用独立用户数据目录,不读取或迁移现有 Electron 云设备密钥。原生桥只接收已保存的工具 ID、注册项目 ID、HTTPS 网址、目录选择与用户审阅的复制文本;共享 API 在所有路由前验证本次启动的 session,站外页面没有通用 Tauri IPC。

该试验未完成 Host extensions 恢复、云设备密钥迁移、更新、单实例、桌面协议与旧 Agent 执行路径的兼容验收。全路由 session 也不能替代 MCP 独立 credential;MCP 接入需要另行适配。Tauri 的体积结果必须注明这一区别,不作为同功能 Electron 替换率。

Tauri 试验产物(macOS arm64)大小
完整 .app,含所有后端资源145,267,191 B(138.54 MiB)
ditto ZIP46,610,226 B(44.45 MiB)
其中自带 Node 24.18.0120,965,360 B(115.36 MiB)
其中 Rust 宿主7,285,344 B(6.95 MiB)
其中 Web 资源,含试验桥注入12,384,952 B(11.81 MiB)

Node 已占完整应用约 83%;当前最小壳层实验不能承诺几 MiB 的完整安装包。运行 pnpm build:tauri 可重建;试用及兼容范围见 Tauri 说明。本地 ZIP 输出到 release/tauri/Craft-Hub-Tauri-Trial-arm64.zip,不纳入 Git。产物仅作本机验证,使用 ad hoc 签名,最低 macOS 13.5;实测系统为 macOS 26.6.2 arm64。

本轮 lint、公开边界、TypeScript / Vue 类型检查、全量构建与 163 个文件 / 883 项测试通过;Tauri 另有原生桥测试及 bundled backend smoke。Electron 的现有执行路径与 Tauri 的轻量实验分别验证,不启用默认迁移。

当时的下一步是本记录中 P0 / P1 的交接工作流;目前交付优先级已由软件与环境工作台路线接续。若工作台稳定采用外部 Agent,先完成旧执行调用者迁移并把 SDK / CLI 拆成可选能力;Tauri 先复用 Node 后端。只有自带 Node 仍超过分发预算时,再评估逐步迁移后端,避免为壳层实验重写领域逻辑。

本机 Node 与 Workstation 环境协作:下一步方案 ​

此前针对已有开发环境的个人工作台,建议轻量分发优先复用经过校验的本机 Node。新机器准备场景则必须先提供独立的启动检查与引导界面,不能将本机 Node 作为工作台启动前提;目前仍保留 Electron 默认入口。按现有产物减去自带 Node 的算术估算,完整应用约 23.18 MiB;这不是已重建的外置 Node 应用或 ZIP 测量。当前 Tauri 试验仍固定启动包内 Node,没有自动探测或安装本机 Node。

Workstation 当前已管理 fnm 安装声明、Zsh 中的 fnm 初始化,以及 MCP / skills / instructions / 终端配置同步。已有 Craft Hub Host Plugin 调用其 configuration v1 JSON 接口,文件解释、计划、写入、备份和恢复仍由 Workstation 负责。当前接口没有 Node 运行环境探测或安装能力;Tauri 试验也尚未加载该插件。

Tauri 的 WebView 兼容性单独验收:macOS 使用系统 WebKit,版本随系统更新,不能以本机系统通过推断最低支持版本也通过。官方 WebView 说明 当前 PTY 依赖使用 Node-API,仍需实际加载验证架构及其原生依赖,不把任意 Node 版本视作兼容。Node-API 边界

MyGo 调研补充:2026-10-09 ​

已查阅官网、官方源码 fa9e8e0 与 v0.3.5 发布,未编译或测量 Craft Hub 的 MyGo 产物。搜索缓存中的 v0.2.11 不是本次调研的当前版本。

宿主界面与运行时对当前 Craft Hub 的判断
Electron内置 Chromium / Node,现有 TypeScript 宿主维持完整功能的兼容入口;优化后的完整安装目录仍较大
Tauri系统 WebView / Rust 宿主;本项目另启 Node 后端推荐继续验证的轻量方向,已完成本机打包与关键流程实测
MyGo系统 WebView / Go 宿主,也支持纯 Go 原生 UI值得作为候选;仍需独立 Node 后端或后端迁移,没有本项目包体与流程实测

MyGo 的 Web 模式支持复用现有 Vue 构建;macOS / Linux / Windows 分别使用 WKWebView / WebKitGTK / WebView2,和 Tauri 具有同类系统 WebView 兼容边界。纯 Go 原生 UI 是另一种界面实现,现有 Vue 页面不会自动转成它。官方介绍、前端合同

MyGo 没有内置 Node 兼容后端;前端开发使用 Node / Bun 不代表现有 node:sqlite、进程与动态 Host Plugin 能直接调用 Go bindings。它支持用 Go exec.Command 启动辅助程序,因此可以沿用本机 Node 方案。官网约 7 MB 与内存指标针对示例构建,不能直接与完整 Craft Hub 的产物比较;Node、完整 Web 与后端资源仍需计入实际分发或标明外部前置要求。辅助程序、基准范围

MyGo 已提供目录面板、剪贴板、托盘、深链、单实例、签名与更新等桌面能力。调用 Go 的边界采用来源信任和绑定方法;生产期 localhost 后端需要准确的 TrustedOrigins 配置,项目 trust 与命令审阅仍由 Craft Hub 执行。Tauri 另有正式的命令 capability 权限合同。MyGo 绑定边界、Tauri capabilities

此前轻量候选为 Tauri + 本机 Node + Workstation 适配;随着新机器准备成为主流程,默认入口保留 Electron,Tauri 先验证独立引导页和同功能分发收益。MyGo 正在积极迭代,也有跨平台 GUI CI;若以后需要 Go 后端或纯 Go 原生 UI,可重新比较。现阶段优先完成软件与环境真实流程,不同时维护第三套正式宿主。

当前后端策略:保留共享 Node,隔离原生宿主 ​

当前建议保留 TypeScript 编写、编译为 JavaScript 的 Node 本地后端,完成经过校验的本机 Node 接入;不因更换桌面壳而全面重写。CLI、浏览器服务与桌面复用 CraftHubRuntime,可执行 Host Plugin 通过 JavaScript 模块提供函数式 Provider。全面迁移需要同时处理插件合同、客户端复用、持久化、配置审阅、项目信任与执行语义。声明式 Marketplace 元数据则不等于可执行 Host Plugin,不能将两者的迁移成本混为一谈。

层推荐职责
Vue / WebView界面、草稿与操作反馈
共享 Node 后端项目能力、来源集成、上下文、配置与信任校验、可执行插件
原生宿主启动前 Node 检查、窗口、目录面板、剪贴板、原生打开及子进程生命周期
Workstation已有配置同步与审阅;环境诊断 / 安装方案通过后续版本化合同扩展

原生宿主可以负责 OS 执行动作,但来源身份、参数校验、项目 trust 与业务确认必须保留明确的权威边界,不同时在两种语言里复制业务规则。当前试验仍有 Node 中的原生动作桥与 Swift 目录 helper;表中职责是目标边界,不表示所有动作已迁入 Rust。

本机 Node 方案减少增量下载与安装占用,不消除 Node 后端进程的内存或首次准备环境的成本。首先按新的工作台定位迁移或退役遗留内置执行调用者,再收敛依赖;不能为裁剪包体破坏已授权的插件与用户数据。

保留 Node 后端时,Electron 仍是合理选择。Tauri 的明确分发优势是复用系统 WebView、避免应用自带浏览器引擎;它并不自动改善 Node 后端的内存、性能或插件权限。Electron 固定随包的 Chromium / Node 版本,且当前实现完整,维护与兼容成本更可控。Tauri + 本机 Node 则要额外承担系统 WebView、环境发现、后端进程和原生桥的验收。

因此当前 Electron 默认入口继续保留,Tauri 作为小包体目标驱动的验证路线;不能仅因保留 Node 就否定 Tauri,也不能把 Tauri 称为所有条件下的最佳实践。此前 605.59 MiB 与 138.54 MiB 的差异包含 Codex SDK / CLI 等范围差别,不能全部归因于框架。

只有出现明确的无 Node 安装要求、经测量无法通过模块裁剪解决的启动 / 内存瓶颈,或业务已收敛为小型原生能力且可执行 JS 插件有替代合同时,再针对具体模块评估 Rust / Go 迁移。没有这些证据时,不把重写整个后端作为瘦身前置任务。Tauri 官方支持辅助进程及 Node sidecar,但这是可用架构合同,不构成所有项目都应采用该方案的结论。官方 Node sidecar 说明

自由多列布局、通用启动器、聊天会话同步、内嵌网站、交互终端和自动 worktree 不在当前路线中。只有出现已验证的未满足流程,才重新评估。

Released under the MIT License.