Files
ycode/docs/加号菜单交互对齐-2026-10-16.md
T

64 lines
7.0 KiB
Markdown
Raw 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)
本轮已将对话输入框的手写点击菜单替换为 REA 恢复的当前 WorkBuddy cr AddMenu/Popover/SubMenu。已构建并更新用户 YCode,保留原会话及草稿;实际窗口停在原会话、加号主菜单展开。没有向用户或原版会话发送新消息,没有修改用户模式或连接器状态。
## 原版证据与边界
WorkBuddy 5.8.2,Electron 37.10.3 / Chrome 138;原 ASAR SHA-256 `035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`。所有原版脚本、CSS、截图和输入动作均通过 REA;自身应用的源码、测试及调试不受该采集限制。
- 脚本:`ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb`,`.tmp/rea-runtime-scripts.json`。恢复模块的 `manifest.json` 固定 5 份源 SHA、80 个函数正文的 UTF-16 区间及输出 SHA。
- 父菜单稳态:`ev_330f3e738f84f51e0bc5beb5a2ee5647a8bd567407048d1ff239384929ba324f`,`.tmp/rea-add-menu-open-settled-20261016/`。
- 文件子菜单:`ev_78bbf697548bfc8e683f189181aa6d230cef7e74c733102446d5e34ac1dcb1d1`;该次多步探测仅文件完成,不能作为全部动作通过。
- 模式、专家、技能、连接器连续动作:`ev_ac997d470322973c2405b8b9ba56251354ec7c1ab5d8e8b9fed1319924de3f11`,`.tmp/rea-add-menu-all-20261016/`;11 步原生操作及清理完成,无发送、模式选择或连接操作。
- 详细函数、入口条件及 provider 控制流见 [REA 源码核对](加号菜单-REA核对-20261016.md)。原首页无引用条目时五项,工作目录实际有引用结果时六项;不能用固定行索引跨页面判断。
探测期间用户在原版切换至已有任务,这是用户活动,本轮没有恢复旧页面、取消任务或提交旧草稿。原版键盘探测没有得到可靠子菜单展开画面,不能宣称自然键盘可达性已通过。
## 已接入行为
- 加号点击展开/收起主菜单;主层 top-start、间隔 8px、宽 200px、行高 32px、圆角 16px。悬停条目在侧边展开子菜单,保留父菜单;侧层 right-start、间隔 4px,空间不足翻至左侧。
- 使用原 openDelay 0 / closeDelay 120ms、嵌套锁及输入聚焦保护。原当前组件没有 safePolygon,也没有父菜单 focus-first/roving;没有自行补成另一套交互。
- 选择专家、技能、引用文件或本地添加文件后关闭菜单;连接器普通操作保留菜单,管理入口关闭后跳转。搜索输入保留 IME;非空 Escape 先清搜索,空搜索再交给父层关闭。
- 专家和技能改为嵌入侧层,去掉原先重复 portal/定位和父菜单先关闭的流程。切会话、切空间和异步请求用 owner/epoch 保护,避免旧结果插入新草稿。
- “计划 Plan / 仅问答 Ask”开关持久化会话模式;再次点已选模式回默认。Plan/Ask 清专家,选择专家回默认;失败会回滚显示,运行中禁止切换。
- 模式接入实际 OMP 与备用内核工具列表和执行入口:Plan 可读、提问及维护计划,Ask 可读和提问;两者都拒绝写入、Shell、MCP 及专家包修改。它是 YCode 的本地宿主策略,尚未证明与原版引擎完全等价。
- 引用条目来自实际会话/空间根目录 IPC,选择后插入路径资源;本地添加文件使用真实选择器;技能底部本地导入及管理入口可用。
- 连接器读取已有 MCP 注册与真实状态;连接/启停/取消走实际后端,无自动连接或自动信任。未信任项需在管理页批准,本轮实际用户窗口只检查显示,不建立连接。
## 样式修复
原主题恢复器曾把 dark 条件摊平成无条件作用域,导致浅色开关被深色 token 覆盖。现保留每组原主题、平台、祖先和 at-rule 条件及局部变量,记录 105 组映射;独立 iframe 加载未改动的 REA 原 CSS 对照,浅色关闭开关 `rgb(230,230,230)`、暗色 `rgb(60,60,60)` 及按钮 token 一致。
真实窗口还发现旧专家/技能面板依赖 ChatPane 内的 cb 变量,移入浮层后丢失继承而背景透明。通过限定 embedded 面板的宿主变量桥接修复;实际背景白色、圆角 16px,专家宽 240px、技能宽 320px,均在视口内。此桥接属于宿主适配,不能称为当前 cr 内容的完整源码恢复。
父浅色阴影依据固定原版 computed 值适配,原运行时覆盖的生产者仍未定位;暗色和各子菜单阴影未完成逐像素验收。
## 验证
最终 `npm run build`(含 node/web typecheck)通过,日志 `.tmp/composer-add-menu-build-20261016.log`。
| 检查 | 结果及报告 |
|---|---|
| 最终完整应用 UI→preload→IPC→真实 OMP→localhost 模型,含重启恢复 | 73/73,`.tmp/expert-flows-xEUhs2/report.json` |
| 用户实际 YCode 原生鼠标、布局/背景、五子菜单、关闭和会话草稿保持 | 25/25,`.tmp/live-add-menu-5a9JkJ/report.json`;截图同目录 |
| 原生父菜单与选定原版计算值 | 37/37,`.tmp/composer-add-menu-native-0lF563/report.json` |
| 子视图及独立原 CSS 浅/深主题对照 | 35/35,`.tmp/composer-submenus-native-OfbSyV/report.json` |
| 无 DOM 的 SSR | 5/5,`.tmp/composer-add-menu-ssr-m54vJZ/report.json` |
| 模式持久化、资源根目录、OMP/Gateway/MCP 实际执行拒绝及默认模式允许 | 66/66,`.tmp/mode-policy-jrf3mc/report.json` |
| 技能 embedded owner/搜索/生命周期 | 41/41,`.tmp/skill-picker-embedded-Kh6dnM/report.json` |
| 连接器并发、取消、owner 与实际回调 | 41/41,`.tmp/composer-connectors-uPGtf6/report.json` |
| 既有专家状态回归 | 50/50,`npm run test:expert-usage` |
| 能力中心完整应用及重启 | PASS,`.tmp/capability-flows-ywE8CW/report.json` |
`npm run test:omp`、`test:conversation-ipc`、`test:conversation`、`test:chat` 已通过。最终源码恢复 `--check` 为 80 bodies / 5 sources / 4 outputs 一致。
为解决原版截图耗尽共用 30 秒预算而导致原生场景提前取消,修复了隔离 REA `CdpElectronVisuals.js`:基础采集和动作各自有界,仍继承上级取消,清理仍限 5 秒。自身 fixture 9 项预算/取消回归通过;20 个模块完整性及全局 REA 未修改检查通过。不是绕过 REA 的采集入口。
实际用户窗口更新后 PID 57576,原选中会话恢复;实窗验收发送 0 条消息、修改 0 次模式、修改 0 个连接器。窗口里已有历史连接错误不代表本轮产生了新错误。
## 尚未等价的内容
本轮完成加号主体及主要本地交互接线,没有完成全状态像素和动效 1:1 验收。专家/技能内容仍复用已恢复的旧 picker 并嵌入当前 cr 侧层,当前 cr 内容的所有状态尚未全部恢复;原云知识库/腾讯文档/ima/乐享及在线目录、授权未接入。引用文件当前是实际根目录前 100 项,尚不等同原递归搜索及 applications.yaml 规则。
专家系统层角色、maxTurns、原 CLI Agent/plugin 生命周期差异延续上一轮,见 [专家使用逻辑对齐](专家使用逻辑对齐-2026-10-16.md)。这些限制不能由本轮菜单通过推断为已解决。