# 专家使用逻辑对齐 2026-10-16,用户要求“对齐一下使用专家的逻辑”。本轮按 WorkBuddy 5.8.2 的 REA 证据修正使用交互与技能预加载,未将其宣称为完整 Agent 运行时 1:1。 ## 原版证据 ASAR SHA256:`035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`。源代码仅分析已经通过 REA 保存并复核 SHA 的导出;新增原版观察仅为被动画面,没有输入、召唤、发送或修改原版任务。 - 原版使用状态机:[REA 核对](专家使用逻辑-REA核对-20261016.md),列出 `ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb` 等 Evidence、模块 SHA、函数范围和新旧 UI 分支差异。 - 当前原版首页/算法专家标签:`ev_7e9604adb87a3d21570eb7a371001e48b3d316ee0388a03a97e2cb564d03aff7`,1336×901;留有未发送默认提问。归档 `.tmp/rea-css-evidence/ev_7e9604adb87a3d21570eb7a371001e48b3d316ee0388a03a97e2cb564d03aff7.json`。 - 标签:原 `src-DbE1_mgM.js` ExpertChip/ExpertAvatar,源 SHA 与范围见 `src/renderer/src/capabilities/SourceActiveExpertManifest.json` 和 [恢复说明](expert-active-source-20261016.md)。组件局部几何和16项计算属性与上述原版观察一致;不代表整页面逐像素验收。 - 技能规范、四份原包、主进程插件切换:[运行语义核对](专家运行语义核对-20261016.md),包含原版版本、Evidence、文件 SHA 和未证明项。 ## 已实施行为 | 操作/状态 | 当前 YCode 行为 | | --- | --- | | 首页选择/召唤专家 | 激活成功后绑定当前未发送草稿,不创建空会话,不自动发送 | | 从已有会话直接进入侧栏专家中心并召唤 | 准备独立新任务,继承模型和空间;原会话绑定保持 | | 会话输入框“召唤更多专家”后返回 | 明确携带原 owner,绑定原会话;不按专家 ID 搜索任意历史会话 | | 用户已经输入问题/修改默认文本 | 保护当前用户文本、附件、引用和技能;激活完成时再次依据当前输入判断 | | 空输入或仍未编辑的专家默认提问 | 按新专家默认提问预填;非文本独立输入不被普通预填覆盖 | | 会话换到没有默认提问的专家 | 清除旧的未编辑自动预填,保留用户文本 | | 首页移除专家 | 保留当前输入;移除能力绑定 | | 会话移除专家 | 只清未编辑自动预填;用户输入和历史消息身份保持 | | 重复选择当前专家 | 普通选择重新激活;同一专家正在进行的激活共享请求 | | 快速切换、离开当前任务 | 版本与 owner 校验阻止旧激活结果覆盖新选择/新草稿;会话写入排队 | | 依赖/激活/磁盘写入失败 | 保留原绑定和草稿;源标签移除失败回滚;展示实际错误 | | 激活元数据 | 默认提问和绑定由同一份已验证文档返回,取消并行 activate/read 的版本混用 | | 输入工具栏标签 | 使用恢复的原头像/职业名/截断提示/hover移除;标签是 status 控件,没有虚构点击菜单 | | 技能加载 | plugin.skills 注册目录;Agent YAML skills 按真实 SKILL.name 唯一匹配预加载。PM/UI按需读取,C++/算法各预加载一个声明技能 | 新选择器暂沿用恢复的 legacy 菜单视图,并以 manifest 明示的 `reselectSelected` 宿主适配接入当前 cr 的同 ID 重激活行为;未声称整套新 cr AddMenu 已原体替换。 ## 验证 - `npm run build`:通过;日志 `.tmp/expert-usage-build-20261016.log`。 - `npm run test:expert-usage`:**50/50**,真实 production Zustand 状态与草稿策略、受控 IPC;包含失败、迟到选择、owner切换、运行中禁止原会话切换等,不请求模型。 - `node scripts/verify-expert-flows.cjs`:**61/61**(50+11),报告 `.tmp/expert-flows-c7J65f/report.json`。实际生产 renderer/preload/IPC → 实际 OMP → localhost 受控上游;创建/召唤/角色上下文/编辑/会话返回/移除/预填/新进程恢复。模型注册清空隔离迁移项,所有发送前要求模型地址为127.0.0.1。新增交互验证没有增加用户消息。 - 选择器原生 **42/42**,`.tmp/expert-picker-native-cxKfqC/report.json`;标签原生 **38/38**,`.tmp/active-expert-native-yS4h06/report.json`。两份恢复脚本 `--check` 通过。 - 技能预加载 **15/15**、四包 **370/370**(197文本原 SHA保持)、真实后端 **73/73**、快照 **15/15**,报告路径见运行语义核对文档。 - `npm run test:chat` 与 `npm run test:conversation`:通过。 - `node scripts/verify-live-imported-experts.mjs`:真实用户 YCode 四位专家原生鼠标召唤通过,197文本/四头像 SHA 保持,0次发送、0渲染异常;报告 `.tmp/live-imported-experts-XhbL3D/report.json`。根上下文查看算法专家召唤画面,标签已位于工具栏并显示原头像/职业名。 ## 用户应用与限制 最终构建已正常更新用户 YCode;更新前确认无运行回合,保留并恢复原选中会话 `b54d80bd-ff69-4ec8-9bb1-e21b31b2b9a9`。没有修改用户模型配置、原专家包内容或历史消息。 最终进程 PID 59560,renderer `index-Cm10d3yD.js`,main SHA256 `d54ff8aa3c837690df61144a6d8770661ddfda3761ead689f45ded449b53ab17`。实机验证后恢复原会话并打开“我的专家”;输入为空,无运行回合。 仍未对齐:独立系统层专家角色、Agent maxTurns、原 CLI 插件/Agent 切换生命周期、团队调度、所有失败/动效状态与整个页面像素验收。当前专家角色仍通过 capability 文本进入模型 user 上下文;原版实际采用插件/Agent override。原 CLI 最终模型消息层级与计数器还需 REA 证据,不能将本轮交互验收替代它们。第三方工具的运行时/API/CLI依赖保持真实状态。