Files
dbtool-cli-v1/TUI_REGRESSION_CHECKLIST.md
Paperclip CTO d5f69462b0
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
feat(usable): integrate current dbtool implementation snapshot
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 08:26:18 +00:00

120 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# dbtool-tui-v1 回归清单(阶段 2 分层版)
## 0. 记录前提
- [ ] 记录验证日期、验证人、issue / heartbeat
- [ ] 记录二进制路径:`target/debug/dbtool-tui`、源码构建产物或 packaged binary
- [ ] 记录是否为“预构建二进制验证”还是“源码重建验证”
- [ ] 记录终端尺寸、输入按键、输出日志路径
- [ ] 若 live integration 已接线,记录对应 issue、构建版本、demo 环境与 seed 来源
- [ ] 若任一步骤未执行,记录原因:未实现、缺环境、被上游 blocker 卡住,或非当前范围
## 1. Shell baseline 回归(当前 runner 可执行)
- [ ] `scripts/tui/smoke-tty.sh ./target/debug/dbtool-tui`
- [ ] 确认退出码为 `0`
- [ ] 确认日志包含 `Connections`
- [ ] 确认日志包含 `Schema Browser`
- [ ] 确认日志包含 `Query Editor`
- [ ] 确认日志包含 `Results`
- [ ] 确认日志包含 `Inspector`
- [ ] 确认日志包含 `Status & Activity`
- [ ] 确认日志包含 `Ready`
- [ ] 确认日志包含 `Execution Idle`
- [ ] 确认日志包含静态连接 / schema / result 示例文本
- [ ] `scripts/tui/smoke-tty.sh ./target/debug/dbtool-tui 20 90 /tmp/tui-small.log`
- [ ] 确认退出码为 `0`
- [ ] 确认日志包含 `Terminal Too Small`
- [ ] 确认日志包含 `Resize the terminal`
- [ ] 明确记录:`dbtool-tui --help` 不是有效的非交互 smoke若已重建源码应输出 TTY-required 提示
## 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 Editor` 焦点下触发查询执行;插入模式下只插入换行
- [ ] 结果区可区分 success / empty / error
- [ ] `Results` 焦点下 `[` / `]`:宽表列分页
- [ ] `Results` 焦点下 `↑` / `↓`:结果行移动
- [ ] `r`:同时清空 query / export feedback并恢复 `Ready`
- [ ] 查询运行中按 `x` / `j`:界面提示等待当前查询完成
- [ ] `Esc`:导航模式下恢复默认工作台;插入模式下退出到 navigate mode
- [ ] `q`:稳定退出并释放 alternate screen
## 3. 第二阶段 live integration 回归(当前 runner demo path 已可复验)
- [ ] 记录本次是否仅验证内置 demo profile不得把 prelaunch env override 误写成 in-app connection management
- [ ] 真实连接列表可加载
- [ ] 真实连接激活可区分 loading / success / failure
- [ ] 真实连接失败详情会持续显示在 `Inspector``Status & Activity`
- [x] 真实 schema / object / column 可浏览
- [ ] empty schema 有明确空状态
- [x] connection-failure fallback 会把 browser state 渲染为 `unavailable (restricted)`
- [x] successful live restricted schema 可与 empty / hidden 稳定区分(见 `[CMP-64](/CMP/issues/CMP-64)`
- [ ] `Query Editor` 可对真实活动连接执行查询
- [ ] 真实查询会显示 running / success / empty / error
- [ ] 真实 success 结果可浏览
- [ ] 真实 empty 结果不会误记为错误
- [ ] 真实 error 结果带可读定位线索
- [ ] export 操作有成功 / 失败反馈
- [ ] 工作区上下文在 inspect -> edit -> run -> review -> export 之间保持连续
- [ ] 全路径确认未解析 CLI 文本
## 4. 源码 / CI / 发布前回归
- [ ] `unset CARGO_REGISTRIES_CRATES_IO_PROTOCOL && cargo build -p dbtool-tui`
- [ ] `unset CARGO_REGISTRIES_CRATES_IO_PROTOCOL && 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
## 2026-03-31 当前已回填项
- [x] `unset CARGO_REGISTRIES_CRATES_IO_PROTOCOL && cargo build -p dbtool-tui`
- [x] `unset CARGO_REGISTRIES_CRATES_IO_PROTOCOL && cargo test -p dbtool-tui`
- [x] `scripts/tui/live-network-smoke.sh postgres ./target/debug/dbtool-tui`
- [x] `scripts/tui/live-network-smoke.sh mysql ./target/debug/dbtool-tui`
- [x] PostgreSQL failure visibility已见 `Connection Failure``Recovery path``postgres authentication failed`
- [x] PostgreSQL empty result已见 `No rows returned``Execution: Empty`
- [x] PostgreSQL bad SQL已见 `Query error`
- [x] MySQL empty schema已见 `Schema dbtool_demo is empty...`
- [x] MySQL browse-stability已见 `Result columns paged to 2-5 of 6`
- [x] PostgreSQL restricted schema已见 `restricted_probe``Schema failure``schema access is restricted: restricted_probe``Query execution blocked because schema restricted_probe is restricted...`
- [x] current runner 的 live integration 不再等待 `[CMP-34](/CMP/issues/CMP-34)``[CMP-35](/CMP/issues/CMP-35)``[CMP-36](/CMP/issues/CMP-36)`
## 当前阻塞中的回填项
- [ ] 连接 profile 的新增 / 编辑 / 删除 / 保存:当前实现仍未提供可执行 UI path
- [ ] session-only secret entry / cache当前只能记录为待实现不能由 `DBTOOL_PASSWORD` 或 host override 冒充通过
- [ ] 真实 schema / object / column 可浏览:仍需按 usable-v1 口径继续补连续操作证据
- [ ] CI smoke仓库尚未覆盖 `dbtool-tui`
- [ ] release artifact smoke仓库尚未为 `dbtool-tui` 建立产物路径
- [ ] packaged binary / 非开发者 runbook仍缺真实复验证据
## 当前键位一致性说明
- 当前实现不存在 `l` / `e` 的状态切换快捷键;若历史记录出现该表述,应视为旧文档残留而不是当前行为。
- 当前恢复语义固定为:`Esc` 回稳定态、`r` 清反馈、`Enter` 依焦点执行、插入模式下 `Enter` 不执行查询。