feat(prototype): show record details inline

This commit is contained in:
QiuSW
2026-08-03 15:55:11 +08:00
parent 0b757f8ad1
commit 79a2767870
6 changed files with 203 additions and 74 deletions
+42 -7
View File
@@ -168,14 +168,49 @@ desk 端将使用 PySide6 / Qt Widgets,但当前没有可确认的桌面应用
## 执行记录
### 2026-08-03 · 第三轮内联详情待实现
### 2026-08-03 · 第三轮左侧内联详情实现
- 任务保持 `DOING`。本轮拟将执行记录详情从模态对话框改为左侧双视图工作区;只修改 T-006
写路径内的原型与同步文档,不扩展 API、真机或生产 PySide6 范围。
- 计划验证双击 / Enter / 可见命令 / 右键入口、详情态连续选行、返回按钮、`Esc` 层级、焦点
恢复、紧凑宽度单视图,以及加载 / 失败 / 缺图 / 记录不存在状态。
- PySide6 交接将把左栏映射为 `QStackedWidget`,整体映射为 `QSplitter`,右侧继续使用
`QTableView` + 稳定 ID 模型;详情异步结果必须带请求代次并在 GUI 线程丢弃过期回调。
- 任务继续保持 `DOING`:第三轮自动验证已经完成,但 `needs_human_review: true`,仍需人确认
工作区切换、返回路径、宽屏连续查看与紧凑窗口取舍。
- 执行记录详情已从模态 `dialog` 移到左侧双视图工作区。默认 `LIVE_TASK` 保持当前任务和滚动
日志;双击、Enter、可见命令或右键进入 `RECORD_DETAIL(record_id)`,右侧宽屏列表不被遮挡。
- 详情态单击或方向键选择另一行会按稳定记录 ID 更新左侧详情。可见“返回当前任务”按钮和
`Esc` 共用返回命令,保留列表选择 / 滚动,并把焦点还给当前记录行。
- `Esc` 先关闭右键菜单;信息对话框打开时不触发工作区返回。顶部连接、会话和安全 Banner
始终保留,详情头部另显示实时会话摘要,证明查看历史不会冻结当前任务状态表达。
- 原型控制器可演示详情正常、加载中、加载失败和记录不存在;缺图记录仍显示可信证据空态。
重新读取只读取同一记录,不执行采购。渲染带请求代次,切换记录或返回后丢弃旧异步结果。
- `windows-ui-ux` 使本轮采用非模态主从工作区、可见返回命令、分层 Escape、稳定选择与焦点
恢复,并明确紧凑宽度采用单视图,而不是把两个高密度面板纵向无限堆叠。
**第三轮 HTML → PySide6 / Qt Widgets 交接增量**
| 原型项 | 核心交互契约 | 推荐 Qt Widgets 映射 | 状态 / 线程要求 |
| --- | --- | --- | --- |
| 左侧双视图 | 当前任务 / 记录详情互斥;顶部状态不在切换区 | 左栏 `QStackedWidget`,整体 `QSplitter` | 页面切换不销毁当前任务模型、日志或列表状态 |
| 详情入口与连续选行 | 双击、Enter、按钮、右键共用命令;详情态换行立即换详情 | 共享 `QAction`;`QTableView.activated` 与按钮触发 | 记录身份使用模型中的稳定 ID,不使用代理行号 |
| 返回当前任务 | 可见按钮与 Escape 共用;恢复当前行焦点 | 共享返回 `QAction` + `QShortcut(Escape)` | 仅在无更高层浮层时启用;按稳定 ID 重新定位代理行 |
| 详情读取 | 加载 / 失败 / 缺图 / 不存在状态明确 | 状态页或 `QStackedWidget` + 只读详情控件 | worker 结果携带 record ID 与 request ID;GUI 线程拒绝过期结果 |
| 紧凑宽度 | 详情态暂时隐藏记录表,返回后恢复现场 | 响应窗口宽度调整 `QSplitter` 可见性 | 隐藏不重建模型,不丢选择、排序或滚动位置 |
**第三轮已运行验证**
- Node 静态检查:执行页 78 个 id 无重复,内联脚本可编译,执行记录详情 `dialog` 已不存在。
- Playwright 在 1440 px 验证双击、Enter、可见按钮 / 右键共用内联详情;详情态连续选行会更新
标题,返回按钮与 `Esc` 恢复当前记录行焦点;右键菜单和信息对话框的 Escape 层级正确。
- 详情正常、加载中、加载失败 / 重新读取、记录不存在、无图片均可演示;查看详情期间切换到
第一趟试选,顶部 Banner 和详情实时徽标继续更新,且详情不退出。
- 375 / 768 / 1024 / 1440 px 均无页面级水平溢出;375 / 768 px 详情态隐藏记录表,返回后
恢复表格与唯一选择;1024 / 1440 px 保持宽屏主从布局。浏览器 0 error / 0 warning,页面无
外部资源请求。
- `python scripts/validate_agent_context.py` 与 `git diff --check`:提交前运行并记录最终结果。
**第三轮未验证与待人工确认**
- 没有生产 PySide6、Model/View、worker、图片持久化、API、ADB 或真机行为;浏览器原型不能
证明原生 Qt 焦点、Narrator、UI Automation、DPI、线程或性能。
- 待人确认:宽屏查看详情时是否继续保留右表;紧凑宽度是否接受单视图;返回按钮位置、实时
状态徽标密度,以及详情加载 / 不存在文案。人工确认前任务不得改为 `DONE`。
### 2026-08-03 · 第二轮采购工具工作区实现