Files
ycode/docs/专家本地创建与激活-2026-10-16.md

55 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 专家本地创建、编辑与会话激活
2026-10-16。本轮继续实现专家模块。技能/MCP 的上一轮基线见《能力中心与本地能力接入-2026-10-16.md》。此处的功能通过不等于全状态 UI 1:1 通过。
## 原版证据与恢复
原版为 WorkBuddy 5.8.2;安装包 SHA-256 `035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`。所有原版查看均经过 REA。
- `main/module.app-server.js`:`ev_81de6f628a156599f26ca795f6747ad3f8ec108de66fdba6e3723705905716f3`,SHA `281666dbf81b76d64f95162a19dd2d02a41b35ec54239e0efc4e8e52419eb125`。确认本地包、marketplace 索引、会话标记及激活身份。
- `expert-manager/SKILL.md`:`ev_3cba49fcb15fefc59f54c7691500ad1121a937edb55e606addae17e4186ebfef`。另恢复四份 references、五份 Python 管理脚本及插件 metadata,共 11 份原文。逐文件 SHA 和 Evidence 见 `src/main/capabilities/assets/expert-manager/rea-source-manifest.json`。
- 隔离 REA 文本 provider 正式增加 Markdown/Python 等文本后缀;自有 ASAR fixture、原回归和完整性检查通过。没有改全局 REA,也没有执行原包 Python。
- 恢复 CreatedExpertCard、CreatedExpertsPanel、菜单、删除框等 25 个源码体及 273 条 CSS;恢复专家选择器 10 个源码体/中文文案及样式。原几何和宿主适配范围分别见《created-expert-source-20261016.md》《expert-picker-source-20261016.md》。
## 已实现
“创建专家”采用原默认提示词并引用 `skill://expert-manager`;“修改专家”采用带专家 ID 的原编辑提示词。两者进入新的管理任务,保留空间/模型,解除当前专家角色绑定。
管理器使用恢复的完整正文与资源,经过明确的 YCode 宿主适配调用 `ycode_expert_package`:read → write → validate → register。包结构继续采用 `.codebuddy-plugin/plugin.json`、Agent MD、skills 和同级资源。主进程接管固定目录、marketplace 索引与会话标记;不会写入 WorkBuddy 数据。
专家包存储在 YCode userData 下的 `plugins/marketplaces/my-experts/plugins/<id>`。草稿按会话隔离;注册前校验必填展示字段、三标签/提示词、Agent YAML 与真实资源。原版建议项保留为警告。编辑保留未修改文件及二进制资源;固定 name/agentName,冲突必须 refresh 重读。目录/资源拒绝越界及符号链接;注册采用临时目录和备份,删除先改名再提交索引。
“我的专家”接真实注册目录及源码卡片,支持搜索、预览、召唤、编辑、打开目录和删除。删除失败保留原弹窗。输入框+菜单接源码专家选择器,支持搜索、置顶/最近、选择当前专家、异步失败保持与任务作用域隔离。
会话保存 expertId。回合开始读取一个一致的包快照,注入真实 Agent 正文及技能资源,并为助手消息保存专家展示身份;后续切换不会重命名旧回复。移除专家后明确恢复默认助手角色。MCP 依赖检查已连接/受信任及相应命令、参数、传输和目录;快照先取连接代次,配置替换会使旧执行失效。
首次发送创建会话后,将输入、附件、资源和技能迁移到新会话 owner;主进程 preflight 拒绝时保留,成功时才清空。专家资源读取使用包内自有文本键,不允许命中对象原型。
## 验证
- `npm run build`:包含 node/web TypeScript,通过。日志 `.tmp/expert-build-20261016.log`。
- `node scripts/test-experts-backend.mjs`:73 项(59 操作、14 实际新 Electron 进程恢复/删除)通过。最终重验 `.tmp/experts-backend-LSzrsZ/report.json`。
- `node scripts/rea/recover-created-experts.mjs --check --native-qa`:34 项,0 HTTP/renderer error,`.tmp/created-expert-source-H0svkz/report.json`。
- 专家选择器原生验证:39 项,`.tmp/expert-picker-native-iFW4nG/report.json`。
- `node scripts/test-capability-gateway.mjs`:17 项通过,`.tmp/capability-gateway-GsHx96/report.json`。
- OMP 生命周期、Chat、Persistence、Conversation 回归通过。持久化 fixture 将取消触发条件改为首行文本,以覆盖附带能力上下文的真实 prompt;未删除 partial/disk/cancel 断言。
- 整应用 UI → preload/IPC → 实际 OMP → localhost 受控上游验证:创建/资源读取/写包/校验/注册、原生 hover 召唤、专家指令和身份、编辑、实际新进程恢复已通过 39 项。`.tmp/expert-flows-pR6WCR/README.md` 是首轮完整结果;最终新增无模型 preflight 草稿保留验收另记于下方。
最终构建整应用验收:`node scripts/verify-expert-flows.cjs`,**51/51 通过**(40 主阶段、11 新进程恢复),`.tmp/expert-flows-2nE9Bc/report.json` / `README.md`。主进程构建 SHA `16b15106c73c25ba04ae6e679b655c77bb8e7cefd33c7735dc1d9d53effe8b51`,两阶段一致。真实 UI 先在无模型状态发送,确认新会话 owner 下原文/技能保留、0 消息;随后配置本地受控模型,在同会话不重填草稿重试成功。整个成功流程 13+1 次 localhost 请求。早期错误 QA 前置未清除默认模型,收到远程 401;失败事实留在 `qa-history.json`,未算作通过或远程效果证据;最终脚本清空默认 profile 且发送前检查只允许 127.0.0.1。
独立快照/事务故障注入 **15/15 通过**:`.tmp/expert-review-snapshot-HDKwX1/report.json`。覆盖同回合单文档、MCP 参数 gate、提交/清理失败、回滚、坏索引与原型资源键。该测试的 MCP 状态为受控 fixture;真实 SDK 代次失效的覆盖来自已有能力网关测试。
最终构建已重启更新用户 YCode(PID 59256),更新前确认无运行回合、无附件/能力引用草稿、设置窗口关闭;文本草稿与会话 owner 经过备份/恢复/再检查。没有将隔离 QA 专家写进用户目录,也未改变用户模型配置。
独立审查发现并修复了旧编辑覆盖、同回合身份/正文竞态、英文搜索、MCP 参数匹配、删除事务、原型资源键及首次发送草稿丢失。未将测试工具的成功返回替代真实磁盘或模型输入验证。
## 尚未完成的等价性
本轮 OMP 使用宿主能力上下文和工具适配专家包,尚未证明等同于原版原生 agent/plugin 注册、切换及工具发现。Python 生命周期由主进程受控工具适配,不能称为原样运行原版 daemon。
专家团可显示/编辑/校验包;调度未接入,激活明确拒绝。ImageGen 未接入,不能宣称已生成头像。当前工具写入文本包,新增二进制头像自动复制/生成尚未打通。云端专家市场、购买、OAuth/云连接器仍未接入。
预览详情、Popover/Tooltip、完整+菜单入口和已选专家首页布局仍有宿主适配;创建完成后的原版右侧专家产物自动预览及外部文件实时 watcher 尚未完成。组件源码恢复和局部几何通过,不代表同状态截图、所有主题/极窄窗口/动效/字体字形已通过像素验收。
受控上游证明产品链路,不证明任意模型均能按规范产出专家包。原版云端账号与数据未修改。