Files
ycode/docs/长任务进度-2026-10-16.md
T

78 lines
15 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)
> 能力中心最新:已实现三页入口、本地技能完整生命周期、自定义 MCP 管理/真实 SDK host,以及 OMP/备用 Gateway 技能与连接器调用。完整应用14项+新进程恢复6项通过,最终版本已更新当前用户 YCode、原会话恢复。专家包创建/激活及云目录/授权仍待接,全状态1:1未完成;具体源码证据、原生几何、验证记录和边界见 [能力中心与本地能力接入](能力中心与本地能力接入-2026-10-16.md)。
用户授权:持续推进至可以修改模型、创建空间、正常对话;UI 1:1。必要时允许通过 REA 在 WorkBuddy 发测试消息。本轮没有向 WorkBuddy 发送消息,也未使用其模型服务。
> 最新:用户已更新当前模型为 `gpt-6-luna` 和完整 `/v1/responses` 地址。已修复连接测试、OMP 和备用 Gateway 的 Responses 协议识别;**真实用户上游连接测试与两轮对话、上下文回忆、磁盘保存已通过**,已返回原会话。此前 ECONNREFUSED 是旧配置历史结果,当前不再作为外部阻碍。详见 [Responses 协议与真实对话验收](Responses协议与真实对话验收-2026-10-16.md)。全 UI 1:1 仍未完整验收。
## 已接入的真实功能
- `models.json` 多模型注册表,旧网关配置迁移但不覆盖;安全存储密钥,CRUD/选择/未保存配置连接测试。编辑留空保留密钥。
- 每会话绑定 `workspaceId/cwd/modelId`;模型配置在每轮开始冻结并传入 OMP。独立不可变 OMP profile 不落盘明文密钥,仅使用子进程环境。
- `workspaces.json` 真实目录创建/导入/重命名显示名/移除注册;丢失目录报错。侧栏真实任务分组,新建任务先草稿、首条发送才落盘。
- 900×680 独立模型设置窗口,表单恢复固定源 CSS;首页/模型菜单/空间弹窗/右工作台继续对照。
- 导入历史 6 次取消修为 cancelled、429 保留 error;真实 raw 工具字段保留,别名只在展示层映射。启动迁移幂等并保护用户编辑。
- 右工作台按会话独立标签/资源请求/关闭/重排,文件/图片/产物/历史变更可预览;实际 21 引用去重得 13 产物,不硬编码结果。
- 首页办公/开发/设计三场景、真实模型选择、240×341 空间菜单及搜索/创建/导入/不使用空间;取消和再次选择同一路径返回不同结果,异步回调不串草稿。
- 真实 WebContentsView 浏览器及 Windows ConPTY/xterm 终端;标签/会话所有权、输入、导航、目录、关闭和进程释放。修正 node-pty 在生产构建中被内联后原生加载路径失效的问题。
- 右栏恢复原 12 个布局函数、7 项常量和 16 条分栏动效 CSS;Grid drawer 15 条源 CSS。普通栏360、资源初开可用区域半宽、宽度拖动与记忆、1000/640 阈值及24px滞后、mobile600、打开200ms/关闭150ms、抽屉300ms、全屏 portal及 reduced-motion 宿主适配。
- 已在真实用户 YCode 注册当前项目目录为 YCode 空间,并仅为此前未绑定 cwd 的“开始新会话”导入副本绑定同一目录。原版 REA JSONL 的 cwd 支持此绑定;未改变原版 WorkBuddy 或导入副本消息内容。
- 对话顶部栏已换原版源 DOM/CSS/8个SVG;标题可编辑保存、当前对话全文搜索及导航、高亮和右栏按钮条件已接真实回调。云端分享仅保留诚实的未接入反馈。
- 首页已替换为实际运行时黑猫完整 PNG,而非默认灰猫或截图片段。REA 已加载资源导出:`ev_474129797ce3ab73eaaab2cd41247653e7f128c3b89b598158b57b74e1f17e88`,SHA `2713ed5bbf1288d56ebeaca49bfb0d622c967914ab9c98955cc995932049e7e8`,13,426 bytes,180×180;保留原140×140图像、120×120 clip布局。
- 主窗口/独立设置窗口共用持久化主题;重用设置窗口时能从外观页正确导航回模型页,关闭重开仍保持主题。
- 首页模型菜单“自定义模型”现在按原版 `openSettings('models','new')` 直接进入添加表单;原生窗口复用及一次性 intent 消费已接入。
- 普通文本/代码预览已替换 `<pre>` 为原版随包 Monaco、SearchWidget、主题和语言资源,共101个固定 REA 资产。font13/line20、readonly、wrap、行号、10px滚动条及完整全文读取;同文件450→20→无range保持同一model,仅替换/清除一组定位装饰。
- 对话头像已替换原版 REA 运行时10节点SVG;最后结束的assistant消息增加原版“查看所有产物”按钮,真实去重计数、复用overview、保留已打开文件标签;右栏产物分组箭头恢复原SVG方向。取消提示恢复原15px/20px零margin规则。
- Markdown表格恢复源28条规则、scroller/inner壳、inline-code结构与横向wheel边界;原三行高度42.75/44.25/43.75,70项计算样式及几何对齐。
## 已验证
- `npm run test:chat`、`test:conversation-ipc`、`test:sessions`、`test:omp-session`、`typecheck` 通过。
- 子任务 `test:workbuddy-import`、`test:conversation`、模型注册表及 workbench focused 回归通过。
- `node scripts/verify-local-workflows.cjs` 真 Electron/preload/IPC/OMP + 本地受控 OpenAI 兼容上游通过:两空间真实创建、同名文件隔离读取、同会话修改模型后下一请求使用新模型、密钥仅子进程环境、设置窗口与添加表单。证据 `.tmp/local-workflows-tjEdQK/report.json`,含两张实际窗口图。此项不等于真实供应商或 WorkBuddy 像素验收。
- 空间创建框 fixture Electron 对照固定 REA:430×203 内部区域,排除 1×19 闪烁光标后 87,271 像素零差异。只覆盖弹窗内部;报告 `.tmp/workspace-ui-regression/report.json`。
- `node scripts/verify-product-flows.cjs` 已通过真正的生产 DOM 控件→preload→IPC→OMP→受控上游:添加/测试/编辑模型(留空保留密钥)、创建两个空间、同名文件隔离、两次对话、未发送草稿、进程重启持久化。最新header版本报告 `.tmp/product-flows-YxInqR/report.json`;不是原版像素验收或真实供应商通过。
- `node scripts/verify-panel-integration.cjs` 59/59 通过,`.tmp/panel-integration-rsKCNo/report.json`;29 DOM 快照、4 PNG、零 renderer errors。覆盖上述分栏/抽屉/全屏/快速切换、真实浏览器与 PowerShell 入口、切会话保留、关闭tab/删除session释放及移除布局记录。启动前两会话为明确 fixture,运行时 IPC/文件/宿主均为生产实现。
- `node scripts/verify-home-style-parity.cjs`:7个chips,PPT宽81.234375,标题277.5×42及纯黑,真实点击后的原版focus边框/阴影逐项相等;`.tmp/home-style-parity-20261016/`。侧栏被用户调整后的4.25px宽度差属于待统一比较状态,不能据此宣称整页像素通过。
- 空间菜单11项原生事件检查通过,240×341及搜索/滚动区/底栏相对几何与原版相同;`.tmp/source-workspace-native-report.json`。目录选择结果回归使用真实handler/preload/store/临时文件系统,OS picker返回由stub提供,未宣称驱动系统对话框。
- `node scripts/verify-chat-header-integration.cjs` 31/31 通过:真实IPC/磁盘标题保存、Escape不保存,中文/Latin忽略大小写匹配、上一/下一/快捷键滚动、两种高亮色、Esc及换会话清理、右栏按钮显隐;`.tmp/chat-header-integration-axOrBH/report.json`。
- 顶部栏按原活动GPU环境校准:可见窗口、SwiftShader/软件合成、同 Page 截图 API。标题1920、搜索按钮1056、搜索框9560(仅光标mask)、编辑框4896像素各为零差。完整顶部栏67264像素还剩48差(share21 max15/panel27 max5),尚未确证SVG边缘原因;不放宽容差。报告 `.tmp/chat-header-native-swiftshader-20261016/{report,pixels}.json`。
- `node scripts/verify-model-capabilities.cjs` 22/22 通过:真实OMP接受auth:none且无Authorization、禁tools请求不带tools、禁images真实PNG转省略提示、8192 context及1234 maxTokens由loader读取并实际发送max_completion_tokens=1234,真实两轮replydone。`.tmp/model-capabilities-7kgEO8/report.json`。reasoning effort与customProtocol执行不在此通过范围。
- `node scripts/verify-desktop-appearance.cjs` 14/14 通过:真实App/设置window主题同步、复用导航、关闭重开、浅色恢复;原可见SwiftShader环境机器人ROI `[1085,286,1205,364]` 9360像素全部相同,容差0/排除0。`.tmp/desktop-appearance-HdhYYj/report.json`。生产硬件GPU截图该ROI有1916像素max11差异,故验收必须固定原版软件渲染环境;没有强制更改工程默认GPU模式。
- `npm run test:rea-css` 通过全部CSS/视觉/probe/选中资源/MCP/19模块完整性契约;全局REA文件保持不变。新增明确opt-in的已加载IMG导出(最多4个,单个2MiB/总8MiB,PNG/JPEG/GIF/WebP,失败unknown,不读取cookie/header,不做HTTP下载或renderer evaluate)。
- 最新整合模型/Monaco版本:`verify-product-flows.cjs` 真生产DOM→IPC→OMP受控上游及进程重启均通过,`.tmp/product-flows-S9MSkd/report.json`。新增直接添加、复用设置窗口、取消后普通导航不重弹;添加/测试/改模型、两空间、两轮回复及持久化均通过。旧验收的 `<pre>` 和旧下拉触发器选择器已更新为新生产组件;未放宽功能断言。
- 最新右栏整合:`verify-panel-integration.cjs` 66/66,`.tmp/panel-integration-Capd62/report.json`,renderer errors=0。新增产物去重计数、无产物不显示、真实overview打开/折叠、保留文件标签、重复点击复用及Monaco入口。
- `verify-source-code-preview.cjs` 21/21,`.tmp/source-code-preview-Su4EM3/report.json`;500行全文、真实TypeScript彩色token、搜索、range450→20→清除且同URI、深浅主题、两空间同名文件及真实读取失败回退。HTTP请求及renderer errors均为空;101资产/9原体hash回归、build/typecheck通过。这不是原版代码区逐像素验收。
- REA新增有界单行文字输入:仅可见启用text/search INPUT,通过原生focus/选择/删除/insertText,不提交、不读取原值、不恢复文字。schema/禁用/只读/密码排除、空值清除及公开CLI自身Electron窗口原生input事件验证通过;可用于原版搜索取证。`test:rea-css`及19模块完整性再次通过,全局REA未改。
- 模型Select源码恢复30/30原生组件检查通过。恢复旧Floating UI裁切祖先算法,供应商popup592×306、模型popup592×216均精确,无高度硬编码。REA原版中文/英文/无结果/清空/minimax搜索已取证并恢复首页;CUSTOM整块71,040像素、无结果整块56,832像素均零差异,无遮罩/容差。见 `docs/source-select-2026-10-16.md`,含原体SHA、Evidence和复现命令。
- 表格严格像素仍3330/58692差异,不能宣称完成。已完整复现原7祖先bounds、scrollTop15247、大translate11220及GPU feature_status;四种层结构ROI SHA完全一致,未证实缺wrapper为字形根因。关闭LCD仅负对照,不作为生产配置或原版启动参数证据。详见 `docs/table-layer-pixel-diagnosis-2026-10-16.md`。
- 产物footer184/184几何/样式/自身原生交互检查通过;单一文本节点修复了1/64px宽差,button/actions/chevron/SVG矩形及168项计算样式精确相同。严格ROI3614像素仍有1018文字栅格差异,SVG区域零差异,故此按钮也未标整块像素通过。见 `docs/source-artifact-link-2026-10-16.md`。
- 最终整合build/typecheck/conversation回归通过,运行中的真实YCode已更新并返回导入副本+产物overview,实际“查看所有产物 (13)”与右栏13项一致,页面alert=0。实际模型菜单直达900×680添加表单也已截图确认,未修改用户既存模型端点或密钥。
## 旧配置的外部阻碍与修复(历史,当前已通过真实对话)
已使用真实 YCode UI 向项目空间发送最小验收消息,保留在独立任务“仅回复:YCode 对话正常。”中。该模型 API 为远程内网服务,非本机网卡地址;TCP 连接约2秒返回 `ECONNREFUSED`,已存模型连接测试同样失败。未修改用户端点或密钥,没有用受控响应冒充成功。已向用户询问恢复现有服务或换可用自定义模型。
排查还修复了一个 YCode 缺陷:OMP assistant `message_end.stopReason=error` 后仍静默 automatic-retry,旧适配器忽略该错误并一直显示 streaming。现在消费 provider error(兼容 `agent_end.messages`)、脱敏报错并 abort 停止重试;工具失败、取消、合法长 thinking 仍独立处理,没有首字硬超时。`test:omp`、focused provider-error 回归通过。真实新构建复验已经落盘 error、显示“Unable to connect...”且停止按钮消失;见 `.tmp/ycode-live-provider-error-after-fix.json`、`.tmp/ycode-live-provider-error-settled.json`。正常真实对话仍需可用上游;当前不能标为真实供应商成功。
## 原版新增 REA 证据
- 首页静态 DOM/CSS/画面:`ev_4fd56b4f30ca87b4d7012c80195becea384ffa95582b059558a16b8d871d57a8`,`.tmp/rea-home-static-20261016/`。
- 开发/设计/办公切换:`ev_dcf614287152ff2d723fb4ac89f60be7162ec7f446eb81c52e466fea69cba80a`,`.tmp/rea-home-scenes-20261016/`。
- 默认机器人精确资源:`ev_60a03f3376f0e0c04e16d12c7798e25401d1e697f33b39e4b5f7027794b09223`,PNG SHA `d164ac0e6e54438ea2a26a26e8ef622de3d911a674f55086d465ce10b011641d`,37,953 bytes。REA 根哈希校验的定向二进制资源导出已补,仍使用原 AsarArtifactReader;全局 REA 未修改。
## 待完成与限制
- 首页/模型菜单/设置左栏全状态像素检查仍未完成;provider图标及下拉已恢复源码,已有上方两状态零像素结果,暗色/完整动效/全部hover组合及实时provider目录差异仍需验收。
- 浏览器/终端宿主和右栏几何/状态已经接入并完成上述真App回归,但原版浏览器/终端逐帧像素、浏览器全部菜单、标签跨进程恢复、Markdown专用编辑/保存、Git 当前变更仍未完成。普通code原版就是readonly,本次未添加保存;当前2MiB读取上限与原版按类别上限不同,已打开model不监听磁盘外部修改。
- 分享云服务按用户要求暂后;搜索采用原生CSS Highlight保护React DOM,源inline radius/padding/glow仍有差异,当前仅搜索已渲染文本。
- 首页黑猫完整thumbnail已取得接入,VIDEO/hover动效尚未导出。旧120×78截图片段仅作参照,没有作为完整资源投产。
- 模型reasoning effort选择/customProtocol执行尚未完成,不能把表单字段保存或reasoning布尔元数据等同为这些功能已等价。
- 同轮三产物缺独立更新时间,现有 JSONL 无法确定原版排序;跨 request todo 去重、正文 spacing、历史 reasoning 契约未全部解决。
- 云服务、团队空间、子代理调度仍按用户之前指示暂后。
## 验收隔离修复记录
首次整体验收加载旧构建,测试数据短暂进入正常数据目录。已备份 `.tmp/qa-isolation-recovery/`,仅清除可归属该测试临时目录的两空间、两会话和 `local-one` 模型;保留原五会话及原 legacy 模型配置。验收脚本现强制独立 userData/sessionData,并在任何 IPC 写入前核对实际 `app.info().configDir`;OMP home 另行隔离。正常用户配置没有被测试上游替换。