Files

55 lines
4.2 KiB
Markdown
Raw Permalink 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.
# GitNexus 开发前影响计划
- 功能编号:GOV-010
- 基线提交:`bbda26fa41288d4ae1f37c3e1c14593d5d8e910e`
- 分析日期:2026-08-13
- 总体风险:LOW;因部分遍历结果标记为 `partial`,按 MEDIUM 验证强度实施交叉检查
## 查询与上下文
GitNexus 查询了三类概念:功能档案完成门禁、前端 HTTP/OpenAPI 健康检查链路、NestJS 模块与项目边界。关键上下文结果:
- `getRequiredFeatureFiles` 的直接使用者是 `tools/governance/finish.mjs` 和 `tools/governance/feature-record.test.mjs`。
- `createApiClient` 与 `ApiRequestError` 位于 `web/src/api/client.ts`,只有旧客户端测试直接依赖两者;当前 Vue 页面尚未调用健康接口,Playwright 的健康请求属于测试进程直连后端,不应迁移为浏览器业务 API 调用;依赖锁文件包含 `openapi-fetch`。
- 健康展示链路经过 `web/src/api/adapters/health.adapter.ts` 的 `toHealthViewModel`,需保留 DTO 到 ViewModel 的隔离。
- API 端由 `HealthController.getHealth` 调用 `HealthService.check`;本次不改后端路由和 DTO。
- 项目边界由 `verifyProjectBoundaries` 扫描 TypeScript 与 Vue 脚本,适合扩展前端 HTTP 边界规则。
## 直接与间接影响
- `getRequiredFeatureFiles`:GitNexus 风险 LOW;图谱遍历返回 0 个影响但上下文明确存在两个直接调用者,因此必须同步修改测试和完成门禁验证。
- `createApiClient`:风险 LOW、结果为 `partial`;静态引用确认只需迁移旧客户端测试并新增健康 API 样例,当前没有页面调用方需要改动。
- `ApiRequestError`:风险 LOW、结果为 `partial`;新 Axios 错误类型必须保持现有安全消息行为。
- `collectSourceFiles`:风险 LOW;边界扫描是开发验证路径,不影响生产执行流,但其测试 fixture 必须同步。
没有 HIGH 或 CRITICAL 结果,不需要额外风险批准。`partial` 结果不得解释为没有调用方,实施前后使用 `rg`、类型检查、测试和 `detect_changes` 交叉验证。
## 执行流影响
- 治理完成流程:必备文件与内容校验会改变 `governance:finish` 的通过条件。
- Web 健康请求脚手架:请求库、错误路径和类型引用变化;当前页面没有对应运行时请求流,后端健康检查与 Playwright 直连验证不变。
- OpenAPI 生成流程:生成工具与输出协议不变,前端仍消费 `schema.ts`,仅请求执行器由 `openapi-fetch` 改为 Axios。
- 项目边界验证流程:增加 Axios/fetch 使用位置检查,生产运行时不受影响。
## 跨模块同步修改
| 领域 | 是否修改 | 计划 |
|---|---|---|
| HTTP/OpenAPI | 是,文档与类型消费 | 保留后端 OpenAPI 输出和生成 Schema,不修改路由或字段 |
| Web 请求/API | 是 | 新建统一 Axios request、健康业务域 API,迁移调用方和测试 |
| Web adapter/ViewModel | 可能 | 仅调整导入或调用链,保持转换行为与类型边界 |
| RocketMQ 消息契约 | 否 | 本功能不修改消息协议或进程通信 |
| MySQL/迁移/Schema | 否 | 不修改结构;开发前只验证已发布 `v0.0.7` 基线 |
| Redis/缓存 | 否 | 不修改缓存键、TTL、连接或数据 |
| API/Scheduler/Worker | 否 | 不改变三个后端进程运行行为,只新增其架构规范 |
| 配置与部署 | 可能 | Axios 沿用现有 Web API 根地址;若变量名不变则无需改模板 |
| 治理工具 | 是 | 必备开发总结、结构化内容校验及错误信息 |
| 边界工具 | 是 | 限制前端直接 HTTP 调用并增加测试 |
| 文档与模板 | 是 | 更新代码规范、流程、追溯、PRD、Review、AGENTS 和模板 |
| 依赖与锁文件 | 是 | Web 删除 `openapi-fetch`,新增固定版本 Axios |
| 测试与视觉 QA | 是 | 补单元、边界、全量、构建体积和现有页面回归证据 |
## GitNexus 状态限制
CLI 在开发前运行后报告索引提交与当前 HEAD 均为 `bbda26f` 且状态最新。MCP 的 context 资源仍显示旧统计并提示落后 5 个提交,说明 MCP 资源缓存未同步;查询、符号上下文和影响结果仍能定位当前文件。开发后必须重新运行 CLI 分析、调用 `detect_changes`,并把该缓存差异记录在比较报告中。