Trace 状态与用户体验验收
本表描述预期和已有断言,不登记全项通过。 功能编号来自 测试清单。 脚本是否属于默认命令见 入口映射。 执行顺序见 开发流程。
状态要分别观察
Trace 开关、Gateway、活动回答、工具等待和 Viewer 是不同状态。 不能仅凭按钮颜色判断转发已停止。 也不能凭仪表盘可打开判断 Gateway 仍在代理。 仅打开仪表盘可能启动只读页面服务。 停止验收需核对代理入口和客户端路由。
一次操作需观察四层。
| 层 | 核对内容 |
|---|---|
| 用户意图 | 最后选择的开关、服务、模型、账号和草稿 |
| 持久配置 | 保存值、受管字段、外部字段与恢复账本 |
| 运行时 | 实际监听、活动请求、工具等待和目标上游 |
| Trace | 原生线程、物理请求、原请求、转换记录与统计 |
转换矩阵
“已有”表示相关代码断言存在。 真实客户端和当前候选的结果仍需单独记录。 下面的 T 编号是执行子场景,不能替代功能编号。
| 子场景 | 初始状态与动作 | 预期行为和体验 | 已有自动化 | 最终验收与缺口 |
|---|---|---|---|---|
| T01 | Trace 关闭,保存服务和模型 | 保存保留选择;真实路由是否需 Trace 分别反馈 | client-models、codex-models、config-merge(CL01、MO04) | 原生页面保存与回读;直连或开启入口对应实际协议 |
| T02 | 开启 Trace,再新建客户端对话 | 请求进入 Gateway;目标、线程和详情一致 | native-sessions、client-evidence(TR01、TR09) | 新真实 CLI/Desktop 对话;不能沿用旧绑定代验 |
| T03 | 同一对话继续两轮或重开 resume | 线程连续;上下文与工具结果保留 | native-sessions、portability(TR02、CL02) | 同进程和重开各验;答案必须依赖前轮标记 |
| T04 | 回答中切换 A→B,再继续原对话 | 已开始回答不截断;下一轮到 B;不自动回退 | portability、models 组件(CL01、CL02、SE02) | 同线程 A→B→A;逐轮核对实际授权和上游 |
| T05 | 已发工具,尚未返回结果时停止 | 保留 Gateway;可继续等待或明确强停 | tool-wait、stop-admission(LF01、TR06) | 页面等待/取消/强停各验;工具只在测试目录执行 |
| T06 | 工具等待时换服务,再提交结果 | 匹配当前调用与上下文;不重复执行 | tool-wait、portability(TR06、CL02) | 真工具 call ID、结果顺序和续轮;新旧调用 ID 复用另验 |
| T07 | 回答生成中普通停止,再继续等待 | 保持监听和配置;已接受请求继续 | stop-admission(LF01) | 实际提示可操作;完成后再次停止 |
| T08 | 选择明确强停 | 当前回答终止一次;恢复直连;不重放 | portability、tool-wait(TR07、LF01) | 原生确认/取消;后续真实直连与错误记录 |
| T09 | 空闲时关闭 Gateway | 恢复受管直连字段;清账本;代理监听关闭 | desktop-lifecycle(CL06、LF02) | 同进程真实直连;不靠重启 Deck 凑恢复 |
| T10 | Gateway 已关闭,再开启 | 保留服务模型;只恢复正确接管 | desktop-lifecycle、writer(CL06、LF03) | 新建真实线程;旧线程另列兼容场景 |
| T11 | Trace 开启,关闭主窗口或仪表盘 | 主窗托盘与仪表盘释放分开;捕获按设置继续 | window-lifecycle 专题(LF07) | 实际托盘、全屏、系统 Space、多屏仍需操作 |
| T12 | 活动请求中退出,再重开 | 等待或明确强停;不遗留失效路由;恢复选择 | lifecycle、reset、tool-wait(LF02、LF03) | 正常身份与专用根分列;重开后真实生成 |
| T13 | 异常结束或配置被外部修改 | 保留外部字段与最新意图;提供安全恢复入口 | repair、settings-write(LF04、DG02) | 专用环境故障;恢复后真实直连;不强写外部代理 |
| T14 | 客户端取消、网络断流或上游失败 | 失败和不完整状态真实;不伪造结束或重发 | protocol、portability、writer(TR07) | 实际取消与后续续聊;重试保留每次物理请求 |
| T15 | 客户端 compact 后继续和切服务 | 原请求保留实际压缩内容;可恢复上下文单列上游 | portability(TR04、TR05) | 客户端真实 compact 完成和下一轮;合成摘要不能代验 |
| T16 | 同首句双会话、并发和侧边聊天 | 原生 ID 决定归属;同线程不拆;不同线程不合并 | native-sessions、navigation(TR02、TR03、TR06) | 实际侧边聊天、btw 与父子证据待验;淡色标记仍为设计 |
| T17 | 明确额度耗尽或普通 429/401 | 仅已开启策略且全部账号耗尽才换;已有输出不重放 | switching、pool、routing(SW02、SW03) | 自然耗尽和同一 CLI 续接;未知额度不当零 |
| T18 | 读历史中加入新请求、刷新和返回 | 保留阅读位置;页序连续;首次进入读最新 | session-reading、Viewer、dashboard-api(TR08) | 真实大量记录、字节预算分段、往返及原生滚动 |
| T19 | 语言、主题或窗口尺寸切换 | 主窗与 Viewer 一致;一行会话;操作仍可见 | language、theme、layout、原生 smoke(UI03、UI04) | 键盘、hover、物理缩放和长文字分列 |
| T20 | 改为 0 GB,存在在途请求 | 完成正文清理;只留用量;不重复回填旧统计 | usage-only、writer(SE04、SE05) | 设置页实际确认/取消;清历史勾选默认关闭 |
| T21 | 改目录、索引损坏、手动修复 | 暂停→更改→恢复;修复先备份;原文不重写 | directory-lifecycle、index-repair(SE06、SE07) | 实际目录、权限、文件占用与预览后外部变化 |
| T22 | 刷新或重启后核对数值 | 冻结费用不变;已知零值与未知值分开 | billing、cache-usage、Viewer(CO01、CO03、CO06) | 实际 usage 独立复算;页面不加星号或未计价提示 |
每次请求的数据核对
记录一次客户端发送,不能只数界面回合。 重试、辅助调用和协议转换可能产生不同物理请求。 逐条核对开始、结束、状态和去重依据。
| 项目 | 需要断言 | 相关脚本 |
|---|---|---|
| 会话身份 | 原生 ID、来源、父子证据与 Trace 归属一致 | native-sessions、client-evidence、navigation |
| 客户端原请求 | request.body 保留实际发送内容,不拼入未发送历史 | portability、Viewer |
| 上游转换 | upstream.requestBody 与补充历史、协议差异分别可见 | portability、protocol |
| 工具和多模态 | call ID、结果、顺序和图片位置完整 | tool-wait、protocol、portability |
| 结束状态 | 完整结束、取消、不完整和失败分开 | native-sessions、writer、portability |
| 用量和金额 | 来源可核对;缓存不重复;价格按捕获冻结 | cache-usage、billing、price-catalog |
| 存储 | JSONL、索引、摘要与统计一致;读取不改原文 | writer、index-repair、dashboard-api |
| 0 GB | 完成请求不留正文;统计跨重启稳定 | usage-only、writer |
| 事件重放 | 不重复累计请求或费用,不插乱阅读序列 | Viewer、session-reading |
| 隐私 | 普通诊断无 Key、完整请求头与私人正文 | diagnostics、private-files |
已知费用正常显示,小额精度保持一致。 已知 0 显示 0,完全未知显示“—”。 失败缺少计费用量时不产生已知金额。 页面不增加未计价、部分或星号说明。 失败原因和原始用量仍保留在请求详情。 显示简化不能修改历史或冻结计价证据。
最终最小主路径
- 冻结源码和包,记录客户端版本与初始配置。
- 在实际页面保存专用连接,再回读文件。
- 开启 Trace,创建真实新对话。
- 两轮上下文检查,执行只读工具。
- 在原线程 A→B→A,逐轮核对上游。
- 打开真实记录,检查原请求、转换与统计。
- 读历史中新增请求,刷新和返回。
- 忙碌时停止并选择继续等待。
- 完成后停止,核对路由、账本与监听。
- 同进程做真实直连,再开新线程重入。
- 退出重开,核对选择、登录与历史。
每步都有预期和实际结果。 前一步失败时,后续结果不能覆盖该失败。 没有额度、授权或环境时明确记受阻。 Windows、macOS、CLI 和 Desktop 分别登记。
当前明确缺口
侧边聊天和 btw 的淡色命名尚未落地。 需要先取得客户端真实线程和父子证据。 不得通过标题或首句猜测会话关系。 实际 compact、Desktop 停止后缓存重载仍需当前包验证。 自然耗尽后的同会话自动切换仍需真实资源。 当前没有全应用随机操作或长时间浸泡套件。 原生窗口物理操作与其他平台仍需单独验收。
T04 和 T15 的目录与已有压缩项检查见 Codex 专项验收。