Files
ycode/docs/reference/ygent-chat-stage-summary-2026-10-08.md
T

15 KiB
Raw Blame History

对话区对标阶段进度(2026-10-08)

2026-10-09:删除对话确认浮层

通过 WorkBuddy 9223 CDP 打开真实会话菜单的「删除任务」,仅采集并取消,未删除会话。参考实际组件为 wb-popconfirm:无全屏遮罩,贴会话行右侧、8px 间隔及小箭头;宽 240px、内边距 16px、边框 #dedede、圆角 16px、两层轻阴影;标题 16px/24px、600 字重,说明 14px/22px、黑色 70% 透明度;正文与按钮区间隔 24px,按钮间距 12px、高 32px、圆角 8px,确认按钮 #e85c5c。

Ygent 删除入口改为共享的行锚定浮层,侧栏和项目列表均使用相同组件;空间不足时左右翻转及纵向避让,随滚动/尺寸变化更新定位。文案按真实能力显示「删除对话?」和「删除后,对话记录将被移除,且无法恢复。」,不照搬 WorkBuddy 的所有设备同步承诺;后台删除规则与工作目录保留行为不变。初始焦点放取消,支持 Escape、外部点击关闭、Tab 焦点循环及关闭后焦点恢复;提交期间禁用操作并防重复提交,失败保留浮层与原有错误提示。重命名入口保留原交互。

真实 Ygent WebView2 1335×916、DPR 1 实测浮层 240×166,文字/按钮尺寸、颜色、间距、边框与阴影匹配参考;WorkBuddy 视口为 1334×919、DPR 1,未为采集修改用户窗口。原生验证取消、Escape、焦点循环与恢复,未实际删除用户数据;构建通过。截图保存在用户私有目录 ~/.ygent/imports/session-delete-native.png。提交中/失败保护通过实现审阅确认,本轮未触发真实删除请求。

2026-10-09:工具状态图标补齐

按当前本机 WorkBuddy 前端包的 ToolHeader、ToolExpandable 和工具图标注册表核对,Ygent 的 ToolCard 改为工具类型图标,不再将普通成功状态统一替换为绿色勾。读取、写入、命令、搜索、目录、网页、技能、计划、Agent、浏览器和通用工具采用核实的向量路径;Ygent 内置任务/浏览器/技能及 OMP 别名映射到对应类别。

图标为 14×14,中性灰;失败/取消使用参考组件的灰色感叹号。命令外层摘要保留终端图标,意图层显示异常标记。执行中普通工具隐藏图标,文字采用参考组件 2.2 秒扫光;写入工具保留图标并以 1.2 秒周期改变透明度,减少动态效果时静态显示。成功、失败、取消的原始数据和输出保留,状态在可访问名称及悬停说明中区分。权限回执移除装饰性勾叉;下拉选中标记和复制反馈不受影响。

验证:构建及对话回归通过;组件矩阵覆盖 14 种工具/别名的完成、运行、失败、取消与手动展开保留。真实 Ygent WebView2 1335×916 下核验当前普通会话的浏览器成功与失败工具:SVG 几何匹配参考包,实际图标 14×14、颜色 rgba(0,0,0,0.5),无逐工具旋转图标。当前 WorkBuddy 页面没有工具行,本轮参考来自已安装源码与此前命令原生采集,未声称完成所有类别的 WorkBuddy 双端实时流式验收。原生证据保存在用户私有 imports 目录。

阶段状态

按用户要求,对话区工作在此阶段收尾,暂不继续修改。当前状态为:主要字体规则、工具呈现、折叠状态和流式事件管线已实现并分层验证;尚未完成 WorkBuddy 双端原生流式 1:1 验收。本页是恢复工作时的当前进度入口,详细证据与历史基线保留在关联文档中。

目标仍是流式交互效果一致,包括块顺序、工具增量、自动/手动折叠、滚动、完成/失败/取消和重载恢复。所有会话共用呈现规则,不能按会话标题、ID或导入身份修补。产品名称与头像统一为 Ygent;名称字体、头像尺寸和间距参考 WorkBuddy,品牌内容按用户要求保留 Ygent。

已完成的实现与验证范围

