Skip to content

feat(web): adopt DeepSeek-style trajectory overview and inspectors - #789

Closed
testikun wants to merge 119 commits into
mainfrom
codex/trajectory-deepseek
Closed

testikun wants to merge 119 commits into
mainfrom
codex/trajectory-deepseek

Conversation

@testikun

@testikun testikun commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

长回合的旧轨迹以消息卡片为主,难以查看模型响应、Code Mode 内部调用和对应结果。原生单次用量与子调用耗时已有部分数据,但没有充分展示。

Closes #785。#711 已由拆分后的 PR 合入 main,并作为汇总 PR 关闭。本 PR 已同步 main(78dc5743),与 main 的差异仅保留独立的轨迹功能及其文档。仓库禁止强制推送,因此通过普通合并保留原分支历史,合并结果使用仅迁移原先两个独立提交后验证通过的代码树。

Value

采用 DeepSeek Harness 的紧凑列表、三轨总览与右侧详情,让用户按记录定位输入、结果、失败和已有测量。缺失数据明确显示“未记录”,成功的工具结果与模型失败分别保留。

Approach

  • 参考 DeepSeek Harness d743267388641bc76f17c45ce8b4c231aed1d32c,保留 MIT 许可与来源说明,适配现有主题、翻译和窄屏布局。
  • 复用 Pi Session、codemodeChildren() 和分支感知的 useSessionHistory();补充可选的单次 provider 用量和模型身份投影。Code Mode 子调用显示原生状态、耗时及结果正文是否缺失。
  • 提供点击/键盘选中、拖动选区、搜索、折叠、历史加载、固定展示窗口、原文复制、换行和按需代码高亮。选区绑定确切记录窗口,追加历史保持选中记录和详情 tab。
  • 总览明确采用记录顺序,宽度不表示耗时。没有可靠开始时间或测量的历史不拼成墙钟时间线。

实现说明:中文设计记录。

Validation

原始实现验收(2026-10-14):

  • bun run check:通过,包括构建、格式、lint 和类型检查;同步生成 web/dist。
  • 使用空的 PI_CODING_AGENT_DIR 运行 bun run test:Node 2519 通过、9 跳过;Vitest 95 文件、1460 用例通过。本机个人 TUI 配置导致的首次失败在隔离配置后消失。
  • Playwright 轨迹专项:3/3 通过。覆盖桌面/手机、明暗主题、总览点击与拖动、搜索后选区身份、Code Mode 子调用、时间/用量、键盘 tab、无横向溢出和 Axe 检查。
  • 组件与投影用例覆盖精确复制(含尾部换行)、安全高亮、追加后固定窗口、失败占位用量与非零原生用量、原生取消/超时,以及模型错误不重写工具成功。
  • 消融移除了重复 click 处理、Markdown 源码中间路径和选区重置 Effect,验证保留后的 pointer/键盘、精确文本与窗口身份机制。

浏览器使用隔离测试 Host 与固定数据;没有新的真实模型性能 Benchmark,首段输出等待、provider HTTP attempt 和网关重试观测仍待后续工作。

迁移至 main 后复验(2026-10-16):

  • bun run check:通过,基于最新 main 与轨迹源码重新生成 web/dist。
  • VITEST_MAX_WORKERS=2 bun run test:Node 2,650 项通过、9 项跳过;UI 99 个文件、1,527 项通过。
  • Playwright 轨迹专项:3/3 通过,覆盖桌面/手机、明暗主题、搜索与选区、原生子调用证据、键盘操作、无横向溢出和 Axe;8 张截图已批量复核。
  • bun run provenance:唯一 OpenPI 来源匹配独立迁移 worktree,最终 checkout 为 8ad2f9a8。
  • git range-diff:迁移候选的两个提交与原始两个提交的源码改动一致,只有生成的前端文件根据新基线重建。
  • 最终普通合并提交 8ad2f9a8 与验证候选 0aa531e6 的 Git tree 完全相同(69796bd6ade05ce9c9818a2e9c02e3fafb7cbba8);上述完整测试与浏览器验收来自该同一代码树,最终提交单独复核了运行时来源。

Impact

  • 用户界面:替换 Web 执行轨迹布局和详情交互。
  • 模型上下文/工具:无变化。
  • 运行时/生命周期:沿用 Pi 和现有历史读取;未新增执行调度、provider 栈、自动重试或 Session 存储。
  • 持久配置/数据:无配置项或 Session 迁移;Web 消息投影新增可选字段,旧记录继续可读。
  • 兼容性与边界:持久子调用摘要可能没有结果正文;耗时缺失时保持未知。MIT 来源与许可随源码保留。

…dex/codex-settings-parity

# Conflicts:
#	tests/web/openpi-web.e2e.ts
#	tests/web/web-host.test.ts
#	web/adapter/pi-adapter.ts
#	web/dist/app.js
#	web/dist/styles.css
#	web/host/web-host.ts
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Oct 14, 2026
@testikun
testikun changed the base branch from codex/settings-resources to main October 16, 2026 11:32
@testikun
testikun requested review from a team and tt-a1i as code owners October 16, 2026 11:32
@testikun

Copy link
Copy Markdown
Collaborator Author

Replaced by #868, which targets main with one focused feature commit.

@testikun testikun closed this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(web): adopt DeepSeek-style execution trajectory and inspectors

1 participant