Files
ycode/docs/源码级续对齐-2026-10-15.md
T

57 lines
7.4 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-15.md)。已补 REA 截图、布局和 SVG 能力,并接入选定原版 CSS;下文为此前阶段记录。
本轮继续还原已有 REA 证据中的客户端实现。以下是源码分支恢复、工程集成和本地验证结果,**不是完整 WorkBuddy 1:1 验收**。
> 最新:已通过本地修复版 REA 实际取得 64 份当前加载的 CSS 正文(5,946,566 字节),读取失败 0、无截断。采集入口、Evidence、原包比对差异与范围见 [REA CSS 采集修复](REA-CSS采集修复-2026-10-15.md)。下文工程实现记录保留,不代表这些新 CSS 已全部接入 YCode。
## 证据与范围
WorkBuddy 5.8.2 / Electron 37.10.3;ASAR SHA-256 `035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`。本轮只处理既有 REA 导出 `.tmp/rea-runtime-scripts.json`,不直接读取原版安装目录、不连接原版 CDP、不执行捕获的脚本。
REA Evidence:`ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb`。
| 原版脚本 | SHA-256 | 本轮观察 |
| --- | --- | --- |
| `src-Cng7axVa.js` | `5ce8649e3bfac10aec1e63afee726ab45abaafc5aa7cc372892e20f3eba18c8b` | ArtifactContentRenderer、自定义内容读取、Diff 内容恢复、HTML 预览分支 |
| `src-0FGg1seX.js` | `f2c6dbae949041b4e2bb456e8a23ae2837f2d7893ac24bf471485f77c7b15178` | 补丁依赖、计划/任务/思考图标、复制格式 |
| `i18n-Cxy1Uuvv.js` | `1c7223b12cb9e4e4bcb448563c6bb707fc81fda1bff17c7e44e07f1f12c94dda` | 简体中文与英文词典;默认 zh-cn,原版可由 initLocale 改选 |
| `preview-size-limit-BPMUeizf.js` | `a35b8b9877f689a4e0ac3d346efc58e7e4e71bb70a1123766ebc596416123c0a` | HTML 默认 50 MiB、达到上限即进入过大分支 |
| `main-content-core-Dlaq72qt.js` | `998ada4969d1bf7af8d2dace15c0bc2a3ca5bf0ee9cf941823d85a66d6967991` | 上下文、文件、图片 content block 与元数据 |
`npm run recover:artifact-reference` 校验摘要,以 Babel AST 分拆指定定义到 `.tmp/rea-artifact-recovered`,manifest 保留 UTF-16 范围。`npm run recover:conversation-labels` 从已采集字典选择 20 条英/中文原文,生成工程里的类型化字典。两者只处理 REA 导出。
## 工程变化
| 项目 | 已接入内容 | 仍有差异 |
| --- | --- | --- |
| 产物分发 | 计划、概览、自定义 Markdown、文件 Diff、HTML、媒体及 code/diff 的分支优先级;task 返回空,扩展/子代理通过独立 renderer 契约 | 子代理详情、扩展应用、Office、音视频等 renderer 未完整接入 |
| 自定义 Markdown | URI/缓存/读取优先级、加载与错误状态、按 URI 更新缓存;切换后丢弃迟到结果 | 原版 Lexical 编辑、自动保存、详情工具栏仍未还原;当前展示只读 |
| Diff 内容 | 缓存优先、读取当前文件后反向应用统一补丁、失败时解析保留片段;多 hunk、偏移查找、CRLF、末尾换行处理 | 当前 Diff UI 为本地双列适配器,**不是原版 PierreDiffEditor**;异常补丁全边界未对照执行原包 |
| 文件工具入口 | 识别宿主实际 `path` 参数及 success 状态;使用已持久化的完整 oldContent/newContent 构造产物,保留创建/清空文件 | 参数里的替换片段不充当完整文件;仅有片段时继续走文件读取 |
| 宿主读取与下载 | 新增完整文本读取 IPC,保留工作目录/符号链接边界及 2 MiB 上限;修复 text/markdown 被下载格式校验拒绝 | 原版 agent URI、云文档读取协议未接通;2 MiB 是当前宿主限制,与原版媒体限额不同 |
| HTML | 本地文件读取后 srcDoc 预览、原版 fallback 的 sandbox 能力列表、50 MiB 大小判断 | 原版 URL 解析、webview 分区、编辑/刷新/发布/分享工具栏仍未等价;本地读取先受 2 MiB 限制 |
| 富消息复制 | 将 YCode 的文本、图片、附件、资源投影为已观察到的 content blocks;恢复 Context 摘要、phrase HTML、版本化自定义 MIME | YCode 分离字段到 content blocks 的映射属于适配;任意连接器块及输入框富粘贴全流程未完整还原;浏览器降级路径可能只写标准 MIME |
| 图标与文案 | 计划、任务、思考、下载、状态、审批及展开/收起使用已采集 SVG;接入已确认中文原文,移除无源码依据的 Current/Task completed 标签 | 未恢复这些组件全部 CSS、tooltip 和动效;等待标记沿用原版空 span,本地缺少其 CSS;新增字典尚未恢复全应用 locale 初始化 |
PlanUpdate 的 `confirmed/finished/analyzed` 在原版组件中直接写为英文,未用计划编辑器的中文文案替换。图标按钮的辅助名称属于本地无障碍适配。
## 验证
已通过 `build`(含 typecheck)、`test:artifacts`、`test:conversation`、`test:resources`、`test:conversation-ipc`、`test:markdown`、`test:media`。
- Diff 回归:多 hunk、行偏移、CRLF、无末尾换行、无效缓存回退;完整写入投影覆盖新增、清空和空文件,拒绝把参数片段当作文件版本。
- 加载回归:URI 必需、缓存跳过读取、强制刷新、读取失败回退;类型分支优先级及 HTML 大小边界。
- 宿主回归:真实 IPC + 临时工作目录;完整读取 1000 行、拒绝越界/符号链接/二进制;Markdown 通过实际下载 handler 写到临时文件并核对内容。
- 浏览器使用 `verify-ui.mjs?fixture=artifact-source` 的测试数据和测试桥,验证文件工具→完整 Diff、自定义 Markdown、缓存、HTML、读取失败、超时和空文件;300 ms 迟到读取没有覆盖随后打开的缓存预览。浏览器错误日志为空。
- 桌面布局使用 YCode 默认窗口宽度 1335;列宽为 280 / 408 / 647。截图 `.tmp/artifact-source-alignment-2026-10-15.png` 是 YCode 测试页,**没有原版同状态像素对照**。
## 后续差异
历史阶段登记了原版组件 CSS 采集未知项 `unk_7501f666de6716fa984de8a3135164da05d580ac8aa523e2770460329c892b39`。现已用本地 REA 修复打通已覆盖样式正文,原先“当前组件 CSS 正文无法取得”的阻塞不再适用;这是项目状态更新,没有伪造原 REA 会话未知项的关闭记录。未加载样式、两个运行时/原清单摘要差异及截图仍有独立未知项。
修复前的调试路径复核纠正了阻塞归因:调试连接正常,不应把完整 ASAR 提取失败当作调试模式无法提供 CSS 的证明。REA `list_electron_targets` 再次确认 WorkBuddy 5.8.2,Evidence `ev_ce09402c0eef01ab6d3f60d2db5cc598d6edc9715fcde64ed35d6acebe880d06`。当时只读检查 REA 6.5.0 的 `CdpElectronInspection.js`,资源采集使用 `Page.getResourceTree`,仅返回路径/MIME/大小;DOM 快照的 `computedStyles` 为空,安装实现未发现 CSS 正文读取调用。具体缺口是该版本 REA 未暴露 CSS 正文导出。那次复核未修改 REA,记录位于 `.tmp/rea-css-debug-check-2026-10-15.json`;随后用户要求先解决采集问题,本次已在独立副本实现并实测 CSS 采集,详见上方修复记录。
下一阶段仍需补完整编辑器与产物媒体依赖、富输入粘贴、原版长列表/滚动、组件样式和相同状态运行对比。云端服务、子代理调度、原生宿主与系统沙箱保持独立未决项。此前八类清单见 [对话区域八类对齐](对话区域-八类对齐-2026-10-15.md)。