# 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 回归(仅在 `[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` 建立产物路径 ## 当前键位一致性说明 - 当前实现不存在 `l` / `e` 的状态切换快捷键;若历史记录出现该表述,应视为旧文档残留而不是当前行为。 - 当前恢复语义固定为:`Esc` 回稳定态、`r` 清反馈、`Enter` 依焦点执行、插入模式下 `Enter` 不执行查询。