# 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 已实现。