Files
ycode/docs/专家使用逻辑对齐-2026-10-16.md

52 lines
5.7 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,用户要求“对齐一下使用专家的逻辑”。本轮按 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依赖保持真实状态。