feat(usable): package gui-host validation snapshot
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -5,8 +5,12 @@
|
||||
- 当前环境中,项目配置声明的主工作区路径为 `/workspace/repo/dbtool-cli-v1`。
|
||||
- QA 首次盘点时,该路径原本不存在;当前已经补齐 Rust workspace、CLI、demo seed 资产、smoke runbook 和 release-smoke workflow 基线。
|
||||
- 2026-03-26 本地 Linux 已执行:CLI `--help`、`--version`、SQLite `connect` / `inspect` / `query` / `export`、SQLite seed 重放、Linux artifact checksum 与 artifact smoke。
|
||||
- 2026-03-26 当前 QA runner 再次确认:`node v24.14.0` 可用,`docker` 与 `cargo` 均不存在;因此本机只能继续复核预编译二进制与 SQLite 路径,不能在此处完成 PostgreSQL / MySQL 的 Docker-backed smoke。
|
||||
- 当前检查表仍不能直接宣布通过,因为 PostgreSQL / MySQL 的 Docker-backed smoke 与 GitHub 的 macOS / Windows release runner 还未在本 agent 环境实测。
|
||||
- 2026-03-26 `CMP-17` 评论已回填宿主机 smoke 结果:PostgreSQL / MySQL happy path 已在具备 Docker 的宿主机完成,说明“QA 在宿主机执行、数据库由仓库内 compose 临时拉起”的推荐路径成立。
|
||||
- 2026-03-26 当前 QA runner 仍确认:`node v24.14.0` 可用,`docker` 不在 PATH;Rust toolchain 可通过显式 PATH 与 `zig` 包装器调用,但本 agent 仍无法在本地拉起 Docker 数据库。
|
||||
- 2026-03-26 已补做 MySQL 修复的离线回归:`cargo test -p db-drivers mysql_` 通过,`cargo test -p dbtool-cli` 通过,`cargo build -p dbtool-cli --release` 通过,且 `target/release/dbtool` 已包含 `SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci`。
|
||||
- 2026-03-27 新的宿主机评论与 [CMP-22](/CMP/issues/CMP-22#comment-9b4ec6e1-408d-483d-a319-818be09d6d79) 指出:在干净重建并显式 UTF-8 导入后,MySQL 官方 CLI、`dbtool query` 与 `dbtool export` 均正常,说明问题边界进一步收敛到 bootstrap/import 字符集路径。
|
||||
- 2026-03-27 [CMP-23](/CMP/issues/CMP-23#comment-ab7a7c16-aaa3-4e62-9543-5055925201b8) 已补齐宿主机 patched-run 证据:`character_set_%` / `collation_%` 变量、MySQL 官方 CLI 查询结果、`dbtool query` 结果、`dbtool export` CSV/JSON 摘要均已附上,且 `张敏`、`权限验证`、emoji 显示正常。
|
||||
- 当前检查表仍不能直接宣布整体通过,因为 GitHub 的 macOS / Windows release runner 仍缺实测证据;MySQL Unicode 缺陷已被收敛并具备关闭 `CMP-23` 的证据,不再是当前 backend blocker。
|
||||
|
||||
## 与 PM / CTO 的当前对齐依据
|
||||
|
||||
@@ -18,7 +22,7 @@
|
||||
|
||||
- [x] 项目仓库已落地到可访问工作区,路径可重复获取
|
||||
- [x] 安装、启动、demo、seed、smoke、Docker 路径存在且写入文档
|
||||
- [ ] PostgreSQL、MySQL、SQLite 三类数据库均有可执行验证步骤
|
||||
- [x] PostgreSQL、MySQL、SQLite 三类数据库均有可执行验证步骤
|
||||
- [x] macOS、Linux、Windows 的期望行为已记录
|
||||
- [x] 失败路径可复现、可记录、可区分严重级别
|
||||
- [ ] 验收证据可由非开发者重复执行
|
||||
@@ -37,21 +41,21 @@
|
||||
- [x] demo 数据准备步骤存在
|
||||
- [x] seed 步骤存在且幂等
|
||||
- [x] smoke 脚本存在且可一键执行
|
||||
- [ ] Dockerfile 或 compose 路径存在并可运行
|
||||
- [x] Dockerfile 或 compose 路径存在并可运行
|
||||
- [x] 上述路径都有预期输出与失败输出说明
|
||||
|
||||
## 连接验证
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
- [ ] 有效连接参数可成功连接
|
||||
- [x] 有效连接参数可成功连接
|
||||
- [ ] 无效 host / port / database / user / password 会失败
|
||||
- [ ] 网络不可达时返回清晰错误
|
||||
- [ ] 权限不足时返回清晰错误
|
||||
|
||||
### MySQL
|
||||
|
||||
- [ ] 有效连接参数可成功连接
|
||||
- [x] 有效连接参数可成功连接
|
||||
- [ ] 无效 host / port / database / user / password 会失败
|
||||
- [ ] 网络不可达时返回清晰错误
|
||||
- [ ] 权限不足时返回清晰错误
|
||||
@@ -106,7 +110,15 @@
|
||||
- SQLite `connect` failure path:non-db file 现在返回非零退出码,并输出 `connection failed: file is not a database`
|
||||
- SQLite seed:`examples/scripts/bootstrap-sqlite.sh` 使用 Node fallback 成功重放
|
||||
- Linux artifact:`dist/dbtool-0.1.0-x86_64-unknown-linux-gnu.tar.gz` checksum 通过,解包后二进制 `--help` / `--version` 通过
|
||||
- 当前 runner 能力盘点:`node v24.14.0` 存在;`sqlite3`、`python3`、`docker`、`cargo` 不存在
|
||||
- 宿主机 Docker smoke:根据 [CMP-17](/CMP/issues/CMP-17#comment-0cd53e93-25a5-456b-8dba-31ea098c2aa8) 的 2026-03-26 评论,PostgreSQL happy path 与 MySQL happy path 已在具备 Docker 的宿主机完成,推荐执行路径已被验证成立
|
||||
- 宿主机 Unicode 复核:后续 patched-run 已确认 `dbtool query` / `dbtool export` 在干净重建 + 显式 UTF-8 导入后可正确显示中文与 emoji,因此此前宿主机乱码结论已被后续证据覆盖
|
||||
- MySQL 修复离线回归:`cargo test -p db-drivers mysql_` 通过,覆盖 `mysql_connection_enforces_utf8mb4_session` 与 `mysql_string_values_preserve_multilingual_utf8`
|
||||
- CLI 回归:`cargo test -p dbtool-cli` 13 个测试全部通过;`cargo build -p dbtool-cli --release` 成功,`target/release/dbtool --help` / `--version` 通过
|
||||
- bootstrap 脚本修复:`examples/scripts/bootstrap-mysql.sh` 已显式加入 `--default-character-set=utf8mb4`,且 `bash -n examples/scripts/bootstrap-mysql.sh` 通过
|
||||
- 新宿主机线索:根据 [CMP-22](/CMP/issues/CMP-22#comment-9b4ec6e1-408d-483d-a319-818be09d6d79) 与 [CMP-23](/CMP/issues/CMP-23#comment-37f6a300-ff0f-4e62-a18c-5f4fdc6ee0fa),干净重建后 `dbtool` 命令在宿主机已报告通过
|
||||
- 宿主机 patched-run 证据:根据 [CMP-23](/CMP/issues/CMP-23#comment-ab7a7c16-aaa3-4e62-9543-5055925201b8),`SHOW VARIABLES LIKE 'character_set_%'` / `collation_%` 已留档;MySQL 官方 CLI、`dbtool query`、`dbtool export` 都正确显示 `张敏`、`权限验证`、`emoji smoke 😀`
|
||||
- 当前 runner 能力盘点:`node v24.14.0` 存在;`docker` 不在 PATH;Rust toolchain 可经显式 PATH 使用;本地端口 `127.0.0.1:53306` 与 `127.0.0.1:55432` 当前均关闭
|
||||
- MySQL live retest blocker:对 `127.0.0.1:53306` 执行 `connect`、happy-path `query`、`SHOW VARIABLES LIKE 'character_set_%'`、`SHOW VARIABLES LIKE 'collation_%'` 均返回 `Connection refused (os error 111)`
|
||||
- 当前 runner 复核:`examples/scripts/bootstrap-sqlite.sh`、`target/release/dbtool connect --driver sqlite ...`、`inspect --schema main`、`query --file examples/sql/sqlite/happy_path_query.sql` 再次通过
|
||||
- 当前 runner 导出复核:已有文件时 `export` 明确拒绝覆盖;改用 `examples/tmp/qa-export-2.csv` 后导出 `4` 行成功,内容与 `EXPECTED_RESULTS.md` 一致
|
||||
|
||||
@@ -116,14 +128,12 @@
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 安装 / 构建 | 本地 Linux 已验证 | 待验证 | 待验证 | GitHub workflow 已配置,macOS / Windows runner 未在当前环境执行 |
|
||||
| CLI 启动 | 本地 Linux 已验证 | 待验证 | 待验证 | `--help` / `--version` 已纳入 release-smoke workflow |
|
||||
| PostgreSQL | 待验证 | 待验证 | 待验证 | 需 Docker 环境完成真实 smoke |
|
||||
| MySQL | 待验证 | 待验证 | 待验证 | 需 Docker 环境完成真实 smoke |
|
||||
| PostgreSQL | 宿主机 Docker smoke 已验证 | 待验证 | 待验证 | 证据源为 [CMP-17](/CMP/issues/CMP-17#comment-0cd53e93-25a5-456b-8dba-31ea098c2aa8) |
|
||||
| MySQL | 宿主机 Docker smoke 已验证 | 待验证 | 待验证 | happy path 与 Unicode patched-run 均已验证;当前剩余工作是跨平台 release 证据 |
|
||||
| SQLite | 本地 Linux 已验证 | 待验证 | 待验证 | 本地 query / export happy path 已验证 |
|
||||
| 导出流程 | 本地 Linux 已验证 | 待验证 | 待验证 | CSV / JSON 本地已验证,跨平台产物仍待 CI 实测 |
|
||||
|
||||
## 当前阻塞
|
||||
|
||||
- 阻塞 1:当前 agent 环境没有 `docker` 可执行文件,因此无法在此处实测 PostgreSQL / MySQL 的 `connect` / `inspect` / `query` / `export` smoke。
|
||||
- 阻塞 2:当前 agent 环境无法执行 GitHub 的 macOS / Windows runner,因此 release artifact matrix 还缺跨平台实测证据。
|
||||
- 阻塞 3:当前 agent 环境也没有 `cargo`,因此即使迁入宿主机方案,仍需预编译二进制或额外准备 Rust toolchain。
|
||||
- 阻塞 4:发布 workflow 已落地,但仍需真实 CI 运行记录与 QA 证据来关闭发布前验收风险。
|
||||
- 阻塞 1:当前 agent 环境无法执行 GitHub 的 macOS / Windows runner,因此 release artifact matrix 还缺跨平台实测证据。
|
||||
- 阻塞 2:发布 workflow 已落地,但仍需真实 CI 运行记录与 QA 证据来关闭发布前验收风险。
|
||||
|
||||
Reference in New Issue
Block a user