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

@@ -0,0 +1,114 @@
# 2026-03-27 dbtool-tui-v1 Phase 2 Scope
日期2026-03-27
作者CTO
对应 issue`CMP-33`
## Goal
`dbtool-tui-v1` 从“可交互的 shell baseline”推进到“可接入真实 shared app 数据、可执行查询、可查看真实结果”的第二阶段准备,并拆出明确的 owner-backed issues。
## Current Reality
- 第一阶段已完成:`apps/tui` shell、主布局、焦点管理、基础键盘导航、Ready / Loading / Error 状态框架都已落地。
- `crates/db-app` 已成为 CLI 可见主路径,说明 TUI 接真实数据时不应绕开 shared app 层。
- 当前 TUI 仍主要消费占位数据连接、schema、query、results 还没有形成 live workflow。
## Phase 2 Scope
### In Scope
- 连接列表接入真实 shared app / session state
- schema browser 接入真实 inspect 数据
- query editor 进入可执行状态
- results panel 进入真实结果展示状态
- query / inspect / export 的 loading、success、empty、error 状态保持一致
- 建立 TUI 第二阶段的 QA 验收矩阵与回归入口
### Out Of Scope
- 多连接并发在线工作区
- 持久化 profile 管理中心
- 多 query tab
- SQL autocomplete / formatter / explain
- 查询历史持久化
- GUI 化扩展
- 为了 TUI 重写一套数据库访问逻辑
## Non-Goals
- 不把 `dbtool-tui-v1` 变成桌面 GUI 替代品
- 不把第二阶段误扩成“完整数据库客户端”
- 不让 TUI 调用 CLI 二进制或解析 CLI 文本
- 不把 CLI 发布收口问题混进 TUI live 集成 issue
## Technical Dependencies
1. `crates/db-app` 对外契约必须继续作为唯一业务入口
2. TUI 需要稳定的结构化状态:
- 连接激活中 / 成功 / 失败
- inspect 加载中 / 成功 / 空 / 失败
- query 执行中 / 成功 / 空结果 / 失败
- export 成功 / 失败
3. 当前同步数据库 I/O 不能阻塞 UI 主循环,因此阶段 2 需要明确 worker / channel 的集成方式
4. QA 需要把 shell baseline 验收与 live integration 验收分层
## Critical Path
```text
Backend: shared app live integration contract
Frontend: connections + schema browser live wiring
Frontend: query + results + export live wiring
QA: phase 2 acceptance + regression
```
并行说明:
- PM 跟踪 issue 可以并行启动,用于维护阶段 2 节奏和依赖可见性
- QA 文档可在后端 / 前端实现前先行搭框,但最终验收仍依赖 live wiring 完成
## Team Boundaries
### Senior Backend Engineer
- 负责 shared app 层对 TUI 的 live integration 契约
- 负责 worker-friendly 的请求 / 响应 / 错误状态边界
- 负责回归测试,保证 CLI / TUI 共享行为不分叉
### Senior Frontend Engineer
- 负责 TUI 状态机、交互层和界面状态落地
- 负责将真实连接 / inspect / query / result / export 状态接入工作台
- 不引入 driver 依赖,不解析 CLI 文本
### QA Engineer
- 负责阶段 2 验收矩阵、回归清单和 live smoke 路径
- 明确 shell baseline、live integration、非交互 smoke 的边界
### Project Manager
- 负责第二阶段依赖图、issue 状态和里程碑同步
- 不负责技术方案,但负责防止状态漂移
## Gating Conditions
- backend issue 未冻结 live integration 契约前frontend 不应直接绕过 shared app 做业务接线
- query / results 接入前connections 与 schema browser 的活动上下文必须先稳定
- QA 必须单独保留 shell baseline 验收,不得被阶段 2 live 集成覆盖掉
-`dbtool-tui` 非 TTY smoke 契约未定义QA / CI 启动路径应继续明确标记为限制,不得伪装成已解决
## Acceptance Criteria
- 第二阶段 issue 已按 owner 创建并指派
- 每个 issue 都有范围、非目标、输入文档、交付物和验收标准
- 阶段 2 不再通过口头说明推进
- TUI live integration 明确复用 `db-app`,没有 CLI 文本解析旁路
## Hiring Judgment
- 当前不建议为第二阶段单独招聘
- 真正瓶颈仍是 shared contract、验证路径和跨团队节奏而不是纯编码人手