模块 当前实现 已取得的证据与边界
调试与参照数据 原生 Tauri WebView2/CDP 调试、WorkBuddy CDP/打包源码分析、真实本地对话导入及元数据补齐 SOP;规则写入 AGENTS.md 对话界面修改以真实 DOM、计算样式、几何及状态验收,截图作为补充。原始会话/源码采集保存在私有目录,不入库
窗口与六档字体 对齐窗口基准1335×916;设置滑杆、快捷键和持久化共用六档;正文/UI采用不同缩放规则,名称、Markdown代码、终端代码分别管理字体族 两端默认及六档原生测量:108组字号/行高、18组几何对比一致。此为当时指定9个位置的结果,不能外推所有组件;本机系统字库依赖仍存在
工具基础外观 历史、过程、实时回合共用 ToolCard;命令摘要/意图/输出分层,修正颜色、竖线、缩进、滚动条和长命令断行 同一失败命令的原生面板文本、换行及尺寸与WB匹配;失败摘要保留灰色终端图标,意图层有失败标记,输出保留非零退出码。其他工具类型状态图标尚未全面验收
路径与阶段元数据 共用行内路径组件;普通会话通过真实IPC识别路径,导入会话补齐来源元数据;只恢复有来源事件的“深度思考”标题 参照路径标签几何匹配,普通真实目录可识别、不存在候选不变成链接;增量保留控件。路径实际打开的完整行为、文件图标和公开思考阶段仍待补验;内部推理正文未导入
正文锚点与整体折叠 完成/取消共用“全部并列最长正文+最后正文”;中间短正文进入过程;整体展开显示完整时间线,权限/产物保留专用渲染器,末段后真实事件不挪到前面 组件覆盖最长位置、并列、一/两段、空白、混合过程、权限/widget及尾部工具。原生完成/取消3个样本验证完整/摘要互斥和节点/详情状态保留;WB自动折叠资格和时机尚未完整对照
展开状态与增量稳定性 按回合/消息ID持有组、工具、意图状态;单工具升级为组保持边界;完整时间线与摘要首次挂载后隐藏而不卸载;普通增量不重置手动选择 运行→完成/取消、最终输出更新、父层往返、明确关闭的详情、代码容器/复制按钮/路径控件均有回归;原生历史样本往返通过。文字选择、面板滚动位置及超长会话性能不能据此算通过
工具动作摘要 40种动作/别名按参数对象、动作组、相邻正文和状态生成标题;运行/等待/未知动作有对应文案,不把命令正文或工具意图任意拼成标题 与安装WB纯摘要函数离线对照1760组一致;17个独立语义场景及标题更新不重建节点回归通过;原生3组检查字号/省略与往返。组头图标、推理参与分组、底座命名适配和双端真实流式标题切换待验收
流式事件与持久化 请求/会话/块/工具ID隔离;正文按工具边界分块,工具start/update/end原位合并;按创建顺序串行落库;取消拒绝迟到事件;SSE按完整字节行解码 组件/模拟IPC事件回归及先前16项Rust测试通过;YG真实Rust/Tauri/WebView2+隔离受控SSE的6项端到端检查通过。受控HTTP服务不是实际OMP/Codex模型,也不是WB双端动态验收

阶段末的验证记录

  • 最新前端实现通过 pnpm check:chat,包含事件隔离、渲染/折叠保留及17个摘要语义场景;pnpm build通过,仍有既有大bundle提示。
  • node scripts/fe-check.mjs在整体折叠统一后通过;先前Rust16项测试和隔离SSE6项记录属于对应批次验证,没有在纯文档收尾时重复运行。
  • 原生对话实测以1335×916、DPR1、默认2档为主要条件,普通会话和导入参照会话均有检查。不同尺寸、所有消息类型、所有工具底座并未全面覆盖。
  • 正式参照会话没有发送测试请求;未替换真实IPC或向正式会话注入delta。原生历史往返、组件合成事件、离线源码对照和隔离SSE测试分别记录,不能互相替代。

私有证据目录为 C:/Users/Administrator/.ygent/imports/render-audit-20261008/,关键记录:full-turn-fold-native-check.json、tool-summary-native-check.json、summary-oracle-check.mjs、native-stream-check.json。其中早期anchor-layout-native-check.json对应仅展开前段历史的旧入口,当前整体入口已改为完整时间线/摘要切换;不能直接沿用旧选择器和计数验收新实现。

剩余工作及优先级

