> 后续专家实施已推进:真实创建/编辑/注册/会话激活及整应用51项通过,见[专家本地创建与激活](专家本地创建与激活-2026-10-16.md)。本文原“专家未实现”保留为前一轮基线,完整1:1尚未验收。 # 能力中心与本地能力接入(2026-10-16) 上一轮拆解已进入生产实现:侧栏入口、统一管理中心、本地技能与自定义 MCP 已接入真实服务,并进入完整应用验收。本轮没有改动原版账号、技能、连接器或任务,也没有向原版发送消息。云端服务与专家团调度仍按用户要求后置。 ## 已实现范围 | 部分 | 真实行为 | 验证边界 | | --- | --- | --- | | 管理中心 | 侧栏入口、专家/技能/连接器切换、搜索/管理/详情入口;切换保留聊天组件与草稿,右栏按原会话保存 | 原版源 tab、header、卡片、SVG、token、基础组件规则已恢复;全状态像素尚未通过 | | 本地技能 | 文件夹/SKILL.md/ZIP 导入、同名覆盖、启停、读取正文和资源、修改检测、导出、卸载;发现空间 `.agents/skills` 与 `.claude/skills` | 受管副本存于 userData;卸载保留导入源。空间技能只启停/读取,不能由受管卸载接口删除 | | 技能会话联动 | 输入框添加菜单与 `/` 打开技能选择;搜索、置顶、最近使用;按草稿 owner 保存选择,消息持久化 `skill://` 引用;编辑/重发保留引用 | 新回合读取真实技能指令。手动调用与模型自动调用的 metadata flags 分开处理;并非原版完整富文本编辑器恢复 | | 自定义 MCP | JSON/Monaco 编辑、配置 hash 批准、stdio 与 Streamable HTTP、分页发现工具、整服务/逐工具开关、重连、删除、取消与退出释放 | 实际 SDK client/server 往返;旧回合不能借配置变更调用新服务。第三方 Token/OAuth/device-code 尚未接入 | | 对话运行时 | OMP 与备用 Gateway 共享动态工具快照/分派;自动加载技能、受限技能资源读取、MCP 调用审批与真实结果 | 两个内核分别经过受控真实本地服务验证,不以此证明原版内核等价 | | MCP 消息视图 | 保留实际协议工具名;使用 server/tool 身份元数据投影到已有原版 `mcp_call_tool` 专用视图,审批显示可读名称 | 只改变展示投影,历史回传仍使用真实工具名;全状态像素未验收 | | 专家页面 | 源导航、我的专家空态、创建入口、搜索/分类;缓存参考条目明确只读且不可激活 | 创建按钮目前返回真实新草稿讨论职责/依赖;尚未创建、发现、导入或激活专家包 | ## 集成选择与修复 三类能力独立于聊天 store;`src/shared/capabilities.ts` 定义类型契约,preload 仅暴露受控方法。会话层保存技能稳定 ID/URI 和实际回合上下文,以恢复原生分支及备用内核历史。连接器凭据使用系统 safeStorage,只返回字段名;本地注册表和技能安装通过原子提交保存。 不可用 MCP 在启动时后台连接,普通发送不会等待它的网络握手。回合只捕获已连接工具、连接 generation 与配置 hash;禁用、删除和改配置使旧调用失败,只有用户回合 signal 才产生用户取消语义。受管技能损坏、缺失或 YAML 无效时保留可定位/卸载的禁用条目,避免无关坏包阻断普通聊天。 完整应用启动验收发现主进程使用 ESM 产物却依赖 `__dirname`;改为 `dirname(fileURLToPath(import.meta.url))`,sandbox preload 继续 CommonJS。弹层继承管理中心主题变量,避免 portal 脱离作用域。源码几何验收还补齐了 Input/Button/Segmented 基础规则,修正空态垂直偏移。 ## 验证 完整应用脚本 `scripts/verify-capability-flows.cjs` 使用隔离 userData/OMP profile、生产 renderer/preload/IPC、实际 OMP、真实 SDK stdio 服务和受控 OpenAI 上游。覆盖草稿往返、技能真实安装、Monaco JSON 保存、hash 批准、四个工具分页发现、技能引用、聊天内工具审批、真实结果渲染、模型自动加载,以及全新 Electron 进程的持久化和后台重连。 文件选择只控制 OS picker 的返回路径;JSON 编辑走实际 Monaco paste 事件,未改模型或连接器的后台状态来伪造 UI 成功,也未触碰系统剪贴板。模型/空间测试数据通过生产 IPC 设置于隔离目录;原版未参与该运行验收。父测试进程检查每阶段报告存在且 PASS,防止 Electron `app.quit()` 退出码掩盖失败。此前失败的独立目录保留,不计入通过。 详细最终结果与本机更新状态见文末验收记录;模块证据和局部测试分别见 [专家/统一中心实现](capability-center-implementation-20261016.md)、[技能实现](skills-implementation-20261016.md)、[MCP 实现](mcp-implementation-20261016.md)。已有对话、取消、持久化回归也已运行。少数旧 Node 测试在捆绑 YAML 后需要 `createRequire` ESM banner,已修正测试加载方式,未 mock 新生产能力以绕过失败。 ## 原版证据 目标 WorkBuddy 5.8.2;ASAR SHA `035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`。所有原版信息均经 REA,包括本轮补采空态 SVG;本地恢复脚本只解析保存的 REA 正文。 - 基准 renderer JS:`ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb`。 - 技能市场模块:`ev_e8faf60b3d22b99ede302f2d0efdfb3145f53f59789d4a345f5892dc13a589a4`。 - CSS:`ev_377c8790468b3c67dad8577aabb327f98d3140659f0fffdbabfcff5a40cc9e94`。 - 原版运行态截图、partial probe 限制和各模块 SHA/offset 见 [总拆解](专家技能连接器拆解-2026-10-16.md) 及模块恢复 manifest。 ## 还需继续 1. 通过 REA 补 `expert-manager` 真正正文、专家包 schema、产出发现及 daemon 激活契约,接本地专家创建/编辑/导入、依赖与会话身份。当前角色咨询草稿不能算专家创建完成。 2. 技能详情的完整资源预览、URL 导入、更新、原版 Tooltip/Avatar/富文本引用和输入选择细节。目录、扫描、云同步、权益与购买依赖服务,当前诚实显示不可用。 3. 第三方应用连接器的 Token/OAuth/device-code、修复/取消/解绑及云目录;当前仅自定义 MCP 本地能力闭环。 4. 固定相同数据、视口、主题、侧栏宽度与渲染环境,逐项验收正常/空态/加载/错误/授权/编辑/禁用/窄窗/键盘/动效。局部源码与几何一致不代表整页或整个模块 1:1 已完成。 ## 最终验收与本机更新 | 验证 | 结果与记录 | | --- | --- | | 生产 build + node/web typecheck | PASS,`.tmp/capability-build-20261016.log` | | 完整应用 → 实际 OMP → 真实 MCP + 技能自动加载 → 新进程恢复 | 14 项主流程 + 6 项重启 PASS,`.tmp/capability-flows-n92g8Y/report.json`;包含结构化引用、实际工具身份、REA 专用 MCP renderer | | 生产备用 Gateway → 真实 MCP + 技能正文/资源 → 真实 HTTP 上游 | 17/17 PASS,`.tmp/capability-gateway-TxUvcv/report.json` | | 技能文件系统 / 原生局部 UI | 59/59 与 37/37 PASS,`.tmp/skills-files-iAkonv/report.json`、`.tmp/skills-ui-fR8rWr/report.json` | | MCP SDK host / 新进程恢复 / 篡改失信 | 36 + 7 + 2 项 PASS,`.tmp/mcp-backend-7PNwXc/`;另有13项原生管理 UI 与12项配置 helper 验证 | | 中心与专家源几何 / 原生交互 | 33/33 PASS,`.tmp/capability-center-k6vN5H/report.json`;源 header64、tabs60/60/78、gap24、我的专家空态Y472.5/548.5、创建108px/14px、右侧动作300px、稳定参考卡156px;IME/主题/480窄窗等已验 | | 既有聊天回归 | `test:omp`、`test:chat`、`test:persistence`、`test:conversation` PASS;OMP 生命周期/取消/磁盘终态保持 | 当前用户 YCode 已加载最终 renderer `index-C0lP5ThT.js`,技能/MCP API 和侧栏入口可用。更新前确认无运行回合、附件、资源引用、编辑消息或模型设置表单;测试安装/模型/MCP/会话均留在隔离目录,没有导入用户正式数据。一次更新助手的末尾 CDP 检查失败,保留恢复文件后单独确认最终构建已加载,再通过原会话行恢复 owner,验证原 owner 与空草稿完全一致才清理该恢复文件;最终记录 `.tmp/live-capability-update-20261016.json`。原模型及会话数据保留。 原版截图保存的侧栏宽为284.28125,本机独立验收默认280;该保存状态差异不拿来假定整页X坐标/像素相等。参考专家首卡宽度仍为322.578125,对照原在线长列表319.234375:缺少原长列表滚动条及推广/数据状态,尚有差异,明确保留后续验收。