feat: complete WorkBuddy parity and Windows release workflow
This commit is contained in:
1 parent
143516b3a8
commit
d5512df549
434 files changed
+54977
-1854
No files matched your search
@@ -0,0 +1,67 @@
|
||||
# 表格引用与附件样式核对(2026-10-18)
|
||||
|
||||
> 后续用户已授权实施,本轮修复与验证见[修复记录](表格与附件样式修复-2026-10-18.md)。下文保留修复前的核对结论,不代表当前实现。
|
||||
|
||||
## 结论与本轮范围
|
||||
|
||||
用户提供的两张截图确实反映了结构差异:原版是圆角输入框内的“表格图标 + 会话表格”短标签,YCode 是输入框外的 Markdown 摘要横条。文件、图片、文件/文件夹引用以及发送后的展示也尚未对齐。
|
||||
|
||||
本轮是核对与问题收集,没有修改业务代码、重启用户应用或调用模型。以前的表格引用专项通过只能证明当时实现的功能与选定 CSS 声明符合测试,不能证明选中了原版正确的渲染路径。TODO02 的输入态、发送态及组合验收重新打开。
|
||||
|
||||
## 证据与限制
|
||||
|
||||
- 用户原版截图:`C:/Users/Administrator/AppData/Local/Temp/codex-clipboard-5d262c85-84aa-4796-a383-21057ffec352.png`;用户 YCode 截图:`C:/Users/Administrator/AppData/Local/Temp/codex-clipboard-51238fe6-c4f4-4202-b9c7-47578d46d5d3.png`。截图本身不证明版本号、悬停、点击、上传中或失败状态。
|
||||
- 沿用已留存的 REA 证据,不直接读取 WorkBuddy 安装文件或连接目标协议。运行时脚本索引 `.tmp/rea-runtime-scripts.json` 的来源为 `ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb`,原有记录标注 WorkBuddy 5.8.3。
|
||||
- 上述索引内 `src-DbE1_mgM.js` SHA-256:`6c6ce63c93854783270e855572797d75e536e3b8d4548410e31fe9d147e1feb4`;`contexts-BMeWSUHk.js`:`5f35b7489b107e21ef452c8ee88a95265756f6fc444841eef869228bbc44768b`。本轮重新计算正文摘要,与 REA 记录一致。
|
||||
- 样式沿用既有 WorkBuddy 5.8.2 REA CSS 证据 `ev_377c8790468b3c67dad8577aabb327f98d3140659f0fffdbabfcff5a40cc9e94`,`src-CyXHA0IC.css` SHA-256:`a5e26b537bb50323aefbf25abddad52e288dd3868598be8d255d70886fe77cfe`。与稍后宿主脚本合用说明结构和声明;不把跨版本静态证据当作当前所有运行态的像素验收。
|
||||
- 表格菜单几何另有 `ev_38cca1ac66606ab07fb495035e3509f5c4d8ec3e5e2b74d0fdcfcfadb120da3b`,它不能单独证明“添加后显示了哪个组件”。
|
||||
- 本轮 REA `list_electron_targets` 请求原有 `http://127.0.0.1:9223` 返回 `provider_unavailable / endpoint_unreachable`,没有新采原版页面,也没有为核对而重启原版。原版当前悬停、图片预览、窄窗口、失败和编辑等实时画面仍未补验。
|
||||
|
||||
## 原版渲染路径已经查清
|
||||
|
||||
1. `installConversationMessageQuoteEvents` 的 table 分支调用 `createTableMessageQuoteReference`;中文 `messageQuote.tableLabel` 的值是“会话表格”。
|
||||
2. `createEmbeddedReference` 创建 `payload.displayBlocks`,其中 `buildEmbeddedDisplayBlock` 写入 `displayAsPhrase: true`、`displayAsContext: false`、表格 SVG、短标签、来源和表格 Markdown 快照。
|
||||
3. `InputBannerRail` 明确过滤掉 `displayBlocks` 全部为 `displayAsPhrase` 的引用。因此不能因为原版 bundle 里存在 `QuoteReferenceCard` 就让所有表格进入该卡片。
|
||||
4. 文件、图片和文件夹引用也生成短语内容块,由共同的标签渲染器显示。`createAttachmentBlock` 设置文件/图片图标和文件名;`createReferenceFileBlock` 设置文件/文件夹图标、`displayText: name`,完整路径保留在元数据。
|
||||
5. 标签渲染器根据类型、图标、只读态、处理状态和上下文选择样式。普通文件类标签命中 `._fileTag_1krka_111`:23px 高、100px 圆角、padding `1px 8px`、13px/500、21px 行高、14px 图标。短标签内部 gap 为 4px;正文内短语与独立上下文行还有不同的包裹和间距,不能只复制一个高度。
|
||||
6. 图片在标签上提供 `ImagePreviewTooltip`,图像预加载成功才展示预览,源码上限 300×300;不是直接把缩略图固定塞进标签。悬停移除会隐藏原图标,在同一位置显示关闭图标。
|
||||
7. 发送后,`convertUserFrame` 分开处理纯上下文块与用户内容块;`UserContentRenderer` 使用只读内容编辑器保留短语块。表格和附件不能统一迁到气泡外,也不能把表格改成普通文本引用图标。
|
||||
|
||||
## 已确认差异
|
||||
|
||||
| 项 | YCode 当前表现与定位 | 原版依据 / 应修方向 |
|
||||
| --- | --- | --- |
|
||||
| 表格输入态 | `ComposerControls.tsx:424` 统一选 `MessageQuoteCard`;引用在 `.cr-input-container` 外。`TableMessageQuoteAction.tsx` 把整个 Markdown 压缩进 `preview`。实测卡片 36px 高、圆角10,并带强调竖线。 | 使用表格短语标签,显示“会话表格”和表格 SVG,放进输入内容区;Markdown 仍作为完整引用载荷保存。 |
|
||||
| 普通文件 | `ComposerControls.tsx:430` 与 `composer.css:236` 自定义附件卡。实测 34px 高、圆角6、12px/18px,前方直接显示“文件”两个字,关闭按钮常驻右侧。 | 共用来源标签的文件图标、23px 高胶囊样式、13px 字体和图标位置的悬停关闭规则。 |
|
||||
| 图片 | `ComposerControls.tsx:433` 与 `composer.css:249` 使用24×24常驻缩略图,并沿用34px自定义卡;没有该标签的图片预览 tooltip。 | 图片图标与文件名短标签,加原版图片悬停预览;保留真实图片载荷及发送能力。 |
|
||||
| 资源引用与能力标签 | `ComposerControls.tsx:443` 使用另一套 `.wb-composer__resources`,实测32px高、圆角6、12px/18px、完整路径、没有文件/文件夹图标。`ChatPane.tsx` 的引用技能也使用此自定义资源样式。 | 将文件/文件夹/技能按各自类型接共同标签规则;名称、完整路径提示、图标、正文内位置分别处理。技能的所有交互态本轮未做原版运行验证。 |
|
||||
| 发送后与历史 | `MessageQuoteTag.tsx:37` 使用文本引用 T 图标和 Markdown 摘要,实测22px高/圆角6。`MessageBubble.tsx:75` 将附件放在气泡外;非图片只有文件名文本。 | 复用正确表格/附件短标签,按原始内容块组织用户气泡与只读态;保留来源跳转和附件预览。当前表格快照/来源已持久化,不应为修样式而丢失。 |
|
||||
| 混合布局及状态 | 表格、文件/图片、资源分别成行并都在输入框外,内容越多越抬高消息区域。附件 `stageFiles` 完成后才加入列表;处理中无逐项标签,失败为区域级文案。 | 对应原版内容区布局、折行和正文顺序;按文件保留 processing/failed 状态,以加载图标、`.7`透明度、失败颜色和提示呈现。当前运行画面的动效/错误色仍待 REA 补验。 |
|
||||
|
||||
现有 `textarea` 与分离的 `quotes / attachments / resources` 数组还能维持传输功能,但不能表达“文字中间插入引用”的光标位置及混合顺序。完整还原混排、选择、键盘删除和编辑恢复时,需要内容块编辑/只读投影;只把三组 div 移进边框不能算全部对齐。
|
||||
|
||||
## YCode 实际画面核对
|
||||
|
||||
本轮运行 `.tmp/audit-attachment-styles-20261018.cjs`,使用已构建 YCode 的真实主进程、preload、附件暂存和粘贴/资源引用链路,独立 userData/工作目录;未调用模型,历史消息为测试数据。
|
||||
|
||||
结果:退出码0、renderer错误0。五组状态:表格草稿、表格+文件、表格+文件+图片、混合资源浅色、混合资源深色。报告包含元素实际边界、是否位于输入框内、字体/行高/圆角/背景、图片尺寸与关闭按钮。
|
||||
|
||||
- 报告:`.tmp/attachment-style-audit-8rW9bB/report.json`
|
||||
- 浅色混合:`.tmp/attachment-style-audit-8rW9bB/mixed-references-light.png`
|
||||
- 深色混合:`.tmp/attachment-style-audit-8rW9bB/mixed-references-dark.png`
|
||||
- 历史完整页面:`.tmp/attachment-style-audit-8rW9bB/history-full-dark.png`
|
||||
|
||||
以上是缺陷复现和测量,不是修复结果,也不是两边同状态像素对比。普通文件、图片、资源的边界均测得 `insideComposer: false`。
|
||||
|
||||
## 后续修改与验收顺序
|
||||
|
||||
1. 修正表格引用的分支和标签数据:标签文案/图标与 Markdown 载荷分开,旧数据按 kind 恢复正确显示。
|
||||
2. 恢复共同标签组件与输入内容区布局,让表格、文件、图片、资源及技能使用有类型的渲染规则,包含悬停关闭、名称截断、路径提示和图片预览。
|
||||
3. 把发送后、历史重载及编辑态接同一内容块投影;保留本地附件路径、引用快照、来源、清理与重试逻辑。
|
||||
4. 接逐项处理/失败状态;验收多附件折行、长文件名、文字混排、浅深色、删除、图片预览及恢复。
|
||||
5. 修正旧 `scripts/verify-quote-table.cjs` 的错误视觉期望。其现有卡片36px/圆角10/强调条断言,以及历史标签包含 `| 项目 |` 的断言,正好把本次错误写成了“原版正确值”。保留真实引用内容、来源、草稿和 IPC 验证。
|
||||
6. 对原版已知证据可直接恢复的部分先实现;未知交互用 REA 补帧,记录版本和 Evidence ID,再做同尺寸同状态像素比较。
|
||||
|
||||
本轮只更新本记录、总清单状态及接手记录;未运行构建和业务回归,因为没有修改业务源码。主工作树的既有修改全部保留。
|
||||
|
||||
技能使用:沿用 `reverse-engineer-anything` 的固定证据/未知项边界及 `ui-design` Audit 的先报告原则。读取了两份 `SKILL.md`、REA `runtime-observation.md`,以及 UI Audit 的 `feature-playbooks.md`、`ship-readiness.md`、`output-adapters.md`;没有加载设计改版指导或引入新配色/字号体系。本记录是定向原版一致性核对,不是全站发布就绪审计。
|
||||
Reference in new issue
Block a user