All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 1m30s
- 新增 OpenSpec Change fix-employee-collection-route-prefix,承载已落地的 ff1362d 路由前缀修复(无规格 delta,skip_specs)
- 记录根因(Register 的 basePath 只服务文档)、影响面(7 条根级残留、15 条同层抢占)、修复方式与验证方式
- AUG26-017 全局健康门禁实际通过后勾选 5.7(tasks 27/27)
3.1 KiB
3.1 KiB
1. 路由前缀修复(提交 ff1362d,已推送 origin/Iteration/8-11)
- 1.1 三个注册函数各引入
router.Group("/<资源前缀>"),12 处Register首参由 admin 根路由组改为该 group,basePath与文档路径拼接不变。验证:git show --numstat ff1362d仅internal/routes/employee_collection.go(17 insertions / 12 deletions),且grep -c "Register(group"为 12。 - 1.2 确认
/api/admin根级不再有员工代收款路由。验证:离线路由表扫描(真实RegisterAdminRoutes+openapi.BuildDocHandlers)缺陷版 10 条根级栈条目 / 7 条不同 method+path 全部消失,路由总数 356 → 358。 - 1.3 确认同层抢占候选为 0。验证:同方法下先注册的参数路由命中后注册的静态路由,缺陷版 29 条原始命中(按「方法 + 被抢占静态路由」去重 15 条),修复后为 0;另以最小 Fiber 应用证明匹配按注册顺序(参数路由先注册时命中参数路由)。
- 1.4 确认真实路由可达性。验证:装载真实注册函数与真实 handler 后请求,缺陷版 6 个命名 GET 返回
400 / 1001 无效的路径ID、/api/admin/statistics返回503 / 2004;修复版这些路径命中各自处理器(403 / 1005权限拒绝),/api/admin/statistics返回404 / 1006。 - 1.5 确认契约与鉴权未变。验证:缺陷版、修复版与当前工作区三次
go run cmd/gendocs/main.go产物逐字节相同(md5274f45440597aaafb1e168ac266cbb85,含路径、方法、鉴权标记与描述文本);requireEmployeeCollectionConfigAccess与adminOnly的包装位置和数量不变。 - 1.6 确认未触碰业务实现。验证:
ff1362d不包含 handler、application/service、domain、迁移或配置改动。
2. 本 Change 的门禁与归档
- 2.1 变更在无 delta 形态下通过严格校验。验证:在
/tmp的openspec/副本执行openspec validate fix-employee-collection-route-prefix --strict通过(输出Change 'fix-employee-collection-route-prefix' is valid)。 - 2.2 全量校验与既有条目共存。验证:同一副本
openspec validate --all为 42 passed / 0 failed;真实仓库对照为 41 passed / 0 failed(差异仅为副本多出的本 Change)。 - 2.3 变更不破坏上下文健康门禁。验证:把本 Change 放入仓库快照的
/tmp全量副本(含e687a26的证据链与可达操作索引)后执行zsh ./scripts/context-health.sh,输出「Context 健康检查通过」、退出码 0。 - 2.4 落地后在真实仓库运行
./scripts/context-health.sh并确认输出「Context 健康检查通过」;该脚本会重写docs/admin-openapi.yaml,须在并发流水线停止后执行。验证:在真实仓库(HEAD=7891189,含e687a26的证据链与可达操作索引)执行,输出「Context 健康检查通过」、退出码 0;同时docs/admin-openapi.yamlmd5 仍为274f45440597aaafb1e168ac266cbb85。 - 2.5 归档本 Change(
openspec archive,不改动openspec/specs/**与docs/verification/context-reset/*.json;归档预演结果见 design 的 Risks)。