Files
ycode/docs/19项验收问题汇总-2026-10-17.md
T

128 lines
14 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.
# 19 项验收与问题汇总(2026-10-17)
> 最新:A01~A12 已落实本轮功能修复,并完成最终 21 个专项复验;详细范围、报告和限制见[修复记录](19项问题修复记录-2026-10-17.md)。本文保留初次审查发现及其历史证据,不应把下方修复前的问题描述重新计为当前未修项。
## 范围与结论
本轮由主上下文协调三个子 agent,审查复刻待办清单 01~17、19、21 共 19 个条目。主上下文负责构建、串行运行专项脚本、复核关键源码及问题分类;子 agent 按模块审查实现、测试有效性和既有 REA 证据。
安装中心、定时任务、资料库、更多中的项目继续只记录,不纳入本轮拆解。云端服务、子代理调度,以及用户明确不复制的外跳链接不列为本轮应修 Bug。三档消息时间和仅保留浅色/深色是用户约定,不回退成原版默认行为。
**当前不能验收为完整 1:1。** 最新构建及大部分专项通过,但发现现有脚本没有覆盖的业务缺陷、测试维护问题和原版证据缺口。下列结论区分源码确认、实际执行、静态风险与待取证状态。
首轮子 agent 阶段负责验收与问题收集。随后按用户要求改为主对话规划、agent 并行修复,主对话集成并统一运行最终验证;修复状态以最新修复记录为准,原版 1:1 未验收项不因功能修复自动完成。
## 分组报告
- [对话与侧栏:01~07](验收问题收集-2026-10-17-对话侧栏.md)
- [发送与设置:08~13](验收问题收集-2026-10-17-发送与设置.md)
- [记忆与其余条目:14~17、19、21](验收问题收集-2026-10-17-记忆与上下文.md)
各报告保留复现前提、文件行号、已有原版 Evidence、测试盲区和下一步验证方法。主审已将原版行为未知项、源码风险与已确认缺陷分开,并下调没有高影响证据的问题严重度。
## 优先问题
以下问题由当前源码复核确认,除特别说明外尚未新增完整 UI 复现。现有专项通过不覆盖这些条件。
| ID | 优先级/分类 | 条件与影响 | 代码位置 |
| --- | --- | --- | --- |
| A01 | P1 业务缺陷 | 在独立任务窗口发起对话,`chat:event` 仍只发往主窗口。发起窗口收不到流式增量和终态;主窗口没有对应运行记录又会丢弃事件。 | `src/main/index.ts:168`、`src/main/ipc.ts:628`、`src/main/ipc.ts:737`、`src/renderer/src/stores/chat.ts:406` |
| A02 | P2 业务缺陷 | 备用内核重建第二轮历史时遗漏 `message.quotes`,第一轮已引用的表格不再进入上游历史。 | `src/main/ipc.ts:772`、`src/main/ipc.ts:816` |
| A03 | 已修复(YCode 回归) | 创建成功后首回合启动失败时,先检查后端会话与消息、后台运行及缓冲事件;仅在确认无持久化消息且无后台回合时删除空会话并回到真实新任务,否则保留真实失败会话。迟到失败不能覆盖较新的任务选择。 | `src/renderer/src/stores/chat.ts:320`;`scripts/chat-store-regression.ts` |
| A04 | P2 偏好误写 | 空配置首次只切换“对话记忆”,会把未操作的“本地记忆与技能”从默认关闭写为开启。归一化默认值与声明默认值不一致。子 agent 已以纯函数复现;没有数据丢失证据。 | `src/shared/memory.ts:30`、`src/shared/memory.ts:35`、`src/main/memory-settings.ts:34` |
| A05 | 已解决(YCode 范围) | 已在任务分组标题增加“已归档”入口;弹窗仅列 `archivedAt` 有值的任务,支持恢复、查看、空间分组恢复、失败重试和重复点击保护。原版弹窗逐像素证据仍缺。 | `src/renderer/src/components/ArchivedTasksDialog.tsx`、`src/renderer/src/components/Sidebar.tsx`、`src/renderer/src/components/task-confirm-dialog.tsx` |
| A06 | P2 交互缺口 | 编辑带产物的消息直接回退文件,没有原版既有源码/词典所描述的回退选择;回退弹窗也没有“不回退产物”分支。本轮没有新运行原版。 | `src/renderer/src/components/ChatPane.tsx:251`、`src/main/ipc.ts:663`、`src/renderer/src/workbuddy/conversation/rewind-labels.ts:19` |
| A07 | 已修复(YCode 回归) | 菜单优先消费 Escape,其次由焦点位于工作台内且处于全屏时退出全屏;事件被阻止继续冒泡,不再同时触发全局停止生成。原版同组合状态的 REA 证据仍未取得。 | `src/renderer/src/workbuddy/workbench/escape-action.ts`、`src/renderer/src/workbuddy/workbench/SourceWorkbench.tsx`;`scripts/workbench-escape-regression.ts` |
| A08 | P2 统计准确性 | 目录扫描超过条目/时间预算后返回 `partial:true`,界面仍把扫描到的字节数显示为完整统计。 | `src/main/general-settings.ts:80`、`src/main/ipc.ts:418`、`src/renderer/src/components/GeneralSettingsPanel.tsx:173` |
| A09 | P2 错误反馈 | 打开目录没有检查 `shell.openPath()` 的错误字符串,目录不存在等失败无法反馈到界面。 | `src/main/ipc.ts:444` |
| A10 | P2 同步缺口 | 欢迎语设置只派发当前窗口的自定义事件,订阅没有监听另一 BrowserWindow 的 storage 事件;已挂载的流式状态栏缺少可靠的即时刷新通知。实际可见延迟取决于其他重渲染。 | `src/renderer/src/personalization-prefs.ts:25`、`src/renderer/src/personalization-prefs.ts:32`、`src/renderer/src/workbuddy/conversation/StreamingFooter.tsx:110` |
| A11 | P2 展示一致性 | 默认人设显示为对回复生效,但等于默认值时不进入个性化请求片段。这是既定实现选择,UI 与实际注入值不一致;是否由其他内置提示补足尚未证明。 | `src/shared/personalization.ts:113`、`src/renderer/src/components/PersonalizationSettingsPanel.tsx:278` |
| A12 | P2 能力校验 | 部分没有 `nativeEntryId` 的旧消息仍可进入编辑器,用户修改提交后才被后端以缺少原生分支拒绝。 | `src/renderer/src/components/MessageBubble.tsx:79`、`src/main/ipc.ts:667` |
其他缺口或风险没有混入上述生产缺陷:
- 备用 Chat Completions 没有解析上游 `usage`,属于已确认的功能缺口;子 agent 用受控 SSE 纯测试确认只输出 text/finish。
- 用量只按会话保存,切模型后立即换分母,旧用量样本没有模型来源标记;列为准确性风险,未新增真实 UI 复现。
- 自定义快捷键保存/删除/恢复、富文本编辑和文件修改过程没有接入,界面已禁用或说明限制。
- 账户菜单实际头部高度、五个占位图标仍有视觉差异;表格引用来源标题必须补原版宿主证据后再决定文案。
- detached HEAD 在后端检测到短 SHA、UI 保守隐藏,是当前实现限制;原版显示方式未知,不能据此判定为已确认的原版差异。
- 深色 native 窗口底色、浮层碰撞处理、首帧加载值列为风险;本轮没有观察到白闪或浮层越界,不宣称已经复现。
## 19 项验收状态
“当前范围通过”只指列明的用户范围与已有覆盖,不等于完整逐像素验收。
| TODO | 条目 | 当前结论 |
| --- | --- | --- |
| 01 | 任务操作菜单 | 归档回访缺口已解决并通过 25 项真实 Electron 专项;独立窗口事件仍待修复,菜单原版全状态像素仍缺证据。 |
| 02 | 表格引用 | 发现历史上下文缺失;已有草稿保留测试未构造非空草稿。来源标题和原版两态画面待采集。 |
| 03 | 编辑已发送消息 | 缺产物处理选择、旧消息可编辑性预检;错误映射和编辑器复杂输入未完整验收。 |
| 04 | 用户消息悬停时间 | 用户约定的三档格式通过;“昨天”不列 Bug。动画帧仍未比对。 |
| 05 | 用户消息回退 | 产物选择、逐产物 fallback、失败反馈和原版弹窗像素未闭环。 |
| 06 | 对话滚动条 | 浅色像素及跟随行为通过;原版深色/hover/周边控件仍缺证据。 |
| 07 | 侧栏最下一行 | 核心浅色布局通过;窄态、深色原版画面、头像与 mock 数据仍有边界。 |
| 08 | 新任务切页与占位 | 主体通过;创建成功后的启动失败状态已修复并有回归;多阶段准备及准备阶段取消尚未闭环。 |
| 09 | 账户菜单 | 指定内容和导航通过;头部实际几何、图标路径仍有差异。账号服务不纳入本轮。 |
| 10 | 通用设置 | 已接功能通过;部分统计和打开目录错误有缺陷;系统副作用未纳入自动化。 |
| 11 | 外观主题 | 浅深稳定态和同步通过;首帧、过渡帧与独立窗口/内容块全表面待验收。 |
| 12 | 快捷键 | 页面及部分真实动作通过;Escape 工作台组合冲突已按本地优先级修复并有回归,多数 supported 行仍没有动作级测试。 |
| 13 | 个性化 | 页面与离线拼装通过;默认人设一致性、跨窗口通知和原版注入层级仍需处理或补证。 |
| 14 | 记忆与进化 | 页面专项通过,但纯函数审计发现默认偏好误写;慢保存、失败与弹窗原版像素未闭环。 |
| 15 | 智能体团队管理 | 偏好持久化等当前范围通过;首帧状态和键盘/失败路径待验收。子代理调度不纳入本轮。 |
| 16 | 移除助理与设备连接 | 当前范围通过;导航专项旧预期需要维护。 |
| 17 | 移除数据管理与应用管理 | 当前范围通过;不再依赖数据管理承接归档,归档入口由任务分组标题提供。 |
| 19 | 关于与获取帮助 | 当前约定范围通过;获取帮助深色和无跳转动作测试仍需补齐。 |
| 21 | Git 与会话上下文 | 正常分支、OMP 用量和浅色主体通过;备用 usage、边界状态、浮层、窄态及分类统计未完整验收。 |
## 实际执行与测试维护问题
- 主上下文 `npm run build`:通过,包含 typecheck。
- 主上下文 `npm run test:conversation-ipc`:通过。
- 子 agent `npm run test:personalization`:通过。
- 全工作树 `git diff --check` 未通过:既有 `ipc.ts`、`sessions.ts`、`Sidebar.tsx`、`types.ts` 的未提交修改含行尾空白/文件末空行;本轮没有修改这些业务文件,未顺手清理。
- 主上下文串行执行 19 个专项脚本:17 PASS,2 FAIL。
- 18 个结构化报告共执行到 585 条检查,其中 582 PASS、3 FAIL;Git 独立脚本另有 6/6 PASS。上下文脚本在后续阶段超时,未把没有执行的断言算入通过。
- 运行日志:`.tmp/audit19-20261017-165014/`;汇总:`summary.json`;每个专项的隔离目录和原报告路径均在汇总内。
| 脚本 | 本轮结果 | 限制/问题 |
| --- | --- | --- |
| `verify-task-menu` | 42/42 PASS | 独立窗口只验 URL,没有发起对话。 |
| `verify-task-running-menu` | 21/21 PASS | 运行中归档/删除的受控场景。 |
| `verify-quote-table` | 48/48 PASS | chat:send 桩不覆盖两回合上游历史;草稿为空。 |
| `verify-user-message-edit` | 67/67 PASS | 缺失败、缺原生分支及产物选择场景。 |
| `verify-conversation-scrollbar` | 24/24 PASS | 当前测试范围内的几何、像素、流式跟随。 |
| `verify-sidebar-footer` | 29/29 PASS | 不代表原版所有主题/宽度像素通过。 |
| `verify-new-task-switch` | 30/30 PASS | 失败用例发生在创建会话前,未覆盖 A03。 |
| `verify-account-menu` | 64/64 PASS | min-height 和图标盒子不能证明真实高度和 SVG path。 |
| `verify-general-settings` | 43/43 PASS | 系统集成隔离;无大目录截断或打开目录失败。 |
| `verify-appearance-settings` | 21/21 PASS | 稳定态。 |
| `verify-desktop-appearance` | 19/19 PASS | 像素比较是首页机器人局部 ROI,不是整个界面。 |
| `verify-shortcuts-settings` | 32/32 PASS | supported 标记不等于所有键位实际执行。 |
| `verify-personalization-settings` | 29/29 PASS | 没有验证主窗口活跃流式内容同步。 |
| `verify-memory-settings` | 24/24 PASS | 没有验证只改第一项时第二项不变。 |
| `verify-agents-settings` | 17/17 PASS | 没有加载首帧/失败/键盘全路径。 |
| `verify-settings-nav` | 16/19 PASS,脚本 FAIL | 仍期望 memory 禁用,3 个断言陈旧;不是导航业务回归。 |
| `verify-about-help-settings` | 15/15 PASS | 获取帮助深色及点击无外跳尚未单独断言。 |
| `verify-git-branch` | 6/6 PASS | 检测模块通过不代表所有状态的 UI 已验收。 |
| `verify-composer-context-info` | 前 41/41 PASS,脚本超时 | 仍等待旧 `.segmented`,现为 `.appearance-card`;后续深色段未执行。 |
建议先维护两处陈旧脚本与关键前提不足的用例,再按 A01 → A02 → A04/A05 → 其余交互及视觉差异推进,防止再次用相同的通过结果覆盖未测试路径。
### A03/A07 修复后的最终验证
- `npm run build`:通过,包含主进程、preload、renderer 与 typecheck。
- `npm run test:chat`:通过;新增创建成功后发送拒绝、持久化消息保留、清理失败保留、早到后台事件阻止删除、迟到失败不覆盖新任务、模型切换清除旧 usage、回退选项透传等断言。
- `npm run test:workbench-escape`:通过;纯逻辑模块覆盖 IME、菜单、全屏、普通焦点和非 Escape 键。
- `node scripts/verify-new-task-switch.cjs`:真实隔离 Electron / preload / IPC / renderer、真实 OMP 与受控本地上游场景 PASS,30/30;报告 `.tmp/new-task-switch-tifYSS/report.json`。
- `node scripts/verify-shortcuts-settings.cjs`:真实 Electron PASS,32/32;报告 `.tmp/shortcuts-settings-Ih8soB/report.json`。
这些结果证明当前 YCode 修复路径,不证明 WorkBuddy 在“生成中 + 工作台全屏 + Escape”和“创建成功后发送失败”两个组合状态下采用完全相同的行为。上述两项仍需正式 REA 运行时对照后才能计入原版 1:1 验收。
## 原版证据与限制
本轮复用各模块文档中既有 WorkBuddy 5.8.2/5.8.3 的 REA 证据,没有重新读取原版安装包或绕过 REA 查看实现。具体版本、Evidence ID 和覆盖范围见三份分组报告及原待办清单。
本轮主上下文经 REA `list_electron_targets` 请求已知 `http://127.0.0.1:9223`,返回 `provider_unavailable`,原因为 `endpoint_unreachable`。这只证明该已知端口当时不可达,不能推断其他端口或整个 REA 能力不可用。没有重启或修改 WorkBuddy。
同状态像素、动画帧、原版未观察状态和提示词层级仍需后续经 REA 补证。历史静态源码、计算样式、本地专项与 OMP 通路通过,均不等于完整 1:1 验收。