feat: add dbtool tui live query workspace
- 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:
80
TUI_ACCEPTANCE_CHECKLIST.md
Normal file
80
TUI_ACCEPTANCE_CHECKLIST.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# dbtool-tui-v1 验收检查表(阶段 2 分层版)
|
||||
|
||||
## 当前结论
|
||||
|
||||
- 当前仍不能把 `dbtool-tui-v1` 整体判定为阶段 2 live integration 已全部通过;但 `CMP-36` 的 `sqlite-local` 真实 query / results / export 路径已经完成宿主机侧重建与验收回填。
|
||||
- Product / PM 对齐依据:`[CMP-33](/CMP/issues/CMP-33)`、`[CMP-37](/CMP/issues/CMP-37)`、`plans/2026-03-27-dbtool-tui-v1-phase-2-scope.md`。
|
||||
- CTO 优先级对齐依据:第二阶段关键路径仍是 `[CMP-34](/CMP/issues/CMP-34)` → `[CMP-35](/CMP/issues/CMP-35)` → `[CMP-36](/CMP/issues/CMP-36)`,QA 不应越过 shared app 契约提前宣告 live 通过。
|
||||
- 2026-03-27 当前 runner 已回填 shell baseline 证据:`./target/debug/dbtool-tui` 在 `120x40` 与 `90x20` TTY 路径都可复现,退出码均为 `0`。
|
||||
- 当前 runner 不能把“源码可重建”记为通过:系统无 `cargo` / `rustc` / `rustfmt`,无法执行 `cargo check`、`cargo test -p dbtool-tui` 或重新生成二进制。
|
||||
- `dbtool-tui` 是 TTY 程序;`./target/debug/dbtool-tui --help` 在无 TTY 场景下返回 `No such device or address`,这必须被记录为非交互限制,而不是被误记为 smoke 失败或帮助能力已通过。
|
||||
|
||||
## 验收分层
|
||||
|
||||
### A. Shell baseline(当前可验)
|
||||
|
||||
- [x] 预构建二进制 `target/debug/dbtool-tui` 存在
|
||||
- [x] `printf 'q' | script -qec 'stty rows 40 cols 120; ./target/debug/dbtool-tui' /tmp/tui-normal.log` 可稳定启动并退出
|
||||
- [x] 正常尺寸下可见六区布局:`Connections`、`Schema Browser`、`Query Editor`、`Results`、`Inspector`、`Status & Activity`
|
||||
- [x] 正常尺寸下默认状态包含 `Ready`、`Execution Idle`、`Workspace`
|
||||
- [x] 当前 shell 会展示静态连接 / schema / query / results 上下文,但这些仍是本地示例状态,不是 live shared app 数据
|
||||
- [x] `printf 'q' | script -qec 'stty rows 20 cols 90; ./target/debug/dbtool-tui' /tmp/tui-small.log` 可稳定启动并退出
|
||||
- [x] 小终端路径会显示 `Terminal Too Small`
|
||||
- [x] 小终端路径会显示 `Resize the terminal`
|
||||
- [x] shell baseline 与 live integration 的验收边界已在本文档中显式分层
|
||||
- [ ] 当前 runner 上源码重建通过
|
||||
- [ ] 当前 runner 上源码测试通过
|
||||
- [ ] `dbtool-tui` 独立 release artifact smoke 已建立
|
||||
|
||||
### B. 第二阶段 live integration(当前必须保持未通过)
|
||||
|
||||
- [ ] `[CMP-34](/CMP/issues/CMP-34)` 已冻结 TUI live integration 契约
|
||||
- [ ] `[CMP-35](/CMP/issues/CMP-35)` 的 `sqlite-local` 真实 connect / inspect 路径已完成源码重建并回填运行证据
|
||||
- [x] `[CMP-36](/CMP/issues/CMP-36)` 的 `sqlite-local` 真实 query / results / export 路径已完成源码重建并回填运行证据
|
||||
- [ ] 真实连接激活可区分 `loading` / `success` / `failure`
|
||||
- [ ] 真实连接失败后,错误能在 `Inspector` 与 `Status & Activity` 中持续可见
|
||||
- [ ] 真实 schema browser 可展示 schema / object / column 层级
|
||||
- [ ] empty schema 与 restricted schema 在 live 数据下仍有明确文案
|
||||
- [ ] `Query Editor` 可针对真实活动连接执行查询
|
||||
- [x] 真实查询可区分 `running` / `success` / `empty` / `error`
|
||||
- [ ] 真实结果区在常见终端尺寸下仍可浏览
|
||||
- [x] export 结果会给出明确成功 / 失败反馈
|
||||
- [ ] 全路径复用 `crates/db-app`,不通过 CLI 文本解析旁路取数
|
||||
|
||||
### C. 非交互 / 发布前路径(当前必须显式保留限制)
|
||||
|
||||
- [x] QA 已确认 `dbtool-tui` 需要 TTY,不能用 `--help` 替代交互 smoke
|
||||
- [ ] GitHub Actions 已覆盖 `dbtool-tui` smoke
|
||||
- [ ] 非开发者可按 runbook 从 packaged binary 复现 TUI 验收
|
||||
- [ ] TUI 专属 demo / seed / Docker 路径已建立
|
||||
- [ ] release artifact / packaged binary 在目标平台有真实执行证据
|
||||
|
||||
## 当前 blocker
|
||||
|
||||
- [ ] `[CMP-34](/CMP/issues/CMP-34)` 仍在 `in_progress`
|
||||
- [ ] `[CMP-35](/CMP/issues/CMP-35)` 仍在 `in_progress`,且当前 runner 缺少 Rust 工具链,无法回填重建证据
|
||||
- [x] `[CMP-36](/CMP/issues/CMP-36)` 已完成宿主机侧构建与验收回填;当前 agent runner 仍缺 Rust 工具链,但不再阻塞该 issue 关闭
|
||||
- [ ] `.github/workflows/release-smoke.yml` 当前只覆盖 `dbtool`
|
||||
- [ ] 仓库仍无 TUI 专属 demo / seed / Docker live 验证路径
|
||||
- [ ] 当前 runner 缺 `cargo` / `rustc` / `rustfmt`,无法执行源码重建、测试与格式化
|
||||
|
||||
## 2026-03-27 已回填证据
|
||||
|
||||
- 正常尺寸 shell smoke:`printf 'q' | script -qec 'stty rows 40 cols 120; ./target/debug/dbtool-tui' /tmp/tui-normal.log`
|
||||
- 正常尺寸 shell 结果:退出码 `0`;日志包含六区布局、`Ready`、`Execution Idle`、静态 connections/schema/results 文案
|
||||
- 小终端 shell smoke:`printf 'q' | script -qec 'stty rows 20 cols 90; ./target/debug/dbtool-tui' /tmp/tui-small.log`
|
||||
- 小终端 shell 结果:退出码 `0`;日志包含 `Terminal Too Small` 与 `Resize the terminal`
|
||||
- 非交互限制:`./target/debug/dbtool-tui --help` 返回 `Error: Os { code: 6, kind: Uncategorized, message: "No such device or address" }`
|
||||
- 源码状态盘点:`apps/tui/src/main.rs` 已引入 `sqlite-local` 的真实 connect / inspect / query / results / export worker 接线,以及内联测试覆盖
|
||||
- 源码验证限制:当前 runner 无 `cargo` / `rustc`,因此无法在本次回合执行 `cargo check`、`cargo test -p dbtool-tui` 或重新生成 `target/debug/dbtool-tui`
|
||||
|
||||
## 当前不应误判为已通过的能力
|
||||
|
||||
- [ ] 真实 shared app 连接切换
|
||||
- [ ] 真实 inspect / schema browser
|
||||
- [ ] 真实 query 执行
|
||||
- [ ] 真实 empty / error 结果处理
|
||||
- [ ] 真实 export 反馈
|
||||
- [ ] TUI CI smoke
|
||||
- [ ] TUI release artifact smoke
|
||||
- [ ] TUI demo / seed / Docker 路径
|
||||
Reference in New Issue
Block a user