feat(usable): integrate current dbtool implementation snapshot
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

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Paperclip CTO
2026-04-02 08:26:18 +00:00
parent a28dab4cd9
commit d5f69462b0
73 changed files with 5895 additions and 322 deletions

View File

@@ -82,8 +82,10 @@
| CLI / MySQL failure path | 错误密码 / 网络异常 / 坏 SQL | `verified` | `direct-run` | 2026-03-28 最新 sidecar 复跑已确认 auth / connection / file-based bad SQL 都满足 `status=error``state=error`、正确 `error.kind` | 当前该线主要保持回归即可 |
| TUI / shell baseline | 启动、布局、焦点、退出 | `verified` | `direct-run` | 2026-03-28 当前 heartbeat 正常终端与小终端 TTY smoke 均通过 | 仍需保持 README 与 smoke 口径一致 |
| TUI / sqlite-local live path | connect / inspect / query / export | `partial` | `direct-run` | 历史 QA 文档已有;本 heartbeat 仅复核启动骨架 | 需按 usable-v1 口径补一轮连续操作证据 |
| TUI / PostgreSQL live path | 网络数据库真实激活 | `verified` | `direct-run` | 2026-03-31 当前 runner 直接通过 `scripts/tui/live-network-smoke.sh postgres ./target/debug/dbtool-tui`;日志显示 `Validation: Connected`、3 schema entries、`3 rows returned` 与 CSV 导出成功 | 仍需补 failure / empty / restricted / browse-stability 覆盖 |
| TUI / MySQL live path | 网络数据库真实激活 | `verified` | `direct-run` | 2026-03-31 当前 runner 直接通过 `scripts/tui/live-network-smoke.sh mysql ./target/debug/dbtool-tui`;日志显示 schema 加载、`3 rows returned` 与 CSV 导出成功 | 仍需补 failure / empty / restricted / browse-stability 覆盖 |
| TUI / PostgreSQL live path | 网络数据库真实激活 | `verified` | `direct-run` | 2026-03-31 当前 runner 直接通过 `scripts/tui/live-network-smoke.sh postgres ./target/debug/dbtool-tui`,并补齐 `/tmp/cmp64-role-probe-v4.json``/tmp/cmp64-postgres-root-inspect-v4.json``/tmp/cmp64-postgres-restricted-schema-inspect-v4.stderr.txt``/tmp/cmp64-postgres-restricted-query-v4.stderr.txt``/tmp/cmp64-tui-restricted-live-v6.log` | runner-side restricted / empty / failure 已补齐;剩余缺口转为 packaged artifact / CI / traceability |
| TUI / MySQL live path | 网络数据库真实激活 | `verified` | `direct-run` | 2026-03-31 当前 runner 直接通过 `scripts/tui/live-network-smoke.sh mysql ./target/debug/dbtool-tui`;日志显示 schema 加载、`3 rows returned` 与 CSV 导出成功 | 当前 runner 已补 happy path、failureempty browse-stability;剩余缺口不在 network-live 本身 |
| TUI / Linux release binary smoke | `target/release/dbtool-tui` 最小 TTY 启动 / 退出 | `verified` | `direct-run` | 2026-03-31 当前 runner 直接通过 `CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse cargo build --release -p dbtool-tui``scripts/tui/smoke-tty.sh target/release/dbtool-tui 40 120 /tmp/cmp60-dbtool-tui-release-smoke.log`SHA256=`b02ab9be82ebc683c61cf193945a123a66ff181eb386607e95d3335bed84f339` | 仍缺 packaged artifact / CI contract |
| TUI / packaged artifact smoke | distributable archive / checksum / unpacked smoke | `blocked` | `doc-only` | 当前仓库尚无 `dbtool-tui` package script 或 release workflow entry | 需先建立 artifact contract再补 Linux/macOS/Windows runner 证据 |
| Linux artifact smoke | `scripts/release/smoke-binary.sh ./target/release/dbtool` | `verified` | `direct-run` | 2026-03-28 当前 heartbeat 通过 | 无当前 blocker |
| macOS artifact smoke | `.github/workflows/release-smoke.yml` matrix | `blocked` | `doc-only` | workflow 存在 | 缺真实 runner 日志 |
| Windows artifact smoke | `.github/workflows/release-smoke.yml` matrix | `blocked` | `doc-only` | workflow 存在 | 缺真实 runner 日志 |
@@ -91,9 +93,10 @@
## PostgreSQL / MySQL failure-path 补证闭环
1. Docker-capable 宿主机按 `QA_RUNTIME_ENVIRONMENT.md` 拉起 `postgres` / `mysql` 并完成 bootstrap
2. 优先按 `HOST_FAILURE_PATH_CHECKLIST.md` 的顺序逐条执行 6 个场景;记录格式仍以 `FAILURE_PATH_EVIDENCE_TEMPLATE.md` 为准,首次回填可直接套用 `FAILURE_PATH_EVIDENCE_SAMPLE.md`
3. 每条记录都必须带:
1.发起宿主机或 sidecar live 执行前,先跑 `scripts/qa/test-failure-path-fixtures.sh`;若只想缩小范围,可改跑 `scripts/qa/test-failure-path-fixtures.sh format` `scripts/qa/test-failure-path-fixtures.sh sidecar`
2. 在 Docker-capable 宿主机按 `QA_RUNTIME_ENVIRONMENT.md` 拉起 `postgres` / `mysql` 并完成 bootstrap
3. 优先按 `HOST_FAILURE_PATH_CHECKLIST.md` 的顺序逐条执行 6 个场景;记录格式仍以 `FAILURE_PATH_EVIDENCE_TEMPLATE.md` 为准,首次回填可直接套用 `FAILURE_PATH_EVIDENCE_SAMPLE.md`
4. 每条记录都必须带:
- UTC 时间
- 操作者 / 宿主机
- binary path / `--version`
@@ -102,11 +105,11 @@
- 退出码
- JSON 或错误摘要
- verdict
4. 回填顺序:
5. 回填顺序:
- 先在 issue / 评论里贴原始执行包
- 再把 `CLI / PostgreSQL failure path``CLI / MySQL failure path` 两行改为 `verified` 或继续保留 `blocked`
- 最后同步 `USABLE_RELEASE_GATE.md`
5.`status` / `state` / `error.kind` 偏离模板预期,先拆 defect再继续台账更新。
6.`status` / `state` / `error.kind` 偏离模板预期,先拆 defect再继续台账更新。
## Blocker / Risk 清单
@@ -114,13 +117,15 @@
- `dbtool-usable-v1` 仍不能把 TUI 视为“已完成签收”的跨库操作台;当前虽已有 PostgreSQL / MySQL live happy path但 live 覆盖仍偏窄。
- PostgreSQL / MySQL 的 failure-path 当前已补到直接执行层并通过最新 sidecar 复验;这一条线当前主要保持回归即可。
- TUI failure / empty / restricted / browse-stability 与 packaged-binary 证据仍未收口
- TUI packaged artifact 证据仍未收口;不过 2026-03-31 Linux runner 已补到 `target/release/dbtool-tui` 的 release-binary 直接 smoke且 PostgreSQL restricted-schema runner evidence 已完成,剩余缺口已收敛到 artifact contract / CI path
### 环境 / 证据 blocker
- 当前 QA runner 已有 `docker` daemon但缺 `docker compose`
- 当前 QA runner 已可通过用户态 Rust toolchain + `zig cc` / `zig ar` 复跑源码测试,并可通过 `host.docker.internal` 直接复跑 TUI live smoke但仍无法按标准 compose/host-port 口径原样复跑。
- 当前 QA runner 不能直接访问 `127.0.0.1:55432/53306` 或数据库容器 IP。
- 当前 PostgreSQL demo / TUI `reporting-postgres` profile 已可通过 non-superuser `dbtool` 与 restricted probe 产出真实 schema-level restricted live 证据runner-side blocker 已解除。
- 当前仓库还没有 `dbtool-tui` 的 package script / workflow matrix现有 release 直证只到 Linux release binary不等于 distributable artifact 已验证。
- GitHub macOS / Windows release runner 仍缺真实运行日志与产物 smoke 记录。
- release artifact / packaged binary 的 binary path、commit SHA / branch 仍需补齐追溯性。