优先级 未完成项 下次验收位置/通过条件
P0 滚动跟随与阅读锚点(S05) ChatView的messages/atBottom逻辑,以及展开、字体、图片、公式、widget异步变高;贴底跟随,上翻不拉回,回底恢复,记录scrollTop/scrollHeight及锚点
P0 自动折叠时机与活动回合资格(S04) WorkBuddy活动/非活动回合、后续正文、完成/取消和尾部工具;按事件采集双端时间序列,不能只比较终态截图
P0 实际OMP/Codex与WB动态链路(S01/S02/S06) 隔离会话中真实工具增量、并行、空结果、失败、取消、迟到、切会话、重载;核对正文/工具顺序、完整输出及落库恢复
P1 公开思考/等待/错误阶段(S07) 接入有依据的公开阶段/摘要,检查首字前、工具中和终态的可见元素;不伪造内部推理、模型或消耗元数据
P1 组头图标、组成员与局部间距 通用摘要头图标、推理事件是否参与分组、非命令工具状态图标;组内gap、reasoning包装与段落间距分别测量,不硬补整段高度
P1 回合尾部与更多交互 产物入口/操作栏、代码/表格/widget中间态、搜索命中展开、队列、附件与@/技能候选等,区分已有入口和真正接通/验收的行为
P1 长会话与跨环境 完整/摘要保留DOM的挂载量、829条及更长会话性能,窗口/右栏变化、六档扩大覆盖、系统字库缺失回退

原精确差异清单中的40项渲染差异、4项外围差异、5项交互缺口和15个待验收场景是修复前及指定采集范围的基线,不是当前剩余数量。部分已修、部分有后续修正、部分未验收,不能据此计算“完成百分比”,也不能把当前所有差异都归为未修代码。

恢复时建议先选择隔离测试会话与同条件双端样本,更新原生基线/展开状态,再处理S05滚动及S04触发时机,随后补真实底座动态验收。任何新结构调整都复测增量、手动展开、取消、顺序和重载;正式参照会话继续保持只读测试原则。

文档入口

对话页面背景调整(2026-10-08 补充)

按用户后续要求,对话页面外层采用与侧栏、项目页相同的连续背景:移除 .main-chat 的整块白底,工作台区块与分享区移除外层分割线,分享区底色透明。输入框、用户消息气泡和代码块保留内容层级。本次是页面设计语言调整,不计作 WorkBuddy 白底的逐像素一致性验收。

通过真实 Tauri WebView2 / CDP 9335 在 1335×916 视口检查普通对话、工作台展开和分享模式。主区域与分享区 computed background 为透明,工作台分割线与分享区上边框为 0;退出分享后输入框正常恢复。采集保存到私有 .ygent/imports/chat-surface-20261008/。

与新建任务页统一视觉(2026-10-08 补充)

按用户最新要求,对话页沿用新建任务页的品牌渐变背景;两处输入框共用半透明白色表面、16px 圆角、轻描边、柔和阴影与蓝色聚焦环,发送按钮统一品牌蓝。共享输入表面变量集中于 tokens.css,避免页面分别维护后再次出现差异。停止按钮保留独立语义与危险色悬停反馈。

对话仍采用适合连续阅读的正文宽度和底部输入布局。此次调整为产品视觉选择,不代表 WorkBuddy 静态或动态对标项目全部通过。原生 Tauri WebView2 在 1335×916、DPR 1 下检查新建任务、普通对话、829 条消息的历史会话、输入框聚焦及工作台展开;背景和输入表面计算样式一致,未出现窗口横向溢出。此次没有新增流式执行验收。证据位于用户私有目录 .ygent/imports/chat-newtask-style-20261008/。

发送输入反馈修复(2026-10-08 补充)

原输入框在 await onSubmit/send 返回后才清空,因内核确认或直连流式 IPC 等待导致已发送正文长时间残留。共享 Composer 与新建任务输入改为提交后立即清空;拒绝或异常时恢复原文,若用户已输入新草稿则同时保留两段,成功回执不清除新草稿。提交中的按钮禁用,与同步锁共同避免重复发送。此次仅调整输入反馈,不缩短内核响应耗时,也不修改请求接受或失败判定。

验证:在原生 WebView2 中额外挂载辅助 Composer,用可控异步回执检查立即清空、成功保留新草稿、失败恢复且不覆盖新草稿、字符串拒绝恢复及重复提交禁用;没有替换真实 IPC,没有发送实际消息,不能视为真实内核端到端验收。证据为私有目录 chat-newtask-style-20261008/send-check.json。

右侧工作台开始接入(2026-10-08)

以当前 WorkBuddy 的标签工作台重新梳理范围,已接入真实目录、文本预览及 Git 读取,不再把文件变更入口实现为跳回对话。详情、真实原生验收和未完成范围见 工作台进度。内嵌浏览器、富文档、终端、引用来源及完整流式刷新验收仍待完成。

对话授权与问题回答(2026-10-09)

输入区浮动卡、紧凑历史问答、真实 OMP 选项/自由输入/跳过回传已接入。修复完全访问隐藏问题、问题被误当授权、Other→editor 重复记录与旧回执覆盖新状态。原生隔离链路 7 项及六档字号检查通过,批量多选与双端同场景动态验收仍待补充。详见 实现与 SOP。