Files
qipai/docs/current-baseline.md
T

41 lines
4.8 KiB
Markdown
Raw 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.
# 当前开发成果基线
> V5.0 首次核验日期:2026-06-16
> audited_commit: `b8b384e`
> next_engineering_target: M01-B 在一次性 MySQL 8 中执行 up/verify/down/再次 up,并保存可复现结果
> 事实源:当前工作区、Git 历史、状态文档、Windows/WSL 检查脚本。
## 总体结论
| 范围 | 当前状态 | 证据 | 结论 |
|---|---|---|---|
| 总纲版本 | V5.2 已成为当前权威总纲,V5.1/V5.0/V4.8 已保留为历史备份 | 根目录存在 `V5.2.md``V5.1.md``V5.0.md``V4.8.md` | 可继续按 V5.2 开发 |
| Git 远端 | `origin=ssh://git@git.txyundm.cn:2222/panda/qipai.git`,分支 `main` | `git rev-list main...origin/main``0 0` | 本地与远端同步 |
| 正式后端 | 已新增 Fastify 5 + TypeScript 最小骨架、健康/就绪/版本路由、配置模板、依赖锁文件、契约测试、TypeScript 编译、真实 HTTP 健康检查、MySQL 连接池、迁移 CLI、旧表只读兼容 Repository 和旧订单金额严格转换 | `backend/package.json``backend/package-lock.json``backend/src/**``backend/tests/**``scripts/dev/windows/check-backend.ps1` | M01-B PARTIAL;迁移 plan、SQL 拆分、执行和 verify 结果门禁已实现,旧表门店/房间/订单/设备只读查询已提供,订单 DECIMAL 金额已按整数分精确转换并检查格式、空值和无符号整数上限;一次性真实 MySQL 执行、鉴权和业务接口未完成 |
| 后台管理端 | 仅有 `admin/.gitkeep` | 当前文件扫描 | M09 未开始,不能标记 DONE |
| 微信小程序 | 仅有 `miniapp/.gitkeep` | 当前文件扫描 | M08 未开始,不能标记 DONE |
| 数据库迁移 | 已新增 M01-B 核心 schema up/down/verify SQL、最小脱敏 seed、迁移计划/执行 CLI 和验证结果数量门禁 | `database/migrations/2026061601_m01b_core_schema.*.sql``database/seeds/2026061601_m01b_minimal_seed.sql``backend/src/db/migration-runner.ts``backend/src/db/migrate-cli.ts` | PARTIALdry-run 已验证 11 条 up 语句和 SHA-256,尚未连接一次性真实 MySQL 执行 up/verify/down,旧数据写入迁移脚本未生成 |
| M00 部署脚本 | 已有菜单、状态、HTTPS、Certbot、EMQX、备份检查模板 | `setup.sh``scripts/setup/``deploy/` | PARTIAL,生产未执行 |
| 发布清单 dry-run | 可基于当前 HEAD 输出 `deployed=false` 的 release manifest,记录后端/后台/迁移尚未生成而跳过 | `scripts/setup/deploy-business.sh --dry-run .``scripts/dev/windows/check-release-manifest.ps1` | 可在 M00 验证结构;真实构建与生产发布待 M01/M09 后接入 |
| 参考资料 | 已有清单、脱敏日志、页面/接口/表结构摘要 | `docs/reference-*``docs/db-schema-inventory.md` | PARTIAL,仍需按模块迁移正式实现 |
| 仓库完整性门禁 | 必备文件 tracked、无意外 untracked、无嵌套 Git、无 submodule、无 forbidden tracked 文件、远端一致性、状态文档枚举/占位和空白检查已脚本化 | `scripts/dev/windows/check-repo-completeness.ps1``scripts/dev/windows/check-status-docs.ps1``scripts/dev/windows/test-all.ps1` | 可作为 M00 提交前门禁;参考摘录和生产部署仍未完成 |
| WSL 本地 MQTT | EMQX 5.8.9 active/enabledMQTTX CLI 1.13.0,五端口监听;认证/ACL 冒烟脚本入口、配置自检、可选 TLS/遗嘱/重复消息探测入口和 WSL EMQX 检查/启动/停止入口已生成 | `scripts/dev/wsl/check-local-mqtt.sh``scripts/dev/wsl/check-emqx.sh``scripts/dev/wsl/start-emqx.sh``scripts/dev/wsl/stop-emqx.sh``scripts/dev/wsl/mqtt-smoke.sh` | 服务级可用;未配置本地账号时冒烟脚本 SKIP,认证/ACL/TLS/遗嘱/幂等需配置账号和下游证据后执行 |
## 状态校准
- `docs/module-status.md` 中 M00 仍为 `PARTIAL` 是正确的:生产 Ubuntu 未执行,正式后端/后台/小程序未生成。
- M01-M10 仍未具备可验收业务实现,保持 `TODO``PARTIAL`
- 任何“目录存在”只能证明骨架存在,不能证明模块完成。
## Git 历史敏感信息核验
- 已执行历史模式扫描:`git log --all -G "password|passwd|pwd|secret|token|口令|密码|admin" --oneline -- .`
- 该扫描只记录命中提交,不输出秘密值;命中多集中在部署、EMQX、Certbot 和脱敏参考处理相关提交。
- 当前敏感信息扫描仍以 `scripts/dev/windows/check-secrets.ps1` 为准;如后续确认历史中曾提交本地临时明文口令,必须立即轮换并只记录“已轮换”。
## 下一步
1. 继续 M01-B:在一次性 MySQL 8 环境实际执行 up、verify、down,再次 up 并保存可复现结果。
2. 评估 Kysely 安全修复版的 Node 22 要求;未升级运行时前继续使用 `mysql2/promise`
3. 保持 `scripts/dev/windows/check-backend.ps1` 的契约测试、迁移计划、编译和 HTTP 健康检查作为 M01 后续提交门禁。