feat: add dbtool tui live query workspace
Some checks failed
release-smoke / macos-13 / x86_64-apple-darwin (push) Has been cancelled
release-smoke / ubuntu-latest / x86_64-unknown-linux-gnu (push) Has been cancelled
release-smoke / windows-latest / x86_64-pc-windows-msvc (push) Has been cancelled

- add shared db-app layer for connect/inspect/query/export events
- add dbtool-tui workspace with sqlite-local live flow and QA docs
- include host-validated acceptance updates for CMP-36

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Paperclip CTO
2026-03-27 17:17:20 +00:00
parent 7424491944
commit 19aeb7784b
12 changed files with 5006 additions and 4 deletions

View File

@@ -0,0 +1,96 @@
# dbtool-tui-v1 回归清单(阶段 2 分层版)
## 0. 记录前提
- [ ] 记录验证日期、验证人、issue / heartbeat
- [ ] 记录二进制路径:`target/debug/dbtool-tui`、源码构建产物或 packaged binary
- [ ] 记录是否为“预构建二进制验证”还是“源码重建验证”
- [ ] 记录终端尺寸、输入按键、输出日志路径
- [ ] 若 live integration 已接线,记录对应 issue、构建版本、demo 环境与 seed 来源
- [ ] 若任一步骤未执行,记录原因:未实现、缺环境、被上游 blocker 卡住,或非当前范围
## 1. Shell baseline 回归(当前 runner 可执行)
- [ ] `printf 'q' | script -qec 'stty rows 40 cols 120; ./target/debug/dbtool-tui' /tmp/tui-normal.log`
- [ ] 确认退出码为 `0`
- [ ] 确认日志包含 `Connections`
- [ ] 确认日志包含 `Schema Browser`
- [ ] 确认日志包含 `Query Editor`
- [ ] 确认日志包含 `Results`
- [ ] 确认日志包含 `Inspector`
- [ ] 确认日志包含 `Status & Activity`
- [ ] 确认日志包含 `Ready`
- [ ] 确认日志包含 `Execution Idle`
- [ ] 确认日志包含静态连接 / schema / result 示例文本
- [ ] `printf 'q' | script -qec 'stty rows 20 cols 90; ./target/debug/dbtool-tui' /tmp/tui-small.log`
- [ ] 确认退出码为 `0`
- [ ] 确认日志包含 `Terminal Too Small`
- [ ] 确认日志包含 `Resize the terminal`
- [ ] 明确记录:`dbtool-tui --help` 不是有效的非交互 smoke
## 2. Shell 交互回归(静态 / 示例数据,不等于 live
- [ ] `Tab` / `Shift+Tab`:焦点在六个面板之间移动
- [ ] `1` / `2` / `3``←` / `→`:顶部视图切换
- [ ] `Connections` 焦点下 `↑` / `↓`:连接选择移动
- [ ] `Connections` 焦点下 `Enter`:激活所选静态连接并同步工作区上下文
- [ ] 失败连接激活后仍保持可见错误
- [ ] `Schema Browser` 焦点下 `↑` / `↓`schema / object 选择移动
- [ ] `Schema Browser` 焦点下 `Enter`ready schema 展开 / 折叠empty / restricted schema 给出明确反馈
- [ ] `Query Editor` 焦点下 `[` / `]`:切换静态 query 草稿
- [ ] `i`:进入插入模式并可录入字符 / 换行
- [ ] `Enter`:触发静态 query 状态轮转或运行占位逻辑
- [ ] 结果区可区分 success / empty / error
- [ ] `Results` 焦点下 `[` / `]`:宽表列分页
- [ ] `Results` 焦点下 `↑` / `↓`:结果行移动
- [ ] `l` / `e` / `r`:状态切换
- [ ] `Esc`:恢复默认工作台
- [ ] `q`:稳定退出并释放 alternate screen
## 3. 第二阶段 live integration 回归(仅在 `[CMP-34](/CMP/issues/CMP-34)`、`[CMP-35](/CMP/issues/CMP-35)`、`[CMP-36](/CMP/issues/CMP-36)` 就绪后执行)
- [ ] 真实连接列表可加载
- [ ] 真实连接激活可区分 loading / success / failure
- [ ] 真实连接失败详情会持续显示在 `Inspector``Status & Activity`
- [ ] 真实 schema / object / column 可浏览
- [ ] empty schema 有明确空状态
- [ ] restricted schema 有明确失败状态
- [ ] `Query Editor` 可对真实活动连接执行查询
- [ ] 真实查询会显示 running / success / empty / error
- [ ] 真实 success 结果可浏览
- [ ] 真实 empty 结果不会误记为错误
- [ ] 真实 error 结果带可读定位线索
- [ ] export 操作有成功 / 失败反馈
- [ ] 工作区上下文在 inspect -> edit -> run -> review -> export 之间保持连续
- [ ] 全路径确认未解析 CLI 文本
## 4. 源码 / CI / 发布前回归
- [ ] `cargo build -p dbtool-tui`
- [ ] `cargo test -p dbtool-tui`
- [ ] 内联测试与交互 smoke 都能在同一环境复现
- [ ] 仓库存在 TUI 专属 smoke runbook
- [ ] GitHub Actions 覆盖 `dbtool-tui`
- [ ] packaged binary 在目标平台可执行
- [ ] 非开发者按 runbook 可复现最小验收
## 2026-03-27 当前已回填项
- [x] 预构建二进制正常尺寸 shell smoke
- [x] 正常尺寸退出码 `0`
- [x] 正常尺寸日志含六区布局
- [x] 正常尺寸日志含 `Ready`
- [x] 正常尺寸日志含 `Execution Idle`
- [x] 小终端 shell smoke
- [x] 小终端退出码 `0`
- [x] 小终端日志含 `Terminal Too Small`
- [x] 小终端日志含 `Resize the terminal`
- [x] 已确认 `dbtool-tui --help` 不能替代 TTY smoke
## 当前阻塞中的回填项
- [ ] 源码重建:当前 runner 缺 `cc` / `zig cc`
- [ ] 源码测试:当前 runner 缺 `cc` / `zig cc`
- [ ] live integration 回归:等待 `[CMP-34](/CMP/issues/CMP-34)``[CMP-35](/CMP/issues/CMP-35)``[CMP-36](/CMP/issues/CMP-36)`
- [ ] CI smoke仓库尚未覆盖 `dbtool-tui`
- [ ] release artifact smoke仓库尚未为 `dbtool-tui` 建立产物路径