feat(GOV-010): 完成开发质量与架构治理

This commit is contained in:
2026-08-13 23:56:21 +08:00
parent 61f85e5fa4
commit f178fb4044
15 changed files with 270 additions and 22 deletions
@@ -0,0 +1,43 @@
# GOV-010 测试与质量证据
- 功能编号:GOV-010
- 验证提交:`61f85e5`
- 验证日期:2026-08-13
## 全量命令
以下命令按顺序执行,均退出码为 0:
| 命令 | 结果 | 关键证据 |
|---|---|---|
| `pnpm check:contracts` | passed | OpenAPI 与生成 TypeScript 契约无漂移;项目边界验证通过 |
| `pnpm lint` | passed | Web 与 Server ESLint 无错误 |
| `pnpm format:check` | passed | 全仓 Prettier 格式通过 |
| `pnpm typecheck` | passed | Web、Vite 配置和 Server TypeScript 检查通过 |
| `pnpm test` | passed | runtime 2、governance 9、MySQL 2、环境 10、Schema 28、contracts 3、boundaries 16、deployment 6、Web 11、Server 30 + API 预检 2 |
| `pnpm build` | passed | Web Vite 构建;API、Scheduler、Worker 三进程 Nest 构建 |
| `pnpm verify:e2e` | passed | Chromium 桌面和移动 4/4 通过 |
| `pnpm verify:source` | passed | 源码发布产物与 systemd/Nginx 配置通过 |
## 安全验证
- `redis-cli -h 127.0.0.1 -p 6379 ping` 返回 `PONG`;只验证开发机本地 Redis 可达,不读取生产配置或数据。
- 构建产物扫描 `MYSQL_PASSWORD|AI_API_KEY|Root@|mysql://root:|Authorization: Bearer` 未发现匹配。
- 修复前官方 npm audit 发现 `server>@nestjs/swagger>js-yaml@5.2.1` 的 GHSA-pm4m-ph32-ghv5 High 拒绝服务漏洞;`@nestjs/swagger@11.4.6` 仍精确依赖 5.2.1。
- 提交 `e992edc` 使用 pnpm 项目级精确 override 将 `@nestjs/swagger>js-yaml` 固定到修复版本 `5.2.2`。`pnpm why js-yaml --prod -r` 和解析路径检查均确认实际版本 5.2.2。
- 修复后 `pnpm audit --prod --registry=https://registry.npmjs.org/` 返回 `No known vulnerabilities found`。
- 取消请求、网络错误和 HTTP 错误脱敏由 `web/src/utils/request.test.ts` 覆盖;错误不保留原始 URL、请求头、响应正文或连接串。
- 本功能不新增认证 Cookie、远程 HTML、动态 SQL、服务端 URL 抓取或生产数据库访问,因此 CSRF、XSS、SQL 注入和 SSRF 的运行攻击测试不适用;后续触及这些边界必须重新评估。
## 性能验证
- Web 构建基线(Axios 迁移前):JS `163908` 字节,CSS `805` 字节。
- 当前 Web 构建:`web/dist/assets/index-BjClxDN-.js` `163908` 字节,`web/dist/assets/index-13WJH6XV.css` `805` 字节;本次页面未接入健康 API,产物体积无增量。
- `request.ts` 默认超时为 10 秒,不启用自动重试;测试覆盖超时配置和取消语义。
- 治理与边界扫描只在开发/发布验证运行,不进入线上请求路径;当前仓库规模不需要负载测试。市场查询、MySQL 索引、Redis TTL、RocketMQ 吞吐、Worker 并发和图表渲染均未被本功能改变,后续业务功能需单独设定目标。
## 视觉与构建附加证据
- 桌面截图:`screenshots/iterations/app-shell-desktop-1440x900-61f85e5.png`,实际浏览器 DOM 视口 1440×900。
- 移动截图:`screenshots/iterations/app-shell-mobile-61f85e5.png`,实际浏览器 DOM 视口 390×844。
- 两个视口均有可见 `main` 和页面标题,无横向溢出;浏览器错误/警告日志为空。截图只证明本次请求基础设施迁移没有造成外壳回归,不代表市场概览 UI 已实现。
@@ -0,0 +1,19 @@
# GOV-010 视觉回归记录
- 功能编号:GOV-010
- 页面:应用基础外壳
- 结论:无可观察回归
## 桌面
- E2E 与实际浏览器截图视口:Chromium 1440×900,`verify:e2e` 通过。
- 截图:[app-shell-desktop-1440x900-61f85e5.png](/Users/citrons/Documents/Codex/2026-08-12/wo-x/a-share-analysis/docs/features/GOV-010-development-quality-architecture/screenshots/iterations/app-shell-desktop-1440x900-61f85e5.png)
- 检查:标题“ A 股市场分析工具 ”可见,`main` 可见,无横向溢出,无控制台 error/warning。
## 移动
- E2E 目标视口:Chromium 390×844,`verify:e2e` 通过。
- 截图:[app-shell-mobile-61f85e5.png](/Users/citrons/Documents/Codex/2026-08-12/wo-x/a-share-analysis/docs/features/GOV-010-development-quality-architecture/screenshots/iterations/app-shell-mobile-61f85e5.png)
- 检查:标题和 `main` 可见,无横向溢出,无控制台 error/warning。
截图底部可能出现浏览器容器黑色区域,不属于页面 DOM;页面断言以实际 viewport、DOM 和 E2E 结果为准。本次没有修改页面布局或交互,因此结论是“无可观察回归”,不是新增市场概览设计验收。