- 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>
5.6 KiB
5.6 KiB
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与90x20TTY 路径都可复现,退出码均为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(当前可验)
- 预构建二进制
target/debug/dbtool-tui存在 printf 'q' | script -qec 'stty rows 40 cols 120; ./target/debug/dbtool-tui' /tmp/tui-normal.log可稳定启动并退出- 正常尺寸下可见六区布局:
Connections、Schema Browser、Query Editor、Results、Inspector、Status & Activity - 正常尺寸下默认状态包含
Ready、Execution Idle、Workspace - 当前 shell 会展示静态连接 / schema / query / results 上下文,但这些仍是本地示例状态,不是 live shared app 数据
printf 'q' | script -qec 'stty rows 20 cols 90; ./target/debug/dbtool-tui' /tmp/tui-small.log可稳定启动并退出- 小终端路径会显示
Terminal Too Small - 小终端路径会显示
Resize the terminal - 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 路径已完成源码重建并回填运行证据[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可针对真实活动连接执行查询- 真实查询可区分
running/success/empty/error - 真实结果区在常见终端尺寸下仍可浏览
- export 结果会给出明确成功 / 失败反馈
- 全路径复用
crates/db-app,不通过 CLI 文本解析旁路取数
C. 非交互 / 发布前路径(当前必须显式保留限制)
- QA 已确认
dbtool-tui需要 TTY,不能用--help替代交互 smoke - GitHub Actions 已覆盖
dbtool-tuismoke - 非开发者可按 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 工具链,无法回填重建证据[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 